The 10 programming languages most likely to drive developers insane

When developers discuss the programming languages they hate the most, these names tend to come up - a lot

Programming books

For obvious reasons, one thing software developers tend to have strong opinions about are programming languages. One developer’s beloved language can be another developer’s living hell. If you work in programming for any length of time, you will sooner or later be forced to work with a language that, whether due to odd syntax, too much (or too little) flexibility, poor debugging capabilities or any number of other reasons, makes you pull your hair out. Based on developer input on popular forums such as Quora, Stack Overflow and Hacker News, ITworld has come up with a list of the 10 most hated programming languages, including why they anger people, and how to avoid them.

Python code sample
Credit: ITworld/Steve Traynor
10. Python

What it is: A high level, all purpose programming language that prides itself on its readability. It’s often used as a scripting language, though it can also be compiled.

Common complaints: Indentation is used to specify block structures rather than brackets or braces. Also, heavy use of colons and underscores and module/variable name collision.

Quote: “Python... the __blag__ mixed with the whitespace stuff... blech” David Pollack

How to avoid it: Don’t work at Google, Yahoo or NASA.

LabVIEW code sample
Credit: ITworld/Steve Traynor
9. LabVIEW

What it is: The Laboratory Virtual Instrument Engineering Workbench is actually a development environment for G, a visual, dataflow programming language, used for measurement and control systems. Programmers use LabVIEW to connect functional nodes via “wires” to determine execution.

Common complaints: The GUI programming approach can make anything beyond the simplest of tasks extremely complex.

Quote: “LabVIEW abstracts you to the point that it's a whole new level of complexity, which completely defeats the purpose of it being abstract.” hardy263

How to avoid it: Stay away from jobs programming instrument control (particularly lab instrumentation) or industrial automation. Also, avoid helping your kids with LEGO MINDSTORMS projects.


JavaScript code sample
Credit: ITworld/Steve Traynor
8. JavaScript

What it is: An interpreted language, originally developed by Netscape, used primarily as a client-side scripting language on web pages. It’s also been implemented for server-side web scripting and as an embedded scripting language.

Common complaints: Case sensitivity, different implementations across browsers, lack of debugging capabilities (though Firebug solves that) and odd inheritance rules.

Quote: “I loathe the weird prototype-based inheritance... lack of modularity... and strange handling of "this"” wladimir

How to avoid it: Don’t work as a web developer.

Tcl code sample
Credit: ITworld/Steve Traynor
7. Tcl

What it is: Developed as an embedded command language, the Tool Control Language has evolved into a general purpose scripting language used for things such as web applications, network administration and test automation.

Common complaints: The syntax is almost too simple, it lacks pointers so there’s no way to pass by reference, arrays are stored as strings, it has poor list semantics and confusing variable scoping.

Quote: “...it was adequate for controlling oscilloscopes and power supplies but it should never have been allowed to escape from the laboratories.” Monica Anderson

How to avoid it: Don’t work for Cisco, AOL or CNET or anyplace using AOLserver or the OpenACS platform.

COBOL code sample
Credit: ITworld/Steve Traynor
6. COBOL

What it is: A language first specified in 1959, designed primarily to support business applications and government administrative functions, COmmon Business-Oriented Language legacy systems are still widely in use.

Common complaints: Extremely verbose syntax (it was intended to be readable by non-programmers), incompatibility between versions, and, prior to COBOL 2002, lack of support for object oriented-programming, functions and pointers.

Quote: “COBOL is beautiful, elaborate, baroque in its terribleness.” John Pirie

How to avoid it: Don’t work in government, financial services or for the military.

C++ code sample
Credit: ITworld/Steve Traynor
5. C++

What it is: An intermediate-level language created as an extension of C which supports, among other enhancements, object oriented programming. It remains one of the most popular languages, used in a wide variety of systems and applications.

Common complaints: Too big of a feature set, manual memory management, slow compilation speed and the fact that it allows programmers to switch between object oriented and procedural code in the same program.

Quote: “You see that every shop that uses it uses a (typically different) subset of the language because no one in their right mind would having coding standards allowing it all.” cletus

How to avoid it: Don’t work for Adobe, Google or the gaming industry, in general.

PHP code sample
Credit: ITworld/Steve Traynor
4. PHP

What it is: An interpreted language most often used for server-side scripting to generate HTML pages dynamically. It can also be used as a stand alone scripting language on many operating systems.

Common complaints: Inconsistent naming conventions for its many functions, security holes, no native support for Unicode, plus it often gets mixed in with presentation code (e.g., HTML, CSS).

Quote: “PHP is the worst language I won't stop using.” ojrac

How to avoid it: If you do any web-based work it’s hard to avoid, but, for starters, don’t work for Facebook, and stay away from Wikimedia, Wordpress, Joomla and Drupal.

Java code sample
Credit: ITworld/Steve Traynor
3. Java

What it is: An object-oriented language originally created for interactive television and one of the most popular programming languages in use today. Java code gets compiled into bytecode, which is then interpreted by a platform-specific Java Virtual Machine, meaning Java programs are “Write Once, Run Anywhere.”

Common complaints: The syntax is too verbose, it’s slow, it’s not easy to pass functions, the API’s are over-engineered and lots of other languages can do what it does, but more efficiently.

Quote: “My least favorite is Java, because it is so clunky. So many extensions and goofy things are necessary to accomplish a task.” herb

How to avoid it: Don’t develop any apps using the Android SDK.

Perl code sample
Credit: ITworld/Steve Traynor
2. Perl

What it is: A high level, interpreted, all-purpose language that’s been called a “Swiss Army chainsaw” and the “duct tape of the Internet.” Perl is used for everything from CGI scripting to system and network administration.

Common complaints: The main criticism against Perl, consistently, is that there too many ways to do things. So many, in fact, that it’s essentially a write-only language, meaning Perl code becomes impossible to read (and, ultimately, maintain).

Quote: “Its million ways to do anything make other people's code nearly unreadable, and its terseness makes even the simplest thing look like gibberish.” Ian Peters-Campbell

How to avoid it: Don’t become a programmer.

Visual Basic code sample
Credit: ITworld/Steve Traynor
1. Visual Basic

What it is: A programming language and integrated development environment used primarily in the development of Windows applications with graphical user interface. Created by Microsoft and meant to be easy to use for beginners, applications are built using a combination of graphical, drag-and-drop techniques and writing code.

Common complaints: Its syntax is considered too verbose and strange, it requires dynamic link libraries to run, it has poor support for objected-oriented programming and the fact that it hasn’t been officially supported by Microsoft since 1998.

Quote: “I simply fail to understand its cryptic syntax, since it doesn't follow any programming convention.” Checksum

How to avoid it: Avoid working for any company with Windows applications created before 2008.