There are so many programming languages to choose from. The top 10 languages in the April 2023 Tiobe Index are as follows:
Incidentally, I find the inclusion of SQL odd, since it's a relational database language, not a programming language. But the rest of the list matches what I would guess in terms of programming language popularity.
Ranking 19 on the list, there's a language called Rust that I had never heard of, so I checked it out. I'm very impressed, and I've barely scratched the surface. It's fast because it's compiled and linked so it doesn't need a runtime and it doesn't have a garbage collector. The compiler's error handling is smart enough that you will probably never miss the need for garbage collection.
The language should be easy enough to pick up, but too complex to give you an overview here. Check out the excellent documentation for details.
Here are a couple of things that really stand out for me. First, you install Rust and keep it up to date with "rustup". Rust has its own package manager, Cargo, which behaves something like PIP.
But Cargo does more than just install libraries. Cargo is a build tool. You use it to create new projects, manage the projects, compile, build and run. As a default behavior, as you add libraries, it figures out what dependencies you need and stores the versions of your library dependencies in a lock file. This is roughly like using a Python virtual environment. Every time you build the app, it will use the original versions of libraries specified in that lock file. This prevents Cargo from installing updated libraries that may introduce defects or new behavior. You're not stuck with that behavior. You can tell Cargo to ignore the lock file and update the dependencies. It's all a bit more nuanced than that, so I recommend you study the docs.
As for the language itself, you should be able to pick it up quickly if you're already familiar with similar languages like C, C++, Java, or PHP. Beginners need only watch out for the fact that Rust treats variables as immutable by default. For example:
let x = 5; // x is immutable and will always have the value 5 let mut x = 5; // x is mutable and you can change the value
If you're like me, you may have cringed at the thought of typing "let" to set a variable, but trust me, the language is cleaner and more concise than that, overall.
Rust already has a lot of useful libraries. For example, there's a reqwest library that gives you basically the same HTTP REST features as Python requests.
Anyway, I recommend that you take a look at the docs, download and install Rust and see for yourself.
Rust Standard Library: https://doc.rust-lang.org/std/index.html
Popular Rust Libraries: https://lib.rs/std
Your topic reminded me of something @Alex Stevenson posted last month (for anyone interested in learning more about Rust):
Some great info in there if Nicholas's topic got you wanting to learn more!
Yeah, I've found a few different sites that measure this differently. For example, Statistica has their top 5 as:
And we did a somewhat similar poll on LinkedIn a week ago (had a much smaller list):
And Python, by far, was the top one. Of course, a small data sampling and a very specific audience.
The fact that SQL keeps showing up amuses me. Yes, SQL stands for Structured Query Language, but it's not a programming language. It reminds me of the days when I freelanced as an analyst for a data research company, and they sent out surveys with a question like this:
Which operating system do you target for your applications?
Even crazier is that a number of people who took the survey answered "Apache". Yeah, there are web applications, but still, Apache is not an OS.