Most Popular Programming Language to Learn (2004-2020)

Osprey

Registered User
Feb 18, 2005
27,289
9,756
I imagine that Java was at the top for so long because it's a good language to teach programming. When I was studying computer science in the mid 90s, Pascal was the go-to "beginner's language," but Java was gaining popularity and I think that it replaced it soon after. With Python taking over the top spot in the last year, according to that video, I wonder if it's replaced Java in beginner programming courses. Perhaps a current CS student can tell us.
 
Last edited:

SuperScript29

Registered User
Nov 17, 2017
2,135
1,753
Most popular does not mean most employable. It all depends on the field someone wants to get into. There are certain fields like acadamia or data/machine learning where Python does indeed shine. But if you're looking to get into other areas such as mobile, web, desktop, games, robotics, or operating systems, then there are other languages that are more marketable imo.
 

JetsFan815

Registered User
Jan 16, 2012
19,246
24,437
I imagine that Java was at the top for so long because it's a good language to teach programming. When I was studying computer science in the mid 90s, Pascal was the go-to "beginner's language," but Java was gaining popularity and I think that it replaced it soon after. With Python taking over the top spot in the last year, according to that video, I wonder if it's replaced Java in beginner programming courses. Perhaps a current CS student can tell us.

Java has been so popular because when it was created in the 90s it legitimately provided big gains in developer productivity over C++, the sort of programming lingua-franca at that time. It has continued to stay popular because it and the JVM has become a performance beast and stacks up with often beats C/C++ in many benchmarks when it comes to pure speed.

These days if you are looking for a good balance between performance and developer productivity Java and C# are sort of the top options although GoLang might be up there as well. So it continues to be up there on these language popularity rankings. I don't think universities using it to teach CS beginners has much if any impact on its prevalence in the industry.

I don't think it matters what language is used to teach beginners and I graduated ~6 years ago but many Universities are switching to Python these days.
 
  • Like
Reactions: x Tame Impala

member 157595

Guest
It really depends what kind of development you want to do.

Most popular does not mean most employable. It all depends on the field someone wants to get into. There are certain fields like acadamia or data/machine learning where Python does indeed shine. But if you're looking to get into other areas such as mobile, web, desktop, games, robotics, or operating systems, then there are other languages that are more marketable imo.

I worked in the robotics field and Python definitely has a place in that field due to its ROS API. Obviously, if you're getting into kernel/RTOS stuff you're using C though, and possibly C++ for the next layer above.
 

x Tame Impala

HFBoards Sponsor
Sponsor
Aug 24, 2011
27,536
11,966
It really depends what kind of development you want to do.



I worked in the robotics field and Python definitely has a place in that field due to its ROS API. Obviously, if you're getting into kernel/RTOS stuff you're using C though, and possibly C++ for the next layer above.

My buddy just sent me a Boston Dynamics video this morning so i looked up what language they primarily use. The replies i saw were suggesting they use Python primarily too.
 

member 157595

Guest
My buddy just sent me a Boston Dynamics video this morning so i looked up what language they primarily use. The replies i saw were suggesting they use Python primarily too.

When I was in the robotics field I used Python and C++ 95% of the time. Did some C for kernel/realtime OS work and JS for front-end development (which I don't really like.)

I loved that job. It was awesome.
 
  • Like
Reactions: x Tame Impala
Sep 19, 2008
373,981
24,893
tbh I would rank it Java in most demand rn followed by the MS languages (Visual C++, ASP.net, shit like that) and Python 3rd

As someone who was looking through job applications those are def the most in demand atm
 

SuperScript29

Registered User
Nov 17, 2017
2,135
1,753
My buddy just sent me a Boston Dynamics video this morning so i looked up what language they primarily use. The replies i saw were suggesting they use Python primarily too.

I don't have much experience with robotics or embedded systems to comment much, but from what you're saying it almost feels like Python is being used on top of C code bases. Much like how scripting languages are used in game engines for example, as in the engine core tends to be in C/C++ for most part where as the scripting part is usually easier languages like Lua, Python, C#, etc.

tbh I would rank it Java in most demand rn followed by the MS languages (Visual C++, ASP.net, shit like that) and Python 3rd

As someone who was looking through job applications those are def the most in demand atm

That may be but when it comes to job hunting, it's more than that tbh. Knowing a programming language is one thing and knowing the environment it's being used in is a whole different story. Usually it's the latter that matters when it comes to getting a job.
 
Last edited:

member 157595

Guest
I don't have much experience with robotics or embedded systems to comment much, but from what you're saying it almost feels like Python is being used on top of C code bases. Much like how scripting languages are used in game engines for example, as in the engine core tends to be in C/C++ for most part where as the scripting part are usually easier languages like Lua, Python, C#, etc.

Python is written in C and can be itself directly extended by taking advantage of Python's C API, though that's not particularly for beginners. Shared libraries written in C can be rapidly and easily called in Python using ctypes and other packages. Many a 3rd-party package in Python's standard library is also written in C for optimization purposes. In short, Python plays very well with C. C++ less so, but it's not hard to get around the name mangling if you know what you're doing.

Game engine cores are generally C/C++ and have been for decades. The first game engines were written in assembly, because compilers weren't efficient enough to take advantage of the available computing resources at the time (this was especially important for console gaming; basically everything prior to the mid-late 90's was hand-coded.) I've done a bunch of work with the Unreal Engine and that's mostly C++.
 

SuperScript29

Registered User
Nov 17, 2017
2,135
1,753
Python is written in C and can be itself directly extended by taking advantage of Python's C API, though that's not particularly for beginners. Shared libraries written in C can be rapidly and easily called in Python using ctypes and other packages. Many a 3rd-party package in Python's standard library is also written in C for optimization purposes. In short, Python plays very well with C. C++ less so, but it's not hard to get around the name mangling if you know what you're doing.

Being written in C has little to nothing to do with it's usage as many other programming languages were also written in C. Technically speaking any language can use api libraries written in other languages and that's the case most of the time in programming. I think the reason is mostly because Python has gotten popular among the current generation and whenever a language get's popular like this you start to see libraries and tools popping up for it, which in return makes it a more attractive option to use.

Game engine cores are generally C/C++ and have been for decades. The first game engines were written in assembly, because compilers weren't efficient enough to take advantage of the available computing resources at the time (this was especially important for console gaming; basically everything prior to the mid-late 90's was hand-coded.) I've done a bunch of work with the Unreal Engine and that's mostly C++.

If you're referring to the old NES/Atari days then yes, there wasn't enough resources to cater compilers so Assembly programming was done on those machines instead and each machine had its own set of Assembly instructions. The usage of C/C++ in gaming didn't really take off until the 90's as you said. Most of the main free game engines you see today like Unreal, Unity, Godot, etc are written in C++ but use various scripting languages.
 

member 157595

Guest
Being written in C has little to nothing to do with it's usage as many other programming languages were also written in C. Technically speaking any language can use api libraries written in other languages and that's the case most of the time in programming. I think the reason is mostly because Python has gotten popular among the current generation and whenever a language get's popular like this you start to see libraries and tools popping up for it, which in return makes it a more attractive option to use.

I understand that, I was simply providing a reference point for those unfamiliar with the concept (not directing it at you, in other words.)

Python's pretty versatile and is a strong choice for data analysts. I have some problems with it but I certainly like it more than js, which I hate.

If you're referring to the old NES/Atari days then yes, there wasn't enough resources to cater compilers so Assembly programming was done on those machines instead and each machine had its own set of Assembly instructions. The usage of C/C++ in gaming didn't really take off until the 90's as you said. Most of the main free game engines you see today like Unreal, Unity, Godot, etc are written in C++ but use various scripting languages.

Yep. No need to worry about assembly's lack of portability when it came to console development since all models of a given console had the same CPU.

There are a lot of scripting options today, we can all agree with that. My preferred option depends on what I'm doing.
 

x Tame Impala

HFBoards Sponsor
Sponsor
Aug 24, 2011
27,536
11,966
I wonder if there’s enough interest in the HF boards community to talk about coding/software development/engineering.

I got a Rapberry Pi for Xmas. Installing everything now :yo:
 
  • Like
Reactions: Beau Knows

JetsFan815

Registered User
Jan 16, 2012
19,246
24,437
I wonder if there’s enough interest in the HF boards community to talk about coding/software development/engineering.

I got a Rapberry Pi for Xmas. Installing everything now :yo:

Nice, which model did you get? What are you planning on doing with it?

A few years ago when I was in university I had one that I used as a torrent server, it would automatically download new episodes of tv shows I was following as they became available and I could play them on my laptop over the home network when I got home. I don't do torrenting anymore though.
 

Kane One

Moderator
Feb 6, 2010
43,344
11,013
Brooklyn, New NY
I’ve been using C# at work for the past four years and really enjoy it. I’ve used Java before and C++ in school, plus Python just to learn it for my marketability for my first job.

I also use JavaScript (TS) for work and it’s fairly easily my most hated language. Their concept of “this” makes me want to kill myself every time I’m debugging.
 

JetsFan815

Registered User
Jan 16, 2012
19,246
24,437
I also use JavaScript (TS) for work and it’s fairly easily my most hated language. Their concept of “this” makes me want to kill myself every time I’m debugging.

Javascript is an absolute nightmare, I mainly do backend development 80% of the time but everytime I have to touch frontend code it's an adventure mainly due to JS. It's crazy how much you need to depend on lo-dash to do stuff that is part of the standard library in other languages. Something as simple as trying to use custom objects as keys in a dictionary data structure is not supported at the language level, instead of being able to provide an identity method like every other language, JS makes you serialize the object into json and use that as the key lol... so wasteful and feels so hacky. It's not just the language it's the entire ecosystem that feels off.

At my last job there were a bunch of people who were trying to introduce JS on the backend on one of our projects, there is a special place in hell reserved for those people.

I am actually jealous you get to use TypeScript, atleast TS makes the development environment saner with compile time checking and other quality of life improvements like better integration with editors. I had been pitching our team to incorporate more TS in our front end but sketchy TS support by the framework we use made it difficult.
 

Kane One

Moderator
Feb 6, 2010
43,344
11,013
Brooklyn, New NY
Javascript is an absolute nightmare, I mainly do backend development 80% of the time but everytime I have to touch frontend code it's an adventure mainly due to JS. It's crazy how much you need to depend on lo-dash to do stuff that is part of the standard library in other languages. Something as simple as trying to use custom objects as keys in a dictionary data structure is not supported at the language level, instead of being able to provide an identity method like every other language, JS makes you serialize the object into json and use that as the key lol... so wasteful and feels so hacky. It's not just the language it's the entire ecosystem that feels off.

At my last job there were a bunch of people who were trying to introduce JS on the backend on one of our projects, there is a special place in hell reserved for those people.

I am actually jealous you get to use TypeScript, atleast TS makes the development environment saner with compile time checking and other quality of life improvements like better integration with editors. I had been pitching our team to incorporate more TS in our front end but sketchy TS support by the framework we use made it difficult.
TypeScript doesn’t make much of a difference when plenty of people in my team still use “any” rather than using the correct type.

I feel like people who use JS in the backend are just frontend developers who don’t want to learn another language when their role has changed.

We use TS because when we were migrating an AngularJS app to something newer, we were thinking about React vs Angular and decided with Angular because it’s more enterprisey.
 

JetsFan815

Registered User
Jan 16, 2012
19,246
24,437
TypeScript doesn’t make much of a difference when plenty of people in my team still use “any” rather than using the correct type.

I feel like people who use JS in the backend are just frontend developers who don’t want to learn another language when their role has changed.

We use TS because when we were migrating an AngularJS app to something newer, we were thinking about React vs Angular and decided with Angular because it’s more enterprisey.

Big ooof at using "any". That just defeats a large chunk of benefits of a statically typed language. That's like buying a Ferrari but replacing but then removing the engine and instead having it being pulled by a horses like a buggy.
 
  • Like
Reactions: OmniCube

SuperScript29

Registered User
Nov 17, 2017
2,135
1,753
TypeScript doesn’t make much of a difference when plenty of people in my team still use “any” rather than using the correct type.

I feel like people who use JS in the backend are just frontend developers who don’t want to learn another language when their role has changed.

I'm not a fan of JavaScript on the server side but to be fair, it's not the only dynamic server side language out there, plenty of other popular dynamic server side languages such as Python, Ruby, PHP, etc. If JavaScript is gonna get a bad rap for this then so should the other languages. Granted if we're talking about front end frameworks like React and Angular, then this is all moot anyways.

Javascript is okay. It's not really a programming language though but a script.

Scripting is programming, if you disagree then please explain.
 

Kane One

Moderator
Feb 6, 2010
43,344
11,013
Brooklyn, New NY
Im just getting into programming myself so I’m a little confused by this too. Can you explain it a little more?
Scripts are usually just small programs that do a few tasks. But a scripting language is a subset of a programming language.

For example, I’d probably call bash a pure scripting language and definitely Powershell as no one makes full blown applications out of it, just a small one off task. Both are programming languages though.

I think it was probably fair to call JavaScript a scripting language if all everyone was doing was AJAX calls on the browser, however now there are full blown applications made with it.

Maybe someone better with the correct terminology could correct me if I’m wrong.
 

SuperScript29

Registered User
Nov 17, 2017
2,135
1,753
Scripts are usually just small programs that do a few tasks. But a scripting language is a subset of a programming language.

For example, I’d probably call bash a pure scripting language and definitely Powershell as no one makes full blown applications out of it, just a small one off task. Both are programming languages though.

I think it was probably fair to call JavaScript a scripting language if all everyone was doing was AJAX calls on the browser, however now there are full blown applications made with it.

Maybe someone better with the correct terminology could correct me if I’m wrong.

In the case of JavaScript the code gets interpreted by the browser's JS engine, and the browser is a program written in a compiled language. So scripting languages are basically any languages that are interpreted and meant to run on top of compiled code. But the idea that scripting is not programming is not true, it's as much as a programming language as C/C++.
 

Ad

Upcoming events

Ad

Ad