I might suggest looking into C# as well. I developed a microsoft excel plugin for 3 years that was used by some pretty big names (Microsoft, Salesforce, KPMG Nunwood Consulting, LexisNexus) and...
I might suggest looking into C# as well. I developed a microsoft excel plugin for 3 years that was used by some pretty big names (Microsoft, Salesforce, KPMG Nunwood Consulting, LexisNexus) and developed it all in C#. We started out working in VBA but found C# was just a bit more workable. When I was leaving we were looking at moving from .NET Framework to .NET Core so I can't help with that aspect. Not to say VBA isn't the correct solution for your use case, but more that it is rare where my excel development experience is relevant :)
I'd second that motion. Excel is like a multi-bit screwdriver; it can be used for many things, but for some things you are much better off using a dedicated tool. Learning a decent general-purpose...
I'd second that motion. Excel is like a multi-bit screwdriver; it can be used for many things, but for some things you are much better off using a dedicated tool. Learning a decent general-purpose language is like knowing how to make those dedicated tools. Besides, the last time I checked (and keep in mind I'm an outsider with zero actual interest in Microsoft's programming languages), the newer versions of Visual Basic offer a coding experience that's surprisingly close to C#. Though I don't know if that's going to ring true for VBA.
I'd be interested in what @Loire is trying to automate, if they're willing to share.
This might be something you can accomplish fairly easily with shell scripts, depending on how CLI-friendly Outlook is. It's been ages since I had to write scripts for windows, but I believe at one...
This might be something you can accomplish fairly easily with shell scripts, depending on how CLI-friendly Outlook is. It's been ages since I had to write scripts for windows, but I believe at one time you could drop a file on top of a script and it would run the script with the dropped file's complete path as it's parameter, which would make it really easy for your successors. If that doesn't work anymore (I'm honestly probably misremembering altogether), VBA has an easy way to summon a file selector.
IMHO the biggest problem I have with your solution is that you're committing the one cardinal sin of Excel; using it to design printable reports. Excel formatting is so easy to break. Heck, formatting is easy to brake in any Office application. And that's less of a programming problem than a tooling problem. There are so many ways to tackle that problem that your head will spin from trying to count them.
When I was working on my Excel project my manager just got used to features being impossible/bugs/hacks being completely independent of our code and being due to some asinine decision Microsoft...
When I was working on my Excel project my manager just got used to features being impossible/bugs/hacks being completely independent of our code and being due to some asinine decision Microsoft made about Excel that we had to figure out a way to work around. Almost all of them were formatting/cell based.
I'm not laughing. Sometime around the end of the month I'm going to be paid to attend a two-day training session in a complete garbage proprietary programming language called DELUGE. It's so bad...
I'm not laughing. Sometime around the end of the month I'm going to be paid to attend a two-day training session in a complete garbage proprietary programming language called DELUGE. It's so bad has so little forethought that it's got me seriously pining for early 80s Microsoft BASIC. I swear that about 90% of the built-in functions that require numbers as inputs require them to be as strings.
Professionally: Python - this is my day-to-day "get things done" professional coding language. My shop is a python shop for anything of sufficient complexity (ie - anything more than a WordPress...
Professionally:
Python - this is my day-to-day "get things done" professional coding language. My shop is a python shop for anything of sufficient complexity (ie - anything more than a WordPress site). Why? I fell in love with Python years ago, and I find it easy to ship working code that does what I want it to do. When necessary, we can optimize for performance in other languages, but it's frequently not necessary.
TypeScript - because when we are called upon for a single page application, we typically build it in Angular. TypeScript fixes a lot of the things that I find distasteful about JavaScript.
JavaScript - sometimes we end up just doing JavaScript though, for Reasons™ (legacy code, generally)
HTML, CSS - sometimes you just gotta do web things. When I started in the business 20+ years ago, the junior devs were the ones that we'd get to do this sort of thing; now it seems like many junior devs don't know what they're doing, and I end up doing more of this than I would like.
PHP - It's ubiquitous and if you don't know PHP as a web developer, you're going to have a bad time. WordPress solves a lot of issues, and the resale value of WP work is high. This is a bread-and-butter skill if you are in the business of designing turnkey CMS enabled websites that you expect your clients to be able to use with minimal training.
Personally
Go - mostly for fun, but we do have a few AWS Lambdas that I'm going to convert to Go
Rust - entirely for fun and for interest.
Scratch / Scratch-like - My daughter has rediscovered her Kano Harry Potter Coding Wand, and it's been delightful, and I've bee enjoying trying it out with her. I've been slowly introducing more complex things along with it.
As far as HTML + CSS + JS are concerned, feel free to PM me if you have any questions. I'm not expert, but I have been doing it for five years now, so I could help you with the basics.
As far as HTML + CSS + JS are concerned, feel free to PM me if you have any questions. I'm not expert, but I have been doing it for five years now, so I could help you with the basics.
I thank you very much for the offer. I appreciate it, and I'll return it in kind; if you have any questions on anything above, I'd be happy to answer. The things that I said I would be focusing on...
I thank you very much for the offer. I appreciate it, and I'll return it in kind; if you have any questions on anything above, I'd be happy to answer. The things that I said I would be focusing on professionally (top list) are all things that I would consider myself reasonably expert in, and I'm happy to provide help or guidance on any of them.
In no particular order: Go, because I work with the language and because I love it. It is by no means perfect, but it's the closest to perfection for me personally. Recently the authors have...
In no particular order:
Go, because I work with the language and because I love it. It
is by no means perfect, but it's the closest to perfection for me
personally. Recently the authors have speeded up the evolution of
the language, and I'm excited to see where it will go next.
C, because it's still the lingua franca of most OSs.
A flavour of Pascal or Oberon, because simplicity matters
and because I'm a Niklaus Wirth fan-boy trash.
Custom and existing flavours of XML, including XSLT and
XHTML5, because it's still a good [family of] language[s] for
structuring [meta]data, as well as transforming and displaying it.
(POSIX) Shell, because you need to know how to command those
pesky spirits in this devil-machine.
You may notice a pattern here. Most of these languages are simple and
mostly easy to grasp. I am a man of simplicity. I think that a tool
that you can't master fully is not worth preferring over a couple of
tools one can comprehend working together.
They're also not very exciting for most people and not very new.
I guess, because apparently simplicity is not very popular at the
moment? Or because they are languages that do their job just well
enough? Or I'm simply becoming an old fart who is afraid of new
things :-)
Do you have much experience/thoughts on Golang for REST API development? I like Go a lot as a language from what I've worked with and I think it is the perfect language for my team (lots of people...
Do you have much experience/thoughts on Golang for REST API development? I like Go a lot as a language from what I've worked with and I think it is the perfect language for my team (lots of people are learning it for Kubernetes stuff, it has a low learning curve for our sysadmin background folks, and way more efficient than python) but I can't decide if it is the right tool for the job and we already have a framework in python (very minimal but it does exist) so I want to make sure it is right before I make the uphill push.
I basically do nothing but REST-ish APIs in Go for a living. It's going pretty good so far. You'll be fine, unless you try to write Go as if it were Python, Ruby, or JavaScript. A mistake I've...
I basically do nothing but REST-ish APIs in Go for a living. It's going
pretty good so far. You'll be fine, unless you try to write Go as if it
were Python, Ruby, or JavaScript. A mistake I've seen dozens of times.
In those languages the first thing one does is grabbing the freshest,
hottest framework off the shelf and get going at it. What works well in
Go is a simplicity-first, library-centric approach. That is, master the
net/http package in the standard library, add a couple of
libraries for routing, SQL, KV, and assets, and… that's about it,
really.
I obviously can't tell if Go is the right tool for your job, but If you
have any further questions, I'll be happy to answer, but keep in mind
that time zones are a thing.
So I didn't make this super clear in my first post, but the whole thing needs to be reworked. The project right now is a single "API" that is actually 2/3 in php 5.1 and 1/3 in python2, the way it...
So I didn't make this super clear in my first post, but the whole thing needs to be reworked. The project right now is a single "API" that is actually 2/3 in php 5.1 and 1/3 in python2, the way it is deployed is such that it only works on one specific VM, which beyond being incredibly brittle also makes it a huge pain in the ass to set up a dev env, there's nearly no unit tests, there's no real semblance of version control (bc all changes are just made directly to prod bc setting up dev is a pain). There's also a huge mental shift on how the system should run and be interacted with by internal users so there is going to be a lot of changes to archictecture and a move to put it in docker/kubernetes. So basically I'm going to have to re-write almost everything already.
I'll keep working with Julia, because I think it's the best in my domain (scientific computing, statistics, data analysis, ...) and I'm pretty much an expert at it at this point. I sometimes want...
I'll keep working with Julia, because I think it's the best in my domain (scientific computing, statistics, data analysis, ...) and I'm pretty much an expert at it at this point.
I sometimes want to do a bit of max/msp again (visual programming language for audio and video) but it's a bit expensive, although I see that they have a $10 monthly subscription, which might be fine to mess around a bit.
I might have to do some simple C++ at work, it's kind of fun since I don't know it well, but it's certainly labourious.
Max/MSP was originally based off PureData from what I remember, have a go with that first and don't let the minimalistic UI turn you away. It's very functional, open source and has a decent...
Max/MSP was originally based off PureData from what I remember, have a go with that first and don't let the minimalistic UI turn you away. It's very functional, open source and has a decent community behind it :)
Golang: Team is doing a lot of cutting edge work in Kubernetes, maybe if I learn go I will get to too. Python3: like @ali, I learned python on my own after learning java/C. Would love to start...
Golang: Team is doing a lot of cutting edge work in Kubernetes, maybe if I learn go I will get to too.
Python3: like @ali, I learned python on my own after learning java/C. Would love to start using python the way it is intended.
Haskell: Functional Programming seems like it might be a way for me to get back into some of the theoretical mathematics I wanted to study in grad school but was too broke for grad school, and Haskell seems to be the commonly suggested language. I don't expect it to be super useful, just for fun.
Does ansible count as a programming language? Cus I'm going to be learning a whole lot of ansible...
(Sorry, I need this.) <rant> Fucking Ansible, man. The Ansible devs knew they won't be able to make it all nice and declarative. They knew you're going to need features from actual programming...
(Sorry, I need this.)
<rant>
Fucking Ansible, man. The Ansible devs knew they won't be able
to make it all nice and declarative. They knew you're going to
need features from actual programming languages, such as variables,
functions, and conditionals. They knew YAML sucks ass. Like, a lot of ass.
And still they went with YAML instead of an actual, sane language like
Lua or Python.
Fucking Ansible, man.
</rant>
Yeahhhhh. I like ansible in that once I get something working in ansible it makes my life a lot easier, but man does getting what I want in ansible suck a lot of the time. And the more complicated...
Yeahhhhh. I like ansible in that once I get something working in ansible it makes my life a lot easier, but man does getting what I want in ansible suck a lot of the time. And the more complicated the tasks, the harder it is to justify to myself.
For python, I really liked these 2 Videos: https://youtu.be/OSGv2VnC0go https://youtu.be/7lmCu8wz8ro I also follow Raymond on twitter where he shares some short tips
Looks like it'll be JS for me. I've been a PHP dev for years now, but the higher-ups at work decided to commit to a node/react stack for all new projects and some conversions are taking place. I...
Looks like it'll be JS for me. I've been a PHP dev for years now, but the higher-ups at work decided to commit to a node/react stack for all new projects and some conversions are taking place. I also got moved from PHP project to an emberJS/Groovy project. We're in the process of migrating it to react, but in the meanwhile I guess I'm learning ember?
Regarding Haskell, I tried it a couple of years ago. I found it to be a really good way to learn something new. It is very different from the imperative paradigm usually used with most mainstream...
Regarding Haskell, I tried it a couple of years ago. I found it to be a really good way to learn something new. It is very different from the imperative paradigm usually used with most mainstream languages. I learned a lot about how to control mutable state and when and where to use it.
That said, the language itself is very difficult to work with. It seems to embrace doing things in an odd way just for the sake of it. It highly encourages hard-to-read styles of writing or at least all practitioners of the language that I could find on the net seem to embrace hard-to-read styles of writing it. Many of the concepts are deep computer science concepts that don't have immediately obvious business-related functions. The people who write about them seem to revel in being so smart that they understand these concepts, but have a really hard time explaining them to others or explaining their usefulness. And of course, they have their own package management system. Also, nobody else knows the language so anything you write in it will have to be maintained by you. That's fine if it's a hobby project, but generally not useful for work.
Anyone have suggestions for a decent alternative to Haskell? I always see it being the one suggested. I don't know much at all about functional programming but would like to dip my toes.
Anyone have suggestions for a decent alternative to Haskell? I always see it being the one suggested. I don't know much at all about functional programming but would like to dip my toes.
It's the only pure functional language I've tried in earnest. I hear a lot about Rust these days, but have not tried it myself so can't really comment. If you know C#, I hear F# is a similar...
It's the only pure functional language I've tried in earnest. I hear a lot about Rust these days, but have not tried it myself so can't really comment. If you know C#, I hear F# is a similar functional language.
I don't mean to deter you from learning Haskell. As I said, it was a worthwhile experience. I just can't use it directly in my day-to-day work. But I have used many of the concepts I learned from it to improve my C++ and Swift skills.
You are not alone in this thought process. Even many of Haskell's most staunch proponents agree that the language has a severe community problem about how interwoven and deeply confusing its code...
You are not alone in this thought process. Even many of Haskell's most staunch proponents agree that the language has a severe community problem about how interwoven and deeply confusing its code can be, to the point where many of them are pleading for people to write simple Haskell code, and train their Junior developers properly.
As someone who doesn't use Haskell, but took a university course on it (and failed it!), I can't think of a worse choice for your business than picking such a decidedly mainstream, yet also ironically esoteric language. It seems like a language best suited for small teams in niche areas, or academia.
Swift as we'll soon be using it at work. I've already switched to it for all of my home projects because it's so nice. I'll probably start learning Python 3.x. I have some stuff I maintain at work...
Swift as we'll soon be using it at work. I've already switched to it for all of my home projects because it's so nice.
I'll probably start learning Python 3.x. I have some stuff I maintain at work that was in Python 2.7, and I haven't had to touch it in a while. But I'm going to need to update it soon and will want to bring into the modern age.
I'll be learning C for school this semester. If I have any free time though, I would like to learn more python. I'd really like to get into web development and learn things like django, but man it...
I'll be learning C for school this semester. If I have any free time though, I would like to learn more python. I'd really like to get into web development and learn things like django, but man it seems hard to get into.
I liked Rust the last time I tried it. Might be going back to using it again. It looks pretty for my coding sensibilities, and I fathom the syntax. I'm also looking at V. One: it's not mainstream....
I liked Rust the last time I tried it. Might be going back to using it again. It looks pretty for my coding sensibilities, and I fathom the syntax.
I'm also looking at V. One: it's not mainstream. Two: it's made by a Russian dev. Three: it's a new, emerging language. Four: it promises to be really fast.
Well... Balls. I, too, want to pick up $800/mo. on a list of promises. I mean, I have the private roadmap written already. Could you guys pucker up and kiss my bank account? -_- ($800 in Russia is...
Well... Balls.
I, too, want to pick up $800/mo. on a list of promises. I mean, I have the private roadmap written already. Could you guys pucker up and kiss my bank account?
-_-
($800 in Russia is ~50k₽. You can rent a decent apartment in Saint-Petersburg – 20~25k₽ – and still live comfortably on what's left. Saint-Petersburg is the second-biggest city in Russia.)
Thanks for the heads-up. I got really hyped for that project since a while ago.
Rust alone it is, then. When I'm ready for another nerdy language excursion, I'll consider Zig – and Odin, which was mentioned in the first linked thread, I believe.
Along with Zig, I would also suggest the following emerging languages that have interesting things going on: Nim Crystal Carp - A lot more alpha than the above 2 and If you like Lisp-y languages
Along with Zig, I would also suggest the following emerging languages that have interesting things going on:
C# (along with T-SQL, ASP.NET, Razor, VB, etc ...) has been my bread-and-butter for ~15 years. I want to leave the M$ stack, and in recent years, have been learning all the Linux things. Python,...
C# (along with T-SQL, ASP.NET, Razor, VB, etc ...) has been my bread-and-butter for ~15 years. I want to leave the M$ stack, and in recent years, have been learning all the Linux things.
Python, 'cuz I've halfway known it for 5 years now, but I keep getting distracted. Seems like the best language to know well, to get employed as an ex-M$ guy.
Java or Kotlin, whichever gets me into mobile dev easier. Mainly for fun and personal curiosity, but maybe professionally, too.
C and C++, at least the basics of each. Just 'cuz. Each ties in with assorted interests of mine, and C esp, just good to know.
Plain vanilla JavaScript, another language I've halfway known my entire career w/o ever really getting a solid grounding in. Probably TypeScript, too.
Shell scripting, mostly Bash.
Go, or maybe Rust ... I want to learn (at least?) one of these, keep flip-flopping on which one (or at least, which one first).
It has to be Python. I was thinking about switching to Racket, the predictability of lisp syntax is enticing, but switching won't do me any good right now. Working with Python is not a real...
It has to be Python. I was thinking about switching to Racket, the predictability of lisp syntax is enticing, but switching won't do me any good right now. Working with Python is not a real possibility in my area, but I can go to another state, and studying a language I enjoy makes things a lot easier. After learning the fundamentals, I can always switch to Java, C# or Javascript to become more employed.
Professionally, probably a lot of Python and some C. Personally: Probably mostly Rust. I've been reimplementing some older projects in Rust for fun, and I'll probably continue doing that. Also, I...
Professionally, probably a lot of Python and some C.
Personally:
Probably mostly Rust. I've been reimplementing some older projects in Rust for fun, and I'll probably continue doing that. Also, I don't feel like I understand borrow checking and lifetimes yet, so that will be something to focus on.
I used to be more excited about C#, but some of the newer features I was looking forward to (like non-nullability and the new match expression) seem more tacked-on and less well thought out. Records and associated features look to be nice, though.
I'll probably focus a little bit on functional programming, too. Functional programming has invaded my personal programming style over time, and I'd like to take a more active role in exploring that.
Professionally, My team was primarily a Java shop, but over the last few years we have managed to move to Clojure and Golang mostly (we still maintain some legacy services which will be decommed...
Professionally, My team was primarily a Java shop, but over the last few years we have managed to move to Clojure and Golang mostly (we still maintain some legacy services which will be decommed over the next few years running in Java).
Personally, I have been concentrating on OCaml and Rust over the last several months. I think I will continue that trend.
I really like the idea of Rust but wrapping my head around the borrow-checked has not been an easy task. Working through the Rust book, I also feel like Rust provides too many ways to do things, and feel like it causes a lot more mental overhead when I am trying to write in rust. (Especially after working with Golang during the day, which at it's core is such a tiny language). This however I feel like is just a part of the learning curve with rust :)
I also love all lisp-y languages. For most of my personal projects I pick Common Lisp, but I still keep learning new stuff every few weeks with it :)
I have been looking at shen as well and playing with it.
Edit: I have also been looking into Clasp. It's a common lisp implementation which compiles down to LLVM IR and uses LLVM to create native binaries. This way also provides really nice inter-op with C++ bindings.
If anyone is interested, There is a really nice video talk creator of the Language gave at LLVM conf about this here.
This year I hope to concentrate more on older programming languages as well, like:
Forth - Currently reading Thinking in Forth, it is a great book, available for free here
The motivation for diving into these languages is primarily because I am interested in programming languages in general. I have been trying to read more about compilers, parsers, etc and I wish to understand the internals of how a programming language works.
By the end of 2020 I want to pick a Bytecode VM and try to take it apart and understand how they were implemented and how they work. Current pick for this task is BEAM, since it has quite a bit of documentation, which should help me in this task, and I have a fairly good understanding of Erlang to begin with.
Edit: Forgot to mentions Dart
I picked up Dart/Flutter last year and was pleasantly surprised with it. I was able to learn Dart/Flutter and build a simple Android App for my SO and deploy it to the play store in about 3 weeks.
I will definitely be playing with Dart more this year. Especially with Flutter Desktop becoming more stable.
The landscape for making cross-platform native desktop application is abysmal.
There is Qt which is quite bloated. And, Qt5 made language bindings for non-C++ and Py languages much harder. Thankfully the Qt6 vision blog post mentioned easier language bindings as one of the things they are targeting for Qt6.
Electron is a dumpster-fire, I do not wish to touch with a ten-foot pole.
There are options like Revery and Sciter which looks cool, but have their own issues.
/rant ; I should probably make a separate post about this ...
I'd really like to finally learn PHP and maybe some Javascript, basically some more web development. The problem is that I've never really had a good "project" to work on as a way to learn. Even...
I'd really like to finally learn PHP and maybe some Javascript, basically some more web development. The problem is that I've never really had a good "project" to work on as a way to learn.
Even right now I use Drupal for a website so I haven't found a reason to actually do any of the coding. If anyone has suggestions on good basic projects to get started with those two languages, I'm very open to suggestions.
I feel building something in a language to learn the language is the best way to learn that language! A good choice would be re-creating a tool/app you use already. This has the benefit of you...
I feel building something in a language to learn the language is the best way to learn that language!
A good choice would be re-creating a tool/app you use already.
This has the benefit of you knowing the exact behavior of the app.
Something like a interactive blogging platform, would be a fairly easy project for you to create in PHP and Javascript. It would also let you explore the basics of those languages! :)
Some people also prefer coding challenges to solve in a programming language to learn the language. This has the advantage of exposing tiny pieces of the language at a time. If you want to try this route the euler project or advent of code are nice challenges
My list for 2020: python - because i started learning it in 2019, and need lots more mastery. But so far, it has been such a joy, that i want to learn far more. Also, because so many interesting...
My list for 2020:
python - because i started learning it in 2019, and need lots more mastery. But so far, it has been such a joy, that i want to learn far more. Also, because so many interesting areas - data analytics, ML, AI, machine/computer vision, etc. - seem to leverage python (at least for prototypes). so it makes sense to learn python even if only to dabble in these fun-sounding areas.
(vanilla) javascript - much like a few folks (like @Eric_the_Cerise ) have noted, this is a language that I've halfway known for most of my career, so would like better mastery of it. Honestly, I've just never needed to use that much of it in the past (except for small little scripts here and there)...but now everything seems to include or reference javascript (or at least frameworks based on it). But i figure knowing the vanilla "edition" would help with any other aspect of javascript (e.g. nodejs, PWA, SPA, etc.).
php - another language that I've halfway known throughout my career. I'd like to gain more mastery only because my side hustle IT/tech. consulting shop seems to attract clients who either have existing platforms using php, or leverage wordpress, etc. None of my dayjob employers ever used php, so its not like php would immediately help with my full-time dayjob employment at all. But, since mastery would help get me more productive for my side hustle clients, that helps me with revenue. Let me clarify that I don't hate php at all (nor do i love it). I'm merely a tiny, little bit productive with it, but would just like/need to get more productive with it.
Side note/question: Does anyone else have a tech. side hustle where they have to use some tech/platform/language that they don't care that much for, but can't really stop because...money!?! I can't be the only one. :-) (Again, i don't hate php at all, simply not my favorite language is all.)
Personally, I think I'll be doing : More Python, I've already done python but I need to actually learn more of what I'm doing and get better with it. Rust, I really don't want to handle memory...
Personally, I think I'll be doing :
More Python, I've already done python but I need to actually learn more of what I'm doing and get better with it.
Rust, I really don't want to handle memory management so I want to learn Rust so I don't need to handle it myself like I would with other low-level languages.
GTK, not neccessarily a language per se but I really want to learn how to make GTK interfaces. I'm not exactly sure where I should start. I'm also not sure if I want to do it with rust or python. If anyone could offer help with GTK, with either python or Rust, I'd be quite grateful.
It's not certain yet, but from a brief research, probably C++ and python. Reading this thread kinda worried me. See, I work in the SAP department of my company for about 3 years, mostly developing...
It's not certain yet, but from a brief research, probably C++ and python.
Reading this thread kinda worried me. See, I work in the SAP department of my company for about 3 years, mostly developing ABAP reports or creating apps (SAPUI5). I'm not exactly a stranger to programming languages like Java and C, but I only had about 4 months of "introductory classes" on both of them (4 years ago).
Thing is, a colleague that I've known and worked with for a long time has been complaining about being bored with SAP. He is the kind of guy that would come into this thread (probably will actually), with the intent of finding new things to learn and tinker with. But that got me thinking... I like VR and I'm somewhat decent at sharing ideas, developing and also putting things into new perspectives. Why not try something outside of SAP?
Interestingly enough, I was accepted into 2 "innovative" projects that have recently started in my company (completely unrelated to SAP):
one specifically about XR (VR/AR/MR), like a company XR hub for knowledge sharing but also to connect the business ideas/people with developers - honestly don't know much about XR development yet, we are still a very small group of people, but would C++ be a good idea for me to look at?
and another that will basically mix project managers, developers and internal/external "experts", to identify issues or come up with ideas on how to implement new technologies (like blockchain, XR, AI, etc.), in order to create new solutions or improve existing ones - expecting a lot of python here, would that be a fair assumption?
Programmatic thinking is much more important than focusing on one language. If vba helps you, it’s the best for you to learn
I might suggest looking into C# as well. I developed a microsoft excel plugin for 3 years that was used by some pretty big names (Microsoft, Salesforce, KPMG Nunwood Consulting, LexisNexus) and developed it all in C#. We started out working in VBA but found C# was just a bit more workable. When I was leaving we were looking at moving from .NET Framework to .NET Core so I can't help with that aspect. Not to say VBA isn't the correct solution for your use case, but more that it is rare where my excel development experience is relevant :)
I'd second that motion. Excel is like a multi-bit screwdriver; it can be used for many things, but for some things you are much better off using a dedicated tool. Learning a decent general-purpose language is like knowing how to make those dedicated tools. Besides, the last time I checked (and keep in mind I'm an outsider with zero actual interest in Microsoft's programming languages), the newer versions of Visual Basic offer a coding experience that's surprisingly close to C#. Though I don't know if that's going to ring true for VBA.
I'd be interested in what @Loire is trying to automate, if they're willing to share.
This might be something you can accomplish fairly easily with shell scripts, depending on how CLI-friendly Outlook is. It's been ages since I had to write scripts for windows, but I believe at one time you could drop a file on top of a script and it would run the script with the dropped file's complete path as it's parameter, which would make it really easy for your successors. If that doesn't work anymore (I'm honestly probably misremembering altogether), VBA has an easy way to summon a file selector.
IMHO the biggest problem I have with your solution is that you're committing the one cardinal sin of Excel; using it to design printable reports. Excel formatting is so easy to break. Heck, formatting is easy to brake in any Office application. And that's less of a programming problem than a tooling problem. There are so many ways to tackle that problem that your head will spin from trying to count them.
When I was working on my Excel project my manager just got used to features being impossible/bugs/hacks being completely independent of our code and being due to some asinine decision Microsoft made about Excel that we had to figure out a way to work around. Almost all of them were formatting/cell based.
I'm not laughing. Sometime around the end of the month I'm going to be paid to attend a two-day training session in a complete garbage proprietary programming language called DELUGE. It's so bad has so little forethought that it's got me seriously pining for early 80s Microsoft BASIC. I swear that about 90% of the built-in functions that require numbers as inputs require them to be as strings.
They should have called it DELUSION.
The best language to learn is the one you'll use, and the language you'll use is the one you need. Best of luck.
Professionally:
Personally
As far as HTML + CSS + JS are concerned, feel free to PM me if you have any questions. I'm not expert, but I have been doing it for five years now, so I could help you with the basics.
I thank you very much for the offer. I appreciate it, and I'll return it in kind; if you have any questions on anything above, I'd be happy to answer. The things that I said I would be focusing on professionally (top list) are all things that I would consider myself reasonably expert in, and I'm happy to provide help or guidance on any of them.
In no particular order:
Go, because I work with the language and because I love it. It is by no means perfect, but it's the closest to perfection for me personally. Recently the authors have speeded up the evolution of the language, and I'm excited to see where it will go next.
C, because it's still the lingua franca of most OSs.
A flavour of Pascal or Oberon, because simplicity matters and because I'm a Niklaus Wirth fan-boy trash.
Custom and existing flavours of XML, including XSLT and XHTML5, because it's still a good [family of] language[s] for structuring [meta]data, as well as transforming and displaying it.
(POSIX) Shell, because you need to know how to command those pesky spirits in this devil-machine.
You may notice a pattern here. Most of these languages are simple and mostly easy to grasp. I am a man of simplicity. I think that a tool that you can't master fully is not worth preferring over a couple of tools one can comprehend working together.
They're also not very exciting for most people and not very new. I guess, because apparently simplicity is not very popular at the moment? Or because they are languages that do their job just well enough? Or I'm simply becoming an old fart who is afraid of new things :-)
Do you have much experience/thoughts on Golang for REST API development? I like Go a lot as a language from what I've worked with and I think it is the perfect language for my team (lots of people are learning it for Kubernetes stuff, it has a low learning curve for our sysadmin background folks, and way more efficient than python) but I can't decide if it is the right tool for the job and we already have a framework in python (very minimal but it does exist) so I want to make sure it is right before I make the uphill push.
I basically do nothing but REST-ish APIs in Go for a living. It's going pretty good so far. You'll be fine, unless you try to write Go as if it were Python, Ruby, or JavaScript. A mistake I've seen dozens of times. In those languages the first thing one does is grabbing the freshest, hottest framework off the shelf and get going at it. What works well in Go is a simplicity-first, library-centric approach. That is, master the
net/http
package in the standard library, add a couple of libraries for routing, SQL, KV, and assets, and… that's about it, really.I obviously can't tell if Go is the right tool for your job, but If you have any further questions, I'll be happy to answer, but keep in mind that time zones are a thing.
So I didn't make this super clear in my first post, but the whole thing needs to be reworked. The project right now is a single "API" that is actually 2/3 in php 5.1 and 1/3 in python2, the way it is deployed is such that it only works on one specific VM, which beyond being incredibly brittle also makes it a huge pain in the ass to set up a dev env, there's nearly no unit tests, there's no real semblance of version control (bc all changes are just made directly to prod bc setting up dev is a pain). There's also a huge mental shift on how the system should run and be interacted with by internal users so there is going to be a lot of changes to archictecture and a move to put it in docker/kubernetes. So basically I'm going to have to re-write almost everything already.
I'll keep working with Julia, because I think it's the best in my domain (scientific computing, statistics, data analysis, ...) and I'm pretty much an expert at it at this point.
I sometimes want to do a bit of max/msp again (visual programming language for audio and video) but it's a bit expensive, although I see that they have a $10 monthly subscription, which might be fine to mess around a bit.
I might have to do some simple C++ at work, it's kind of fun since I don't know it well, but it's certainly labourious.
Max/MSP was originally based off PureData from what I remember, have a go with that first and don't let the minimalistic UI turn you away. It's very functional, open source and has a decent community behind it :)
I've tried PureData a couple of times yes, but that Max UI looks juicy.
I took a lot of machine learning classes in the last year, I am working on improving my pythonic code. Instead of python code the java way
(Sorry, I need this.)
<rant>
Fucking Ansible, man. The Ansible devs knew they won't be able to make it all nice and declarative. They knew you're going to need features from actual programming languages, such as variables, functions, and conditionals. They knew YAML sucks ass. Like, a lot of ass. And still they went with YAML instead of an actual, sane language like Lua or Python.
Fucking Ansible, man.
</rant>
EDIT: Fixed the second ass-link.
Yeahhhhh. I like ansible in that once I get something working in ansible it makes my life a lot easier, but man does getting what I want in ansible suck a lot of the time. And the more complicated the tasks, the harder it is to justify to myself.
For python, I really liked these 2 Videos:
https://youtu.be/OSGv2VnC0go
https://youtu.be/7lmCu8wz8ro
I also follow Raymond on twitter where he shares some short tips
Looks like it'll be JS for me. I've been a PHP dev for years now, but the higher-ups at work decided to commit to a node/react stack for all new projects and some conversions are taking place. I also got moved from PHP project to an emberJS/Groovy project. We're in the process of migrating it to react, but in the meanwhile I guess I'm learning ember?
Regarding Haskell, I tried it a couple of years ago. I found it to be a really good way to learn something new. It is very different from the imperative paradigm usually used with most mainstream languages. I learned a lot about how to control mutable state and when and where to use it.
That said, the language itself is very difficult to work with. It seems to embrace doing things in an odd way just for the sake of it. It highly encourages hard-to-read styles of writing or at least all practitioners of the language that I could find on the net seem to embrace hard-to-read styles of writing it. Many of the concepts are deep computer science concepts that don't have immediately obvious business-related functions. The people who write about them seem to revel in being so smart that they understand these concepts, but have a really hard time explaining them to others or explaining their usefulness. And of course, they have their own package management system. Also, nobody else knows the language so anything you write in it will have to be maintained by you. That's fine if it's a hobby project, but generally not useful for work.
Anyone have suggestions for a decent alternative to Haskell? I always see it being the one suggested. I don't know much at all about functional programming but would like to dip my toes.
A lot of people like ML dialects like Standard ML and OCaml. Then there are F* and Idris, if you like it rough and are not afraid of shiny new stuff.
Type Driven Development in Idris is an excellent book. In some sense I consider it to be the best book for learning Haskell too :P.
It's the only pure functional language I've tried in earnest. I hear a lot about Rust these days, but have not tried it myself so can't really comment. If you know C#, I hear F# is a similar functional language.
I don't mean to deter you from learning Haskell. As I said, it was a worthwhile experience. I just can't use it directly in my day-to-day work. But I have used many of the concepts I learned from it to improve my C++ and Swift skills.
You are not alone in this thought process. Even many of Haskell's most staunch proponents agree that the language has a severe community problem about how interwoven and deeply confusing its code can be, to the point where many of them are pleading for people to write simple Haskell code, and train their Junior developers properly.
As someone who doesn't use Haskell, but took a university course on it (and failed it!), I can't think of a worse choice for your business than picking such a decidedly mainstream, yet also ironically esoteric language. It seems like a language best suited for small teams in niche areas, or academia.
Glad to see someone else who appreciates the em dash! I have the alt-code memorized: alt-0151
You had to reply to my one comment that didn't have one, didn't you? 😅
Thanks!
Swift as we'll soon be using it at work. I've already switched to it for all of my home projects because it's so nice.
I'll probably start learning Python 3.x. I have some stuff I maintain at work that was in Python 2.7, and I haven't had to touch it in a while. But I'm going to need to update it soon and will want to bring into the modern age.
I'll be learning C for school this semester. If I have any free time though, I would like to learn more python. I'd really like to get into web development and learn things like django, but man it seems hard to get into.
I liked Rust the last time I tried it. Might be going back to using it again. It looks pretty for my coding sensibilities, and I fathom the syntax.
I'm also looking at V. One: it's not mainstream. Two: it's made by a Russian dev. Three: it's a new, emerging language. Four: it promises to be really fast.
Well... Balls.
I, too, want to pick up $800/mo. on a list of promises. I mean, I have the private roadmap written already. Could you guys pucker up and kiss my bank account?
-_-
($800 in Russia is ~50k₽. You can rent a decent apartment in Saint-Petersburg – 20~25k₽ – and still live comfortably on what's left. Saint-Petersburg is the second-biggest city in Russia.)
Thanks for the heads-up. I got really hyped for that project since a while ago.
Rust alone it is, then. When I'm ready for another nerdy language excursion, I'll consider Zig – and Odin, which was mentioned in the first linked thread, I believe.
Along with Zig, I would also suggest the following emerging languages that have interesting things going on:
Nim looks interesting. Thanks for letting me know.
Crystal looks rather Ruby-like, which I enjoy.
My employer uses C++ almost exclusively, but I am trying to make myself more marketable to other potential employers by learning Go.
C# (along with T-SQL, ASP.NET, Razor, VB, etc ...) has been my bread-and-butter for ~15 years. I want to leave the M$ stack, and in recent years, have been learning all the Linux things.
My list:
C - always wanted to learn it in and out, but never have done anything major with it.
Shell scripting - seems rather useful
Assembly - :)
It has to be Python. I was thinking about switching to Racket, the predictability of lisp syntax is enticing, but switching won't do me any good right now. Working with Python is not a real possibility in my area, but I can go to another state, and studying a language I enjoy makes things a lot easier. After learning the fundamentals, I can always switch to Java, C# or Javascript to become more employed.
Professionally, probably a lot of Python and some C.
Personally:
Professionally, My team was primarily a Java shop, but over the last few years we have managed to move to Clojure and Golang mostly (we still maintain some legacy services which will be decommed over the next few years running in Java).
Personally, I have been concentrating on OCaml and Rust over the last several months. I think I will continue that trend.
I really like the idea of Rust but wrapping my head around the borrow-checked has not been an easy task. Working through the Rust book, I also feel like Rust provides too many ways to do things, and feel like it causes a lot more mental overhead when I am trying to write in rust. (Especially after working with Golang during the day, which at it's core is such a tiny language). This however I feel like is just a part of the learning curve with rust :)
I also love all lisp-y languages. For most of my personal projects I pick Common Lisp, but I still keep learning new stuff every few weeks with it :)
I have been looking at shen as well and playing with it.
Edit: I have also been looking into Clasp. It's a common lisp implementation which compiles down to LLVM IR and uses LLVM to create native binaries. This way also provides really nice inter-op with C++ bindings.
If anyone is interested, There is a really nice video talk creator of the Language gave at LLVM conf about this here.
This year I hope to concentrate more on older programming languages as well, like:
The motivation for diving into these languages is primarily because I am interested in programming languages in general. I have been trying to read more about compilers, parsers, etc and I wish to understand the internals of how a programming language works.
By the end of 2020 I want to pick a Bytecode VM and try to take it apart and understand how they were implemented and how they work. Current pick for this task is BEAM, since it has quite a bit of documentation, which should help me in this task, and I have a fairly good understanding of Erlang to begin with.
Edit: Forgot to mentions Dart
I picked up Dart/Flutter last year and was pleasantly surprised with it. I was able to learn Dart/Flutter and build a simple Android App for my SO and deploy it to the play store in about 3 weeks.
I will definitely be playing with Dart more this year. Especially with Flutter Desktop becoming more stable.
The landscape for making cross-platform native desktop application is abysmal.
There is Qt which is quite bloated. And, Qt5 made language bindings for non-C++ and Py languages much harder. Thankfully the Qt6 vision blog post mentioned easier language bindings as one of the things they are targeting for Qt6.
Electron is a dumpster-fire, I do not wish to touch with a ten-foot pole.
There are options like Revery and Sciter which looks cool, but have their own issues.
/rant ; I should probably make a separate post about this ...
I'd really like to finally learn PHP and maybe some Javascript, basically some more web development. The problem is that I've never really had a good "project" to work on as a way to learn.
Even right now I use Drupal for a website so I haven't found a reason to actually do any of the coding. If anyone has suggestions on good basic projects to get started with those two languages, I'm very open to suggestions.
I feel building something in a language to learn the language is the best way to learn that language!
A good choice would be re-creating a tool/app you use already.
This has the benefit of you knowing the exact behavior of the app.
Something like a interactive blogging platform, would be a fairly easy project for you to create in PHP and Javascript. It would also let you explore the basics of those languages! :)
Some people also prefer coding challenges to solve in a programming language to learn the language. This has the advantage of exposing tiny pieces of the language at a time. If you want to try this route the euler project or advent of code are nice challenges
Good luck!
Thanks for those links, and the great idea of a fun project. Hopefully they'll help with my goal.
My list for 2020:
Side note/question: Does anyone else have a tech. side hustle where they have to use some tech/platform/language that they don't care that much for, but can't really stop because...money!?! I can't be the only one. :-) (Again, i don't hate php at all, simply not my favorite language is all.)
Always bet on yavascript.
https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript
Personally, I think I'll be doing :
It's not certain yet, but from a brief research, probably C++ and python.
Reading this thread kinda worried me. See, I work in the SAP department of my company for about 3 years, mostly developing ABAP reports or creating apps (SAPUI5). I'm not exactly a stranger to programming languages like Java and C, but I only had about 4 months of "introductory classes" on both of them (4 years ago).
Thing is, a colleague that I've known and worked with for a long time has been complaining about being bored with SAP. He is the kind of guy that would come into this thread (probably will actually), with the intent of finding new things to learn and tinker with. But that got me thinking... I like VR and I'm somewhat decent at sharing ideas, developing and also putting things into new perspectives. Why not try something outside of SAP?
Interestingly enough, I was accepted into 2 "innovative" projects that have recently started in my company (completely unrelated to SAP):