I analyzed more than 7M developer jobs
devjobsscanner.com
devjobsscanner.com
Some other languages on the other hand, are far less common, but because they occupy a specific niche, might actually be more "in demand" (ie, less competition for an applicant, higher salary).
Even if you had resume data, having a language listed as a proficiency doesn't mean that person is in the supply of developers for that language. Likewise, sometimes people get jobs for languages they don't know. I hadn't used golang before my current job, so I wouldn't have been in the "supply" of go developers despite being hired to use it.
Getting js right is hard. Thus, competition for _skilled_ devs is rather low.
Same goes for php. Writing code full of sql injections, no design patterns, and no scalability is easy. Most php devs are limited to Laravel or Sympfony and have no clue about the language’s inner workings. Doing it right is hard and if you do you will get nice returns.
But i do agree about niche languages. The number of jobs available means nothing. Whats relevant is the (applicants/ number of jobs) formula.
In the beginning Microsoft created its own Java compiler and called it J++. Then there was a lawsuit by Sun that went on for a while.
Microsoft decided to cancel J++ and instead, shortly afterwards C# 1.0 was released and the language was extremly similar.
I was using early C# 1.0 Betas and it was even more obvious.
Later editions and certainly C# 2.0 which introduced generics took a different path than Java and today they are different.
J++ was an actual JVM implementation, c# ran on the .net runtime that was being developed at the same time for the next generation of Visual Basic. While the languages looked superficially similar, the runtime and base class library is significantly different.
After the sun lawsuit, Microsoft dropped j++ and released j#, which allowed for a weird hybrid of Java but with the .net class library running on the .net runtime. This was short lived because why use this over c#, and has been mostly forgotten to history.
Visual Studio early on and Visual Studio today are very similar to the Borland dev studio when Hejlsberg was working there. I've used both languages/IDEs in my career extensively, albeit I haven't used Delphi in probably 15-20 years.
Doesn't this mean that they're only counting cookie cutter ticket grinding dev jobs? Which will be heavily biased to the current top ~3 corporate use languages.
IME in good dev cultures the teams have a lot of freedom in picking the tools, and people are recruited assuming they can pick up new programming languages on the job.
May it be a huge amount of positions have been incorrectly labeled for Java instead of JavaScript (you know… Ham / Hamster) and then corrected a month later?
But startups are also more likely to falter quickly in a recession than the old guard. And that's where java (or c#) is overrepresented.
But this methodology has Kotlin at 0.35% of jobs! And for that matter, Swift is not much more, at 0.38%. Why are these flagship languages for large ecosystems (Android/iOS) not more in-demand?
For iOS where I work, we use primarily Objective-C, with only a tiny bit of Swift. We actually have more Rust code than we do Swift. (The Rust code is for our cross-platform logic that's shared between Android and iOS.)
I think the Android side is all Java with no Kotlin at all.
The response I got is: "nope, we're fine employing one mid-level React dev to maintain our app in both platforms."
They don't consider mobile apps being essential for their fintech business in 2022. I'm speechless but this serves as a hint as to why we don't see more Kotlin and Swift jobs: companies are cutting corners with React.
I know a few companies in Minneapolis are using Kotlin instead of Java for their new microservices.
Ruby is as good as it ever was, it's just not shiny anymore.
And god, I remember the shiny. I remember when Ruby on Rails came in the scene, and the whole fuss about Basecamp and how influential 37Signals seemed to be back then. Time flies.
They both got major companies (Etsy, Shopify, Github, Gitlab, Airbnb,..) backing them and are not going away at this point.
Great choice if you are looking to get work done with a mature ecosystem and settle down..
What I want to know is if any variation of Algol is used in any production context today.
Eg. Go (say) is often a secondary skill listed with the real target, like Java. This means it's not as in demand as might appear on the surface let alone considerations of whether it is actually required by the recruiter or is just being used as bait.
It's pure Go job.
I've never worked or even heard of a software engineering position requiring literally just one language.
That makes me wonder how the author handled positions that list multiple languages, or a primarily language along with nice-to-have languages.
Potentially discarding all of those results sounds like throwing away most postings.
But there are a few dedicated Rust job boards:
"rust jobs" vs "rust jobs I personally want to do" doesn't really back up the statement that there are no rust jobs available.
The compensation isn't there to match it. Neither is it like a COBOL type of situation where someone's mainframe is running on super niche language.
You are better off learning C++ or Assembly
Really? Speaking from the Elixir perspective, I get recruiters messaging me with surprising frequency about senior Elixir SWE roles with base salary up to USD $200k; it doesn't seem like compensation is the issue, at least from my experience.
Clojure developers have a different distribution of unobserved skills and motivations than JavaScript developers or Go developers. So the difference in average salaries could be due to the robustness of the language, due to the pockets of the industry that use them, due to unobserved skills and related reasons, or even due to differences in how much Clojure vs. other developers value amenities like the novelty of the task that they are working on.
It would be interesting to see more than just a comparison of averages. But collecting good data to capture the finer details is hard.
For example, you can have a population of 10,000 jobs, 9,000 of which is hiring for Clojure and 1,000 of which is hiring for Forth. If you sample the 9,000 Clojure jobs, then you might conclude that 100% of all 10,000 jobs are for Clojure. But in reality, only 90% are.
Instead, you can sample 100 of the 10,000 jobs at random. The expected value of the average of whether a sampled job is a Clojure job will be 90%. There will be noise but that can be statistically accounted for.
If the population that you want to draw conclusions about is, say, the complete universe of jobs ever offered in the US in 2021, it will be difficult to find either a data set that contains this universe or a data set that is arguably a random subset of the universe. So representativeness is hard.
You could adjust your population definition to achieve plausible representativeness. For example, take the population of all developer jobs at companies that had an IPO between 2018 and 2021. Maybe you have a way to compile this data set from some source. Then you limit the scope of your claims but you will be more credible.
Another thing that you can do is take an existing data set that you know to be representative and compare the distribution of job characteristics in your sample to that. For example, you might find that your sample is more likely to include web development jobs than your reference data set. Then you know that your sample is not representative, and you know in what way it isn't. Or you might find that your sample is comparable to your reference data set. This can give you some confidence that your findings generalize.
I don't know many Clojure devs who found their job looking for a Clojure dev job ad. Even the yearly state of Clojure survey has ~2400 responses.
The number of responses to the Clojure survey is barely representative for the size of the job market; otherwise you would have to expect millions of respondents for e.g. the JavaScript survey; people responding to such surveys are likely fans of the technology, not necessarily professionals who were hired to use the technology; of course there are also professionals among the respondents, but we don't know the exact proportion.
On the surface, that appears to take virtually every company doing a front end web app and merge it with everyone doing JS or TS on the backend, when the rest of the languages are just backend.
The author doesn't seem to clearly list a methodology so I'm guessing a bit but...
I put a lot more stock in Stack Overflow's survey results, although I also wish they distinguished frontend JS vs backend JS usage in comparison to the rest of the languages which are only backend.
https://survey.stackoverflow.co/2022/#technology-most-popula...
My guess would be Python and C++ being higher up due to AI and deep systems work.
The Stack Overflow survey results have this. You can see top paying technologies by language, framework, etc.
https://survey.stackoverflow.co/2022/#top-paying-technologie...
It doesnt even give job stability because some of the highest languages may be on their way out, whereas the lowest might be just coming to popularity (and will rise for +10 yrs) ...
Searching by simply "Java" or "Scala" is nonsensical for exactly this reason. They are mentioned in a large number of job ads just in case. Even if they are not actually used.
My take on this type of study is that it's extremely noisy. There are tons of job ads that list 3-5 langs. These are basically recruiter dragnets and there are many of these postings out there. Of course JS would be listed in most.
I think this data would be more useful if we can filter by lang count in the job description. 1-2 langs I get, but more than 3 would be a red flag. It could be causing heavy bias.
It isn't the only solution out there. You can publish to the various app stores and abide by all their rules and regulations and upkeep requirements.
You can be confined to Linux desktop.
You can still get to the desktop via your own distribution. You can also side load Android and avoid the store.
Browser apps are, by far, the easiest.
Most professional programmers aren't passionate about the language they use - it's a tool or a management decision, nothing to get emotional about.
The more "esoteric" or "exotic" the programming language, the more passionate its user base. Mainstream is defined by mediocracy and the average developer simply doesn't care.
Unfamiliar + hard to learn = scary. Which leads to less overall popularity when it comes to actual jobs.
From my experience reading job postings, a lot of job postings for jobs where you may work with more "niche" technologies list more common ones beside what they are looking for and expect you to learn the technology during onboarding.
When I said backend above I meant company backend / API / services.
Using it with a separate backend/API is also sometimes necessary, difficult to use serverless functions if you want a WebSocket server or similiar.
Interesting that C# surpassed and started gaining some margin over PHP this year according to that analysis.
It's surprising that there is so much need for Ruby (even more than Golang) and Lua, and that there is five times less need for Dart than for Lua developers.
The top 5 are
JS/TS 500K
Py 300K
Java 262K
C# 135K
PHP 110K
Go 30K
Others 50K
I think the biggest difference is (1) Python more institutional backing (2) Python is taught in academic settings (3) Python has more robust scientific computing (4) Node stole Ruby's thunder in the web application space (5) Python works out of the box on Windows.
I don't know if it's better these days, but dependency management was one of the reasons I stuck with Ruby over Python back in the early 2010's. I never had issues with it in Ruby, but was constantly battling with dependency management in Python.
It's not
I dunno, to me it feels like that's why Python won. Python is more pragmatic, flexible, less wedded to ideals, and, I think, these things allowed it to pick up a lot of entry level developer attention especially in areas like data journalism, data science, ML, etc. which stole a lot of Ruby's "good for beginners" thunder. This is now paying dividends as all those new folks have cemented Python's now bread and butter projects like PyTorch as must-have skills. Ruby not ever really caring about Windows didn't help either.
c++ is probably the exception here
predict even the Go market will eventually resemble the js market...a massive pool of low-quality positions with mediocre comp
Searching the job market the past year everything is JavaScript or Python because of the low barrier of entry. With the demand to hire high numbers of people and lack of people, these roles are now at the top of the pay scale.
Maybe it’s AU specific but if I was to take some specialised role requiring deep knowledge and experience, not using JavaScript or Python, I’d be on at least 20% less than a role essentially knocking out a ReactJS frontend or NodeJS crud services.
It’s dilemma I had the last year. Recruiters phoning with somewhat highly specialised roles that interests me, talent pool is extremely small for the roles, only to be told that the pay is at minimum 20% less than what’s available for nondiscript JavaScript/Python roles. Unfortunately for me I need to enjoy work or suffer mentally, and while I have used JavaScript, Python, insert name of frontend/backend framework in either language, extensively, it feels like torture having used better and knowing I can do better.
Just yesterday someone made a comment about how someone could spend years laboring away on some super cool piece of tech and someone on HN will ignore it all just to point out how the kerning is wonky.
Your comment is exactly what they were referring to. No comment on the project, the data, the conclusion. No related tangent, personal anecdote, or anything else that would generate conversation. Instead, hyper focus on finding some minor flaw that has absolutely 0 impact on the substance or delivery of the project and be sure to call it out in a condescending way.
Should Javascript be written as JavaScript? Sure. Does it materially change anything at all about what is being presented? Absolutely not.
FWIW, my comment was made in good faith to help the author create a better impression with folks who are steeped in those two technologies. At the same time, I can see how it can feel pedantic.
Edit: No, I'm wrong, it's just an uncommon word!
These days we’ve come so far and you can reliably write JS that works everywhere, so no need to cater for niche browsers and target a specific browser.
I dabbled in PHP but stopped using it since it’s hard to write secure code with PHP (although you can audit it).
Settled with Perl and Python for small hacks that automate mundane tasks, but am far from creating anything elaborate with them. My Python scripts are rather small. One thing well and all that.
[Citation needed]