I enjoy programming. I love being creative. Solving problems is a challenge for me. If you’re a fellow nerd you might relate to that. You might also agree that sometimes our tools suck big time. “But hey, they are just tools. Use the most appropriate one for your tasks, you have a choice!” — Well, nope. More often than not I don’t have a choice. I can’t just switch to another language when I have to do maintenance work or bug fixing on a project. I can’t choose a tool that’s not compatible with our back-end system. Sorrowful I had to realize on numerous occasions that there are simply no alternatives.
You may have noticed that there is a lot of negativity on this blog associated with programming languages, which is by no means a bad thing. I’m not sure if you guys are with me on this one, but I do think coding would be one heck of a lot less fascinating — and substantially addicting — without a certain degree of frustration that’s just enough to keep you going. After hours of trying, failing and getting back up onto your feet, you’ll eventually experience one of those eureka moments that feel so unbelievably rewarding and make all that time spent on an issue seem worthwhile.
Really, I’d even go so far and compare this with playing good ol’ classics on the Nintendo Entertainment System (NES). Some of the games from this library proved to be insanely difficult, yet delivered a great deal of satisfaction once you defeated the final boss.
Really, I’d even go so far and compare this with playing good ol’ classics on the Nintendo Entertainment System (NES). Some of the games from this library proved to be insanely difficult, yet delivered a great deal of satisfaction once you defeated the final boss.
Now, what is the decisive factor that distinguishes two hard games between good and bad? The controls. If the controls suck, there is no way you’re ever going to enjoy that game because it makes the whole trial an unfair endurance round.
It’s exactly the same case with the following five languages that make any coding efforts unnecessarily more difficult and complex if you’re forced to work with them under the wrong circumstances.
The ranking is purely based on my own experience and opinion. Of course I realize that each of these languages also have significant advantages, though the cons clearly outweigh the pros for most of my purposes. I did cover some of these languages before and I’m planning to go into the details of all of them at one point, so be sure to check them out!
Here are the top five most annoying programming languages I can’t just ditch.
#5: C/C++
I wasn’t sure whether I should include C/C++ or leave them out. My situation with these two is some kind of weird love-hate-relationship. C/C++ are incredible powerful languages that give you maximum control over everything. The problem is that with great power comes great responsibility — and responsibility is something that you generally want to delegate to the compiler whenever possible. There are just too many aspects that can (and will) go horribly wrong. Buffer overflows may go unnoticed, memory leaks happen frequently, crashes occur that seem completely random, undefined behavior is a part of the specs and compilers do whatever they want to. Frankly, it sucks to work with them. They are both the source of several major headaches I’ve had in the past.
Covered in detail here:
The C++ Programming Language Sucks for a Very Good Reason
#4: JavaScript
I don’t think I need to explain much more on this one since I already went into the details in my article on why JavaScript sucks. To sum it up, JS is just a generally awful and limited language with some annoying design quirks, though it comes with some hidden strengths that we may be able to thoroughly leverage in the future. I mainly put it on rank #4 due to some bad experiences during a project where switching to an alternative language was not an option.
Covered in detail here:
Why Does JavaScript Suck?
#3 Windows Batch
If you’re doing stuff on Microsoft® Windows™, chances are you’re probably using batch files every once in a while for basic task automation, though you’ve hopefully switched to more powerful scripting alternatives by now. It’s rather difficult to retain an acceptable level of sanity while dealing with this built-in trash. Seriously, if anyone figured out the definitive semantics of how this language pretends to function properly, please let me know ASAP. Thankfully, Microsoft® Windows™ PowerShell® comes to the rescue by drastically improving the situation with yet another ugly syntax. My condolences to all system administrators out there.
#2: PHP
You might be surprised that PHP is not leading the bunch from the very top of this list, considering my recent article on why PHP sucks. Well, there is one straightforward reason for that: I actually have to frequently use a language that blows harder than PHP. Don’t scroll down too quickly though, we’ll get there. Let’s do a short but concise recap and try to remember why PHP deserves this wonderful spot here. PHP is a horrible, dreadfully deformed language with inconsistencies beyond belief all across the board. Its popularity is completely undeserved and its whole existence is a tumor attached to the World Wide Web.
Covered in detail here:
Why Does PHP Suck?
#1: ABAP
This little guy here to the left — he’s probably the mascot of the ABAP developer team that helped them to properly implement this piece of garbage. Seriously, ABAP is by far the worst programming language I’ve ever had to work with on a professional basis. The fact that it is part of SAP Systems only increases the suckage exponentially. It’s not only the tool that sucks but the entire toolbox and everything ever built with it. ABAP is a disgrace to all coders out there who want nothing more than writing good business applications.
I did not write an article on ABAP yet because it is a 4th generation language with a limited application domain — but trust me, I’ll get back on this one…
Be sure to let me know in the comments down below what you think and tell me about your experiences!