Video Transcript: The Official Programming Language Tier List 2021
Welcome to the official programming language tier list for 2021 I've always seen a bunch of these tier lists online. I thought it would be kind of fun to make one in area that I have some expertise in. Well, those of you who aren't familiar with Tier lists, it's just a simple rating system where s is the best, F is the worst, and then A, B, C and D are kind of in the middle. Keep in mind that the tier list is relative, so just because something is a D tier or F tier doesn't necessarily mean it's bad. It just means it's bad relative to something that's an S tier. Before we begin to make this a little less subjective, I'm going to state the criteria that I'm using ahead of time. There's a lot of factors that I'm going to consider when I'm writing these languages, but I wanted to tell you which are going to be zero impact, medium impact and high impact of the rating that I give it for zero impact. The first thing is capabilities. Now keep in mind this does not mean what is a language good or bad at this just means what can a language do? And the reason this has no impact is because every language on this list can technically do everything. The second thing is gonna have no impact is going to be who's the author and or the steward of the language. This means that whether it's Microsoft, Facebook, or just some third party or a group of people, it has absolutely no impact on the rating of the language. And the last thing that's gonna have no impact is my personal feelings about a language. I'm gonna stick only to objective truths and observations when I rate a language. The one thing that's gonna have a medium impact is raw performance. Actually, I'm gonna switch this to low because although performance is important, it's becoming increasingly common for us to trade away performance for ease of use. The reality is that some of the most popular languages on planet Earth are also relatively the slowest in terms of what's the highest impact. The first thing is going to be language features. Language features mostly refers to the things that the language implements that makes your life as a developer easy. This also refers to the language composition and syntax accessibility is going to be the second thing that's going to have high impact, and it's going to refer to how easy it is to get going with a language. And the last thing, and perhaps the most important, is going to be the use case variety, and it's going to refer to the likelihood that you can use that particular language to solve a problem. Now that we have the criteria, let's write some languages. So we're going to start off with Dart. And Dart is a D tier language, so Dart is kind of this language that nobody really asks for it and doesn't really address any new issues. It kind of feels like going in that Google created in house to solve an in house problem, and then they release it to the public, the only place where I ever see it really getting uses with flutter, which makes sense, because flutter is also a Google product. Next one's gonna be rust. And Rust is a solid A tier. I really wanted rust to be s tier, but it really lacks in accessibility. The language is very difficult to write. That said it pretty much has to be difficult to write, because that's how it gets its memory safety guarantees. Rust solves a unique problem in that it's both fast like C and
C ++, but without the dangers of manual memory allocation, and it does so without sacrificing performance by way of a garbage collector. The next language is going to be c, and this is 100% an S tier language. There's several reasons why C is an S tier language, and the first and foremost is that it underpins almost all of computing. Not only is most operating systems written in C, but most of these languages have interpreters or compilers that are, or were at one point, written in C. Besides that, it's a language that's almost 50 years old and has had a couple changes over the years, but has remained largely unchanged. Although it's common today to use newer compilers which support newer C standards, it's also possible to write an entire operating system using the standard from 1989. C is probably one of the only languages, if not the only, language, where the language designer, in this case, Dennis Ritchie may he Rest in peace, got the language correct the first time. Next is Objective C, and this is definitely an F tier language. Objective C was an apple solution to an apple problem. It's very poorly put together. It's very hard to write. Its syntax is very awkward. However, it was, of course, very popular, because it was the main language for Apple development up until 2014 which brings us to Swift this was the language that replaced Objective C, and this is a C tier language. Swift was the language that replaced Objective C for Apple development, and as a language, it's actually quite nice. The reason doesn't earn a rating higher than C tier is simply because it's not really used outside of Apple development. Like other languages on here, it has the capability to do more people just don't use it for anything else. Next language up is TypeScript, and this is a C tier language in 2021 TypeScript is really just JavaScript with types. A while back, TypeScript used to be JavaScript with types and a ton of extra features in syntax. If I was doing a tier list from about five years ago, I would probably put TypeScript at an A tier, possibly even an S tier. But as JavaScript continued to get more and more modern, the differences between the two really shrunk and it made TypeScript less useful. Now I guess we'll do JavaScript, which is 100% an S tier language. JavaScript really is ubiquitous in 2021 it's very modern. It's very easy to write. It's very easy to get started with. Additionally for better or worse, it's solidified its place in the web browser. It seems like anywhere you go or anywhere you turn, there's JavaScript there. Next one we'll do is C sharp, and I decide that this is a B tier language. C sharp is a really well put together language, and I see it as a good alternative Java, if you're on the Windows side, or even if you're not, as long as you're using Visual Studio, it's pretty easy to get started with too. Overall, it's a solid language, and I would choose it over other languages. They're similar in type any day of the week. Next up is Perl, and this is going to be a C tier language. This is a language which is pretty old, and it's changed a lot over the years, and in some places, it's used a ton, but in other areas, it's not used at all, you know, but nobody's choosing it for new development, and it's not really doing anything that you can't get elsewhere. Next up is Python, and this is
going to be an A tier language. Python was another language that I really wanted to be an S tier, but there's two reasons why I didn't put it there. The first is that having indentation control how a program runs makes the language clunky to use. And the second is that Python was originally created as a general purpose language, and I think that sometimes Python is being shoehorned into things that it wasn't ordinarily designed for. Although I understand why that's happening, it's because Python has risen to the top as one of the most popular languages on the planet, so it's tempting to try to use it for everything. Next up is PHP, and this is going to be a D tier language. For those of you who know me well, know that I was a PHP developer for about 12 years, so my heart really wants PHP to be like an A tier language. Although it's very easy to use and very easy to get started with, there's two major things that make it a D tier The first is that it really has no use case outside of web development. And the second is the languages is really bad. The problem is that early versions of PHP were really, really bad, but they've tried to make it so older versions of PHP are compatible with the newest version of PHP. So basically the 2021, version of PHP inherits all of the shortcomings of the 1998 version of PHP. Next up is a Lua, and this is going to be a D tier language as well, although it's nothing too terribly wrong with the language itself, it just doesn't have that many use cases. There's really not a whole lot to say about it. Next up is going to be Kotlin, and this is a C tier language. Kotlin was a really, really big improvement over Java, but it's not really used in a ton of places right now. It's mostly used with Android. I think if Kotlin can position itself as a true successor to Java in all use cases, then it could definitely be a B tier language, and then obviously Java is going to be a D tier language, right below Kotlin. Honestly, Java is just really not that interesting anymore, and that's because the real technology that's interesting with Java is going to be the Java Virtual Machine. The thing is, Java produces JVM compatible byte code, which can then be ran on the JVM. But there's also about 12 other languages and implementation implementations that also produce JVM compatible byte code. So why use Java when you can use one of the other 12 to produce the same performant program as Java code. Although Java is still very popular and it's going to be around for decades to come, because there's so much talent that knows how to write Java, but the language itself, it's still a D tier. Next is c ++, and this is going to be a B tier language. I wasn't really sure where to put c ++. Obviously, it's a super set of C, so it doesn't solve any new problems, but it is very, very comprehensive, and it adds a lot of additional features not found in C. However, you do still inherit all of the dangers of C. However, the use cases for C ++ are quite vast. You can find it in operating systems, high performance computing and also video game design. Next up is going to be go, and this is going to be a C tier language. So go is another project from Google that they designed internally for web servers and then released to the public. Go has a really great concurrency model, but not much
else. Its syntax is very awkward and not super intuitive, and it doesn't really aim to solve any problem that's not already solved elsewhere. So it's hard to rate it higher than a C tier and last but not least, Ruby, which is going to be a B tier language, Ruby is kind of an interesting language. It's really well put together, and it's popular with general purpose programming, but it really got its popularity through Ruby on Rails with web development. Ruby syntax is really concise, almost too concise. Sometimes that makes it kind of hard to read, but overall, a good language that excels at both general purpose programming and also web development, and then search for my list, hopefully I was able to keep it as objective as possible and keep in mind that this is just a relative tiering. So just because something is a D tier, it doesn't make it awful. It just means that it's not as good as something that's s tier. I'm sure it's gonna be tons of comments about my list here. So if you have those, please leave them below in the comments. I'm interested in if you think I got it right, if you think I got it wrong, or any other comments or feedback that you might have. Thanks for watching, and I'll see you in the next video.