Direct link to the table, for those who block off-site scripts:
https://flo.uri.sh/visualisation/19114866/embed?auto=1
Some of the labels don’t seem to show up unless you zoom out.
Everyone hates php and cobol, and use their scripts dozens of times each day.
I hate php but have to write in it ( help me). I still won’t touch cobol.
I fantasize about being one of those extremely well-paid Cobol consultants when I reach the later stages of my career. Hoping that I can earn a full year’s salary in 3-4 months and take the rest of the time off as a semi-retirement. It would be easier said than done, but it’s a dream that helps me get through the days when I get sick of the daily grind.
I think those jobs are a myth. You probably get like a 20% premium for using COBOL, so if you look up the salary of a Cobol consultant in America it’s going to seem like an enormous salary on an absolute scale.
But so is a C++ consultant in America or whatever. Probably not worth learning COBOL for.
Feel free to correct me if I’m wrong, but I have looked once or twice and the COBOL salaries seemed entirely normal.
You’re probably right. I think COBOL development is one of the cases where the crazier stories are the ones that bubble to the top. The regular scene is probably more mundane.
I do think there are a few advantages to learning COBOL over C++. COBOL seems to be much stickier - companies that use it seem much more hesitant to replace it than a lot of the companies that use C++, and as a result, they will probably get more desperate. And while there’s definitely a lot more C++ out there than COBOL, I have to imagine that the number of people under 50 that use COBOL is probably tiny, while C++ still has a very large userbase. On the other hand, consulting depends a lot on your portfolio, references, and past accomplishments, and nobody’s going to pay 1k EUR/USD/etc. per hour (exaggerating, obviously) if you don’t have any credentials. It takes time to build that up.
Ultimately, I do think you’re pretty spot on, but we’ll have to see. This is more just a fantasy I tell myself to make it seem like retirement is closer than it probably is…
That won’t happen. There were many Cobol consultants at my previous job, and they earned less than in house engineers on different stacks.
Cobol is in demand through legacy. Not sure if that qualifies as popular
Kinda annoying that “top” always means “most popular” for these things :-\ I guess I don’t really have a specific idea of what other meaning would be best but it still seems kinda ridiculous to rank programming languages by popularity. I guess it’s an engineer-brained thing to think of them as having different uses and purposes rather than being interchangeable business tools 🤮 but to me it’s kinda like looking at spoken languages by popularity but you still wanna go on vacation or go live somewhere with an unpopular native language. Like, oh look, Spanish is popular so I’ma learn that but also never go anywhere I’d expect people to speak it, so I’ll be in Finland or something (in my dreams, where I actually can visit places v.v ) all “Habla español? Perkele!” over and over until they throw me out 😅
Edit: Just thought to check, a cursory glance suggests “español” doesn’t get capitalized in Spanish, which I don’t actually know 😅 My Finnish is much better, as I know most of the common curses and a few of the words that go between them.
The ranking is perfectly fine, since some of these languages in practice are interchangeable.
You’ll find business software in Java, C#, Python (and VBA, but we’re not talking about that), and you’ll find more system oriented software in C, C++, Rust.
Now, you’re right insofar that it’s misleading to lump all languages together, C and JS rarely compete, but it’s a useful tool to gauge developer/employer pools. If you decide, which language to learn because you want to dip into a new niche, you might not want to learn Steve’s obscure cross-paradigm language (SOCL), but e.g. Rust or whatever is popular.
Same is true for businesses. Yes, your software may be written in really good C, but it’s probably a good idea to go the Java route for the next project, since it’s hard to find 20 new C devs for web apps.
I’m not saying that this specific ranking here is good, its metrics are dubious at best, but the idea isn’t inherently stupid.
I always wondered how is HTML a language… Also I see missing labels in legend.
It’s a markup language(ish) but it’s not a programming language. XML would be closer to programming, IMHO, since you could have simple things like recursion. That example is even pushing what I would consider “programming”, but anyone can feel free to disagree.
SQL is in the same category for me. It’s a query language and can get super complex, perform some basic logic, but you can’t exactly write “snake” in it. Sure, you could use cmdshell or something else to do something more complex, but that would no longer be SQL.
My simplistic expectation of an actual programming language would be that you can automate an entire platform at the OS level (or lower) instead of automating functions contained within a service or application. (JVMs and other languages that are “containerized” are weird outliers, by my definition.)
I am not trying to step on anyone’s toes here. I just never have really thought about what I personally consider a programming language to be.
What can I say, I agree with you. This mixing of markup, query and general programming languages is not exactly a good comparison
It’s a markup language(ish) but it’s not a programming language. XML would be closer to programming, IMHO, since you could have simple things like recursion.
One could also view it a different way:
XML merely provides abstract structure. It doesn’t direct that anything be done. By itself, it doesn’t program anything.
HTML, on the other hand, directs web layout engines to produce outputs. It programs them.
SQL is in the same category for me.
SQL directs databases to manipulate data and relations, and to produce results. It programs them.
Imperative and functional programming are often what come to mind first, at least for many of us, but declarative programming is nevertheless programming.
Pushing HTML even further, one could say it’s a declarative programming language that programs a UI in a mostly-stateless manner (inputs aren’t really stateless but you can argue the state is provided by the UI rather than managed by HTML).
I’m not sure I’d make this leap myself though, I have a hard time classifying it (or any other markup language) as a PL. As far as I am aware, you can’t really program a state machine with pure HTML, though you can accept inputs and return outputs at least.
If starting out: on web, Python and Typescript will take you far. On mobile, Swift and Kotlin. On Windows/Mac, C# and Swift. You’re on your own for Linux desktop.
On the web I would stick entirely with Typescript. There are plenty of server side Typescript systems; you don’t need to resort to Python.
Most recently I’ve been using Deno’s Fresh framework which is fantastic. Very easy to use and suitable for beginners IMO since you can start with traditional request per page & static templated responses - no complex state management.
C#/.NET supports Linux quite well and there is Avalonia for UI. Also there is a cross platform trend amongst modern languages such as Kotlin/Jetpack - not that I’m too keen on this approach.