Best Programming Languages Tier List

preview_player
Показать описание
Overview, code, and trivia for 38 programming languages.

A complete ranking of the majority of programming languages in current use plus some historical languages. I define what makes a language "good", show side-by-side code comparisons, and make recommendations on what and how many languages to learn.

00:00 Popularity Doesn't Matter
02:35 The Rank & The Criteria
05:10 Why 3rd Party Libraries Don't Count
06:07 Java, Kotlin, Groovy, Scala
08:25 Dart, JavaScript, TypeScript
10:31 Python, Julia, Ruby
11:42 Smalltalk
14:00 PHP, Perl, BASH, AWK
17:28 C#, Visual Basic .NET, F#, Haskell, Elixir
18:52 Go, C, C++, Rust, D
21:12 Matlab, R
22:21 Swift, Objective-C, Fortran
23:46 Scheme, Lisp, Tcl, Lua
26:58 Algol, Pascal, Ada
29:20 COBOL
30:36 Favorites

#programming
Рекомендации по теме
Комментарии
Автор

"What would you want to use if you had to rebuild every web, desktop, mobile, and server app from scratch with no help from third-party libraries, using only one language for everything, and assuming you don't really care about performance?" That's the question the rank tries to answer, because that's the only way a rank even makes sense. If you care performance, then the rank is asm > C > everything else and it depends on your exact use case. If you include third-party libraries or community support, then you're ranking those things more than the languages -- and those things are based on popularity, which is self-reinforcing (zipfian) and therefore meaningless. If you rate every language only for how good it is at solving the kind of problem you would actually use it for, then every language is S-tier. If you could only use one language for literally every kind of project then you're stuck with assembly. So instead we ask "What if we had our necessary infrastructure in asm/C, but for everything else all we had was one given language? How happy are we?"

SerifSundown
Автор

never make a tier list again 🔥🔥🔥🔥🔥🔥🔥🔥🔥

vitekw
Автор

Mate thanks for taking the time. I really appreciate it. Your analysis is the best that I have seen so far. Never seen a language tier list that was based on facts. Until now.

GavrielAbrahams-mhbs
Автор

Best languages are C, Zig, Go and C++ and of course assembly. Forth and Perl are really nice too. I love small languages (C++ is the odd one out in my list). The rest are small and pretty fast.

CallousCoder
Автор

Love your list!

However, I just can't agree with you about C# - I find it's syntax to be god-tier. Especially in newer versions of C#.

Yes, I can admit that I am very biased towards C# as it was the first language I "properly" learned as part of a dream of creating games, and is currently the language I work most with.
Now, I write API's, websites with Blazor, apps for android, windows and Linux etc.
The performance is amazing, the speed of which I can go from a new project to a fully functional one is great. While C# have for a long period of it's life been tied to the Windows environment, it's not really true anymore. It's super flexible, regardless of what platform you develop to.
My biggest hurdle with C# was, especially when writing apps with framework like WPF and Avalonia, was the need to also learn XAML, which to be fair, after gotten over that horribly steep learning curve of XAML, I prefer it over HTML/CSS.

Keldarise
Автор

Why is Lua? Lua is basically Embedded Python for when you want to learn a language that was designed to be Embedded Python in its inception, rather than adapted for that purpose. Which is why it's commonly used in Minecraft and Roblox mods: you don't have to ship a massive runtime and potentially lots of standard libraries with your mod, but you get a good enough general purpose scripting language that also has 1-based indexing. I hate 1-based indexing now, but I will admit that it would've made "absolute programming noob" me _very_ happy. Also, Brazil mentioned. Brazil has a very large population. When India and China invent a good enough language that can sit in a niche like game modding (or even the entire game, see Hades I and II), those languages will also become permanent fixtures of the language landscape.

mage
Автор

Learn Java - find a job in 1 year
Learn Python - find a job in 4 years
Learn Ruby, Julia, Rust - find a job in 9 years (?)

awesomebearaudiobooks
Автор

Very nice and cool video about programming languages, especially the historical tips put in!
Side note: good luck embedding Python into anything, it's 10 times larger and difficult to embed than Lua.

revengerwizard
Автор

I don’t really care about C++’s multiple dialects, and I think that’s just an excuse to make it seem more bad than it actually is.

What matters is that C++ is fast (unlike Python), has relatively simple syntax (if you ignore pointers lmao), and has many features. Paradise as a Programming Language 🔥

epicboi
Автор

This is such a great video. I'm not sure yet whether I agree with everything you've said, but I know there's a lot of value here, and this ranking has just about everything I could ask for - it's a whirlwind tour of programming that I really enjoyed. Thank you!

thomaswesleyscott
Автор

This is the video type I've been craving. Actual work being done to objectively rank languages, multiple tier lists, examples of code AND you built the same application in every language, giving an understanding of the quirks and how easy or verbose each language is. Extra bonus for thinking through what a beginner would feel, and giving sane language reccomendations. Gold star

fireninja
Автор

Let me shed some light on why Lua exists. It was correctly mentioned that it has some game related stuff, but it is also used in automotive for simulating environments where a vehicle software and hardware are tested. There are some very powerful and comprehensive Lua frameworks out there that are used to make sure that your car won't suddenly refuse to cooperate.

linuxgaminginfullhdfps
Автор

You are an undefeated champion in making as many developers nervous per second as possible! Well done!

DataPastor
Автор

Thank you for showing the Zpif's law! A lot of people do not understand the popularity bias in many fields.

blaisepascal
Автор

Some of your comments are a bit shallow.
For example, even though swift's syntax is similar to kotlin's, there's some fundamental differences.

Swift supports value semantics with structs, and reference semantics with classes, while koltin (because of the jvm) only deals with references.

Const correctness of standard library data structures in swift is better than in kotlin. That's why in kotlin you have List and MutableList, while in swift you only have a List, and its mutability is defined by the declaration operator (var/let). Hence, in koltin as you can cast const away with (as MutableList) but in swift it's not possible without copying the list.

Swift also supports manual memory management, c/c++ interoperability and many other interesting features that also makes it interesting.

It's true that there's Kotlin multiplatform, but swift is open source and there's active development on making it support multiple platforms.

----

On Lua,

Lua's advantage over python is that its interpreter is much smaller, it's like a number of magnitude smaller, (~100 kb lua, ~10 mb python) which makes imbedding it in other software very easy, (roblox, neovim).

That being said, I would never try to develop a web server with it, but I develop neovim plugins with it and I like the minimal syntax.

----

I don't understand how you put php and perl above rust and c++. Php is just a mess of a language with a lot of inconsistencies. It was good at one thing (rendering html) which I think became obsolete. Making a webserver in python with Flask/FastApi is much more convenient than php now.

----

I can't put ruby and python at the same level, they're very similar but with somewhat opposite philosophies, and I think python won, which makes ruby obsolete.

eHcOZaX
Автор

This was a quality video. So much information per minute. I hope the channel goes big soon.

ruturajzadbuke
Автор

when I see Java above C# I can't help but think that you didn't really dive deep into those languages

Special
Автор

'You don't need functional programming, it can be hard to optimise.'... WHAT, haha. I wasn't expecting much from a tier list video but wow. OOP easier to optimise over Functional?? Are you crazy or what haha

stevenstone
Автор

11:04 That is a uncommon way to define a multiple line function in julia, they usually use function name() end syntax

And we rarely use inner constructors like in 11:09, we define a file_record(line) function outside the struct. Unless if we want to keep an invariant

minecraft
Автор

19:57 this is a bad comparison, the c source code is unnecessarily padded out and not really equivalent to the c++ code with its use of dynamic arrays

twkrhgr