Hello everyone! I'm Mika!
And I'm Nika!
Welcome to /dev/null Tech Corner!
Today, we're going to make a Programming Language Tier List.
I'm so excited to talk about my favorite programming languages! What's the first language we get to rank, Mika?
Let's start with one of the most popular languages today: the Java Programming Language.
Java brought a lot of features to mainstream programming that made it easier to keep your programs in working order. Things like strong static typing, a streamlined class-inheritance system and automatic memory garbage collection allowed programmers to create ever more complex systems that were still easy to maintain.
That's right, Mika. More than that, it was one of the first mainstream programming languages to have a comprehensive standard library that had implementations of basic data structures like lists, maps and sets! Those were really cool and meant that we didn't have to write our own implementations every time we moved to a different project!
Automatic garbage collection also allowed us to be lazier than ever before! Who needs to keep track of memory usage? Too bad it doesn't work on file handles...
...With all that, I think Java deserves an A tier.
I agree, Java is definitely A tier.
Except for Java generics, which is C tier.
Next up, we have another very popular language, one that is used on all browsers today: Javascript.
Javascript, officially known as Ecmascript (though nobody ever calls it that) allowed programmers do all kinds of cool things in browsers. What started as a way to change how buttons look when you mouse over them is now used to create full-blown applications like Google Maps!
It has managed to make some obscure but useful features such as first-class functions and closures palatable to mainstream programmers. And with runtime environments like Node.js, it has even become useful outside the browser!
That's all true, but you're forgetting about one thing...
Javascript is dynamically typed, which makes it unmaintainable garbage.
C tier.
C tier it is then.
The next one is a bit different. Instead of a single language, we're going to rank functional programming languages as a whole.
Functional programming languages have pioneered a lot of features that are turning out to be very useful today. From first-class functions and type inference, to very convenient programming idioms like Promises for asynchronous requests, functional programming languages have made great contributions to the programming languages of today.
Because of all these, I think functional programming languages should be at least B tier.
You're right again, Mika. Functional languages have brought a lot of good things to programming in general.
But... if you use a functional programming programming language, you'd have to deal with those people.
Oh, right, I forgot about them. So... D tier then?
Yes, I think D tier is about right.
The next one we're going to rank is an oldie but goodie: the C programming language.
I'm so excited! Go on Mika, tell them about C!
C was designed in the 1970's to replace assembly language for the implementation of the Unix operating system...
And it's still used for that! 50 years later!
... yes, and it has become the de facto language for writing code for any applications that have to work close to the machine language level.
I know, it's so good! It gave a way to access and manipulate memory that is sufficiently abstracted from assembly language but still close enough to what actually happens on the machine that it's possible to understand what's going on!
And it has resisted the temptation to add new features to 'improve' the language that would have just ended up adding unnecessary clutter (I'm looking at you, C#). Imagine that, a language that does what it was designed to do and does not try to be everything to everyone.
Perhaps C's most influential feature is its syntax. The most used programming languages today, like Javascript, Java and C# all use C-style syntax.
That's because C-style syntax is AWESOME. Different things (expressions, statements and blocks) actually look different which makes it easy for programmers to figure out what things are. And if you use the one true brace style (and you should), you can even get an idea of how the program flows just by skimming the source code!
People keep complaining how 'unnecessary' braces and semicolons are, forgetting that programmers are human and these distinct visible delimiters make it easier for the human eye to see patterns in the source code.
So, Nika, what do you think C's tier should be?
S tier, definitely.
The last language we're going to rank is another popular one: the PHP programming language.
PHP quickly took over server-side scripting and is now used on a large majority of websites. It was designed to be easy to use even by non-programmers and allowed code and HTML formatting to be written in the same place.
..........
It was heavily influenced by Perl and C, and took a lot of its design principles from these languages. Later on, it added support for object-oriented programming using syntax similar to Java.
..........
So Nika, what do you think about PHP?
It's garbage.
What? Surely you don't mean...
It's GARBAGE!
It was 'inspired' by Perl and C and somehow managed to take the worst aspects of each while ignoring their best features. Perl $variables, really? And C-style error values when it doesn't even benefit performance?
And how the hell do you design a language based on Perl and not have first-class regular expressions? That's the one thing Perl has over other scripting languages!
And it took the C approach to library design but instead filled it with inconsistent, badly named, and terribly documented functions.
It can't be all bad, surely...
PHP is so bad its influence has made other languages bad. Have you seen React/JSX?
"React embraces the fact that rendering logic is inherently coupled with other UI logic..."
What a giant pile of bullsh-
Well, what rank should we give PHP then?
F tier.
Well, that's the /dev/null Tech Corner Programming Language Tier List. I hope you've enjoyed it as much as we did!
See you next time! Bye!
Don't use PHP. Seriously.