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. Frown

So, what languages can possibly be that annoying?

Top Five Most Annoying Programming Languages I can't just DitchYou 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.

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.

Rank #5: C/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

Rank #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?

Rank #3: Windows Batch

Windows BatchIf 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. Angry  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.

Rank #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. Wink 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?

Rank #1: ABAP

ABAPThis 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! Wink

…why must they be that bad?

Related Articles

  • ABAP? I had to look it up. Looks awful.

  • scharlatan

    ABAP is inherited from COBOL, what do you expect…
    C++ is unbelieveably (damn…spelling) messy, C is wonderful. It compiles everywhere.

    Building a compiler for it will take at most half a year, the standard library is small and powerful. A really big bunch of lanugages uses functions from the C-standard library. (I am still trying not to sound like a fanatic). But it is, and always will be, not very good for beginners. When a language is used for implementing a kernel, don’t use it for teaching. Pick Python or Go instead.

  • Joseph Benedict A. Gruta

    Why does ABAP suck? What makes a programming language not suck?

  • Venesus

    As a SAP partner developer, I can assure everyone that ABAP, in any way, shape or form, sucks so incredibly much. It tries to be a event based system but does it in a very bad way. You define everything following a keyword to be a single event handler. Functions can ( and must, for the sake of your sanity ) be defined in new files. Almost all the keywords are english, the rest is german, like just about every SAP internal table. German names everywhere. You have to specify references and parameters both, when you define and invoke a function. It looks like SQL and feels very much like it. It is not predictable at all, and defining new “Data Types” ( not really ) sucks. It also is slow as fuck and there is no documentation on just about everything, aside from the SAP documentation, which sucks even more than having no documentation. It is so verbose yet delivers so little information on what it actually does or how to use it. Only using variables with up to 8 characters because certain features cannot work with longer names, case insensitivity in most places, but not all, the ******* IDE ( se80 ) which just recently had syntax highlighting added, is like Visual Studio, but so much worse. I mean just take a look at it. It just sucks in every possible way. Luckily (?) all SAP Applications will be written in SAPUI5 (html, css and js) in the future.

  • VK

    I am missing Visual Basic in the list! The worst language ever.

  • emrah

    Windows bash. You have options. Conemu is great.

    • I am talking about the language itself here, not the program used for user interaction (I am using Cmder for that). Conemu and its alternatives are still relying on Batch / PowerShell. You can’t really get around using them here or there because they are an integral part of the system — and Batch just sucks as a language.

    • emrah

      I mean you are not stuck with that. You can use git shell.

    • I am stuck with it the same way I am stuck with PHP and JavaScript, for example. Of course there are alternatives, but they don’t apply in all cases and sometimes you “just gotta use what you gotta use”; that doesn’t make it any better, though.

    • emrah

      I don’t know. I left all of it. I had a chance to code ABAP too. I did not like it. I’ve chosen Golang and Typescript. I chose to work for myself. Not for clients. That is why you stuck with PHP i assume.

  • You can replace C++ with Rust and PHP with Ruby.

  • simon balluais

    Ho my god I am so glad to finally a see a lucid comment on ABAP.
    I had to work with it for a two years internship, in a team of people that only knew ABAP. It was impossible to explain even the slightest good practice, such as avoiding global variables, because the language itself promotes such things
    Any comment was answered by things like “yeah but those cons are counterbalanced by the very good integration with sap” or “it’ll be better once you have more experience with it”
    This feels so good to know that there are other people aware of the ABAP incredible shitiness