I think it's getting harder and harder to justify using anything but the most popular languages and frameworks.

You need a VERY good reason to use anything except TypeScript/C#/Java/Golang/Python/React/Vue/Postgres/MySQL/SQL server/Oracle. Perhaps Rust. These technologies are good enough to get almost anything done these days. There's exceptions of course for example games tend to written in C++ and embedded is often C.

Apart from anything, you should be using these most popular technologies if only for the sake of recruiting.

Using less popular technologies like Erlang/Dart/Kotlin/Ruby/Elixir/OCaml/F# or whatever weird new JavaScript React alternative thing got you interested lately is a bad idea not just for recruiting but for support and community and documentation.

If you are the person deciding which technologies to use, you should probably be using the most mainstream thing you can, not the coolest newest thing that you read on Hacker News. There's any number of companies saddled with their main systems being built in the weird assed framework that the fourth-to-last CTO decided was a good idea, and those companies are now stuck with the problem.

I should note of course that my comments refer to company/organisation development. For personal projects or fun or whatever you should do whatever the heck you enjoy.

> You need a VERY good reason to use anything except TypeScript/C#/Java/Golang/Python/React/Vue/Postgres/MySQL/SQL server/Oracle. Perhaps Rust. These technologies are good enough to get almost anything done these days. There's exceptions of course for example games tend to written in C++ and embedded is often C.

I'm not sure what you're suggesting.

Are we expected to rewrite everything every decade when a new flavor of language comes out?

It seems like, with the exception of Rust, you've named a lot of "lowest common denominator" languages. These languages, while productive, tend to lack expressiveness. It is my opinion that expressiveness is seen as a bad thing in the "professional" community because it takes significant cerebral evolution over the course of a career to learn which tool in the toolbox to use. In other words since the explosion of programming as a career there are more idiots in the proverbial gene pool, and so more companies prefer more idiot-proof languages because the average developer can't help but hurt themselves. This doesn't mean we should prefer "new safe technologies", it means our recruiting should far more stringent and our education far more formal (as in an actual useful programming degree).

I for one would quit if I could program, for example, common lisp and make even 3/4 of my current salary.

Here's, in my opinion, a better and less controversial hot take. Use what works. If you have a team of erlang developers do it in erlang (or whatever). Who cares about the market. If it means spending even more time (and money) learning to write another more popular language correctly it may not be worth the investment. If you build it, they will come. You will have no problem finding an endless stream of developers you can build from the ground up.

As a side note: Kotlin, Ruby, and F# are extremely popular. TIOBE is not a real measure.

> If you have a team of erlang developers do it in erlang (or whatever). Who cares about the market

As an IC, I care about the market. I go to work exclusively to exchange my labor for money to support my addiction to food and shelter. When it was time to change jobs as your bog standard enterprise dev, it was much easier to throw my resume in the air and get a job offer by being an experienced C# developer than it would have been if I had spent three years writing software in Erlang.

And most job interviews outside of tech companies where most developers work are not going to be language agnostic nor are they going to have you reversing binary trees on the whiteboard while juggling bowling balls and riding a unicycle on a tightrope.

As a reformed former dev lead, why would I hire an Erlang developer when I could throw a rock and hit a good enough C#/Java JavaScript/React developer to push out some CRUD SaaS app or line of business app?

Because the average Erlang developer is probably a better developer than the average in those languages and still quite capable of writing in any of those languages, at least with a little study and practice.

Are we really to believe that the average Javascript developer is going to be able to be dropped in an Erlang shop (or any of the other "weird" languages) and be productive any time soon?

The “language” is the easy part. Every language has an ecosystem around it and foot guns and best practices and frameworks. Take C# for instance, sure the language is decently easy. But, the first and third party frameworks around it are huge.

I’m sure I could (re)learn Java that I haven’t touched since shortly after it was first introduced in the 90s in a few weeks. That doesn’t mean I would be a competent Android developer.

The average JavaScript developer would be an idiot to ever step foot in Erlang shop if he knew what was good for his career.

My resume was sacrosanct when I was in the enterprise dev world until mid 2020. Why would I reduce my optionality by not using the most marketable technologies?

The language is only easy if you have basically learned the language already. Java, C#, C++, Python, Go etc. all differ but fundamentally they are all the same language with different amounts of window dressing. So yeah if you know one of them it's easy to "learn" the others. But I wouldn't really call this learning a new language.

It's a fundamentally different ask to learn Haskell, datalog, SaC. You are actually learning a new language instead of just the flavour of the week imperative programming.

The last time I had a job where I only had to learn “the language” to be effective was 1999 programming in C and FORTRAN on VAX and Stratus mainframes. By 2000, “knowing C or C++” didn’t do any good without knowing MFC, COM, etc.

What good is a language in 2022 without a complete ecosystem of frameworks for most jobs?

Even esoteric languages have a relative complete ecosystem of frameworks. I use Haskell in my day job and I never had issues finding a library.

Say I’m developing an application that needs to interact with cloud services.

The last time the third party Haskell SDK for AWS was updated was in 2014. I do see a third party GCP SDK. But if GCP and Azure works like AWS, as soon as a new API is released by a service team, all of the officially supported SDKs automatically get updated.

I am sure there are other service providers that have SDKs and code samples for popular languages.

The latest update to Amazonka (the Haskell library for AWS) was 3 hours ago.

https://github.com/brendanhay/amazonka

I use the package directly from GitHub in my project.