Discussion on up and coming, or hot right now languages and tech skills.
Curious to know and hear what professional tech people are experiencing. Is React still the it thing? Is Agile taking over the world?
Discussion on up and coming, or hot right now languages and tech skills.
Curious to know and hear what professional tech people are experiencing. Is React still the it thing? Is Agile taking over the world?
Well you know what I’m going to say: (lisp)
And seriously it’s a multi-paradigm language that supports pure functions, OOP, and is a rock solid standard with superb tooling and every library under the sun.
But I do think its functional brethren are really worth taking a look at, particularly Clojure and Haskell.
(I (just (can’t (handle (lisp)))))
I think that is the case. Certainly it seems to be the way that all the small shops (aka startups) are doing things these day. Some people will lament it, but I having done 20+ years of waterfall, I found the mentality of agile quite refreshing. It didn’t save our company or my job though, so it’s no magic bullet
The key thing it taught me is: to have high test coverage and to always be shippable and to use continuous build/integration to make sure it always builds so it could always ship.
Rust seems to really be developing a following. I haven’t used it because it seems just too close to C++ which I find has an over-reliance on punctuation that makes it hard to read and understand. I’m sure if I spent more time with either I would find it more comfortable, but I like my object oriented code with long readable variable names from my Java background.
Nim seems interesting, but I don’t know yet if anyone is using it for real work. I have a friend who loves playing with new languages and he did D language for a while then started singing the praises of Nim. In each case, they’re languages that built on top of C/C++ and I think originally transpiled back to C/C++.
Flutter is a pretty interesting framework for building cross platform mobile (and soon web) apps. Google seems to be advancing the platform quite a bit. The underlying language is Google’s Dart.
Check it out at https://flutter.dev/ and https://dart.dev/
I’ve taken one really good intro course that was developed in association with Google. I found it on Udemy for $10 (they always have sales) - https://www.udemy.com/course/flutter-bootcamp-with-dart/
I’ve since found a couple of others on Udemy that were also only $10 during their sale, so I grabbed them as well. The Udemy sales are a great resource.
Update: I just saw that the Flutter course is available from the instructor’s site for $10 - https://www.appbrewery.co/p/flutter-development-bootcamp-with-dart
Possibly not too relevant to general trends, but in my field (environmental science and geography in academia), R really seems to be taking off. A few years ago Python seemed to be dominant, but more and more of the tools I’m using are in R () and many of my colleagues are using it regularly. I went to a mapping conference earlier in the year and it was R workshops and presentations using R galore.
I think to an extent this is down to the rise of the ‘Tidyverse’, which is a collection of packages that makes handling data easier. I’ve not got too much experience with it, but from what I can see it’s basically becoming it’s own sublanguage that’s used by default, akin to mid 2000s jQuery I guess.
I’ll throw this in here, as it has relevance to the status quo:
I was a long term C++ program when I started looking more closely at Common Lisp. I was getting frustrated at the difficulty in expressing complex Object Oriented Class associations in C++.
When I finally started reading Common Lisp books it was a amazing. Most of what I struggled expressing in C++ were simple in Lisp, including a better means of dealing with complex class hierarchies (CLOS), exception handling, and built in collections.
In a way, it really spoiled my experiences learning new languages, where their deficiencies became very visible.
Since then I have used a variety of Scheme implementations, which (to me) have much nicer functional programming support at the expense of some of the built in functionality of Common Lisp. Scheme also has a much cleaner module system.
The Common Lisp Standardization process was so difficult for its developers that they have resisted any attempts to update the language. Scheme, however, has the opposite problem of being redesigned with every release.
As of late I have mostly been programming in Haskell, which I studied initially to get a more strict look at functional programming. Haskell is in a sense the anti-Lisp, where every criticism of Lisp seems to have been taken on. It was certainly the hardest language I ever tried to learn. Part of the problem was that much of what I learned about programming did not hold in a lazily evaluated language like Haskell. It was a real eye-opener about what one can express simply in a computer language.
I think even if you never use these languages in your job, its worth while spending some time learning them. Common Lisp is a great help in learning to design large programs. I think Scheme is the best low level framework for understanding how algorithms (and software in general) work. Haskell gives a real sense of where software should be going. Haskell was the first language that I could express things in a way that would be much more difficult in Common Lisp.
Each episode of Security Now seems to bring out the fact that C/C++ programs are always going to have problems with memory allocation, and that no matter how many eyes are on a program, or tests are run, there are fundamental problems with continuing to use these languages to build OSs. We seem to have a lot of languages in contention, some old like Erlang or new like Rust, and I don’t have any idea about what will get the mind-share, but we need safer languages.