Best Programming Languages Tier List

  Рет қаралды 4,459

Serif Sundown

Serif Sundown

Күн бұрын

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

Пікірлер: 32
@SerifSundown
@SerifSundown 22 сағат бұрын
"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?"
@eHcOZaX
@eHcOZaX Күн бұрын
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.
@a4e69636b
@a4e69636b 6 күн бұрын
It made me laugh when you censored the Objective-c code. Great video.
@revengerwizard
@revengerwizard 10 күн бұрын
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.
@CallousCoder
@CallousCoder Ай бұрын
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.
@GavrielAbrahams-mh5bs
@GavrielAbrahams-mh5bs 11 күн бұрын
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.
@SerifSundown
@SerifSundown 14 күн бұрын
Methodology: For the purpose of ranking, each language was assigned a score that was the average of a "syntax score" and a "utility score". While the utility score is more important, the syntax score is more objective. That's why I used their simple average. The syntax score was based on the test program (1:45) written for each language. The raw syntax score is the sum of three negative metrics: the program character count excluding white space, the number of functions and types I had to define that weren't provided by the language (but are available in other languages), and the median similarity ratio of all pairs of program lines, as reported by Python's SequenceMatcher. Therefore, the syntax score captures language power (productivity), verbosity (writeability), and ambiguity (readability). You can see the language rank based solely on this syntax score at 3:48. The utility score is a weighted sum of scores in the eight programming categories mentioned in the video (automation, front-end, back-end, desktop, ...). The category weights were based on the proportion of respondents claiming to work in that programming category in the 2022 stack overflow developer survey. For each category, a language's score is based on its relative rank versus other languages in suitability for that kind of programming. These relative ranks are my subjective opinion, based on a combination of what is popularly believed about the languages by developers, characteristics of the language such as typing system and whether it is interpreted or compiled, and what functionality is provided by the first-party libraries. Notably, even slightly changing the ranking in a single programming category tends to cause 4-5 languages to move up or down a rank in the final result! This is why I warned against taking the rank too seriously. You may as well interpret the rank with a +/- 1 margin of error, so that C# is quite possibly an A-tier language, and Java is quite possibly a B-tier language.
@Brian-ro7st
@Brian-ro7st 2 күн бұрын
Rating scheme as C on “expressivity and readability” invalidates this nature list for me.
@DhampirKid
@DhampirKid Күн бұрын
in brazil lua is used with NCL4 for TV applications
@oilybrakes
@oilybrakes 4 күн бұрын
I've seen you put JS and C into the same category, so I know you are a pro 😂
@Brian-ro7st
@Brian-ro7st 2 күн бұрын
No Clojure is a crime
@pmcgee003
@pmcgee003 5 күн бұрын
This man just described ... C ... as more exclusive and readable than Pascal. 😢 C. The language written by seagulls walking in ink and then across some paper ... 😅
@rallisf1
@rallisf1 Күн бұрын
(meme) We are not the same: You say "MatLab is expressive" I hear "Matlab is expensive".
@rallisf1
@rallisf1 Күн бұрын
Dart is awful for web development. It is ok for backend staff, although Go is more suitable, but front-end in Dart with Flutter really sucks. It doesn't produce HTML, everything is in a . Zero SEO, and you can't really use any external javascript.
@timog7358
@timog7358 5 күн бұрын
great video
@SerifSundown
@SerifSundown 3 ай бұрын
I gather that this video's "gravest injustice" is my C# ranking, so I'll elaborate. When you consider *all* categories of programming, non-Microsoft operating systems are very common, so Java being even slightly more cross-platform matters a great deal. For example, if you just wanted to make a GUI application that works on both Windows and Linux, with .NET you need a third-party framework like GTK#, whereas Java developers would use the built-in Swing libraries. For *general* programming, it's very difficult for C#'s superior syntax to overcome Java's systemic advantage, particularly when you remember that the JVM also supports Kotlin, Groovy, and Scala, *all of which* have better syntax than C#. The only place C# is clearly superior to Java is in video game development, because desktop gaming has been Microsoft-dominated for decades and so cross-platform support is irrelevant for that category. But my ranking considers *all* programming categories, not just the one that C# is the best at. And yes, I rate Visual Basic higher than C#. Because it's the *same* language -- same platform, same features, same classes and methods, same implementation -- with more readable syntax. Visual Basic may be a meme, but there's never been an objective basis for saying it was a bad language. After all, much of it was stolen from the incredibly popular Pascal language. The reason developers don't like it is because it was always a language primarily marketed to, and used by, business users with no programming experience. So, professional developers would get recruited to overhaul VB projects written by amateurs, the code would be garbage and super hard to work with, and developers came to believe it was the fault of the *language* instead of the people using the language.
@hid6347
@hid6347 22 күн бұрын
actually, we got MAUI which is cross platform and is by microsoft, i think on macos, windows, android, linux and ios. tho thats shitty, so ppl just use avalonia now
@RonnieBanerjee007
@RonnieBanerjee007 14 күн бұрын
First of all great list, I agree with most of your ranking and would have ranked them as such myself, but the C# ranking was definitely unjustified, its a pretty beautiful language. Anyway, I think This clarification of yours defies your Kotlin and Dart ranking justifications then. C# can be made much less verbose than Java and more akin to Kotlin and Dart, there's much less boilerplate that you have to write in C# since a while now, you can actually just create a c# console project and write Console.WriteLine("hello!"); and it'll print, no entrypoint needs to be defined, no classes needs to be named, no using statements on top. it's got things like the using() statement, which makes GC more efficient. On top of that it's on more platforms than either of Kotlin or Dart. Not to mention C++ and C are the ultimate multiplatform languages there and they sit beneath AWK.
@SerifSundown
@SerifSundown 14 күн бұрын
@@hid6347 For the record, MAUI does not support Linux (which is why I mentioned it). And given the track record of first-party vs third-party GUI frameworks for Windows, I'm not surprised people would avoid using MAUI anyway.
@SerifSundown
@SerifSundown 14 күн бұрын
@@RonnieBanerjee007 Thanks for the info. I added a comment on the methodology behind my ranking. I actually used a fairly complicated scoring system that makes it hard to explain why each language appears exactly where it does. The above C# explanation was my attempt to describe the score components that put C# as low as it ended up, but those considerations don't necessarily explain the position of other languages. I know it's confusing. Don't take it too seriously 🙃.
@hid6347
@hid6347 13 күн бұрын
@@SerifSundown oh yea i forgot about that mb, but anyways ppl just dont use maui
@iamjimgroth
@iamjimgroth Жыл бұрын
C# is the best programming language. Source: me.
@GavrielAbrahams-mh5bs
@GavrielAbrahams-mh5bs 11 күн бұрын
Any language is awesome if you're good at it. The problem with c# is not specialized in many aspects like front end JavaScript, back end PHP, readability Python. Readable compiled Kotlin which is as fast as Java and has access to all Java libraries and is backed by android development is better any day of the week.
@iamjimgroth
@iamjimgroth 11 күн бұрын
@@GavrielAbrahams-mh5bs You are wrong. Source: still just me. 😁
@kodidrive3033
@kodidrive3033 8 күн бұрын
@@GavrielAbrahams-mh5bs You are quite right. I would add that Python dominates the Data Science and C++ high performance applications ( games, algotrading, etc.) just as PHP is King of the backend and Kotlin Android Development.
@user-fq2ty
@user-fq2ty 11 ай бұрын
But Ruby has no jobs :/
@Coolkid245
@Coolkid245 24 күн бұрын
haskell is by far the best
@drxyd
@drxyd 2 күн бұрын
All of these languages suck, either the type systems aren't expressive enough or they don't give you enough low level control. All I want for Christmas is assembly with fully dependent types.
The Worst Programming Language Ever - Mark Rendle - NDC Oslo 2021
1:00:41
NDC Conferences
Рет қаралды 1,3 МЛН
God-Tier Developer Roadmap
16:42
Fireship
Рет қаралды 6 МЛН
1 класс vs 11 класс (рисунок)
00:37
БЕРТ
Рет қаралды 4,5 МЛН
Эта Мама Испортила Гендер-Пати 😂
00:40
Глеб Рандалайнен
Рет қаралды 2,6 МЛН
"Hello, World" in 5 CURSED languages that no one should use
13:08
Dreams of Code
Рет қаралды 526 М.
The Ultimate Tier Programming Tier List | Prime Reacts
26:57
ThePrimeTime
Рет қаралды 275 М.
Span of T vs. Memory of T
9:44
Jeff Zuerlein
Рет қаралды 4,5 М.
Has Generative AI Already Peaked? - Computerphile
12:48
Computerphile
Рет қаралды 14 М.
Why Is Lua So Popular?
8:03
Awesome
Рет қаралды 79 М.
the TRUTH about C++ (is it worth your time?)
3:17
Low Level Learning
Рет қаралды 563 М.
Why i think C++ is better than rust
32:48
ThePrimeTime
Рет қаралды 257 М.
Are we going back to PHP with fullstack JavaScript?
9:57
Maximilian Schwarzmüller
Рет қаралды 36 М.
What's new in Python 3.13?
5:08
Carberra
Рет қаралды 27 М.
1 класс vs 11 класс (рисунок)
00:37
БЕРТ
Рет қаралды 4,5 МЛН