Each month, software quality assurance company, TIOBE, releases its roundup of the top programming languages. In the latest rankings, C topped the list followed by Java, Python, and C++. Over time, many programming languages experience surges in popularity and fall from grace for myriad reasons ranging from the practical to the preferential. That said, we recently spoke with a number of business professionals across the industry to gain a better understanding of the most hated programming languages.
“The hate for a language is directly proportional to the popularity, so the most hated also tends to be the most popular or the most threatening. The hate is also proportional to how well the language is used,” said Tom Hatch, director of engineering for VMware, via email.
SEE: Meet the hackers who earn millions for saving the web, one bug at a time (cover story PDF) (TechRepublic)
Java
At times, a developer’s particular disdain of a specific language may be related to the developer’s familiarity with a programming language rather than the result of anything inherently negative about the language. For example, Hatch said that while he feels as though Java is a great language, he personally hates Java because most developers do not understand Object-Oriented Programming (OOP) structures.
“Java became dominant in the late 90s and has maintained the crown of one of the most widely used programming languages ever since, but, as such, it is deeply hated by many developers,” Hatch said. “Java is a language that strongly enforces OOP structures since it is so strongly OOP it forces developers to follow the paradigm aggressively, which can make large codebases difficult to follow and hand off to their engineers.”
As a programming language proliferates becoming more widely used, the language can take on a requisite capacity for some. As we discussed in a previous report, it can take a considerable time for newer programming languages to surpass older standard fare languages such as Java, which remains a common part of programming educational courses even a quarter-century after its inception.
Monica Lent, a former technical lead and engineering manager who now creates products as an independent developer, explained that many developers may have strong negative feelings toward Java since it was the language they were first introduced to early in their careers.
“Many of today’s experienced engineers learned Java as their first or primary programming language in college. Some amount of the hate Java receives is probably because they associate the language with the frustration of learning to code, or learning a new programming language,” Lent said via email.
Lent also mentioned that Java’s fandom continues to wane, pointing to the fact that Python surpassed Java in TIOBE’s November rankings as evidence of this decline in popularity.
SEE: Linux commands for user management (TechRepublic Premium)
JavaScript
JavaScript holds firm at number seven in the latest TIOBE rankings; the same position the programming language held in December 2019. As a testament to JavaScript’s long-term popularity, it’s important to note that JavaScript has ranked in the top 10 on average every year since 2000. In fact, JavaScript was digitally enshrined in TIOBE’s Programming Language Hall of Fame in 2014 due to its surge in ratings that year. That said, even perennially popular programming languages still draw the ire of programmers for various reasons.
SEE: Top 5 programming languages for systems admins to learn (free PDF) (TechRepublic)
“This may be an unpopular opinion due to JavaScript’s immense popularity, but it’s often quite a mess to work with in reality. By design, JavaScript encourages anti-patterns such as the use of global variables and JavaScript’s type coercion approach often baffles developers when the results are unexpected,” said Jack Mannino, the CEO of nVisium, via email.
Mannino suggested that TypeScript resolves a number of the drawbacks of JavaScript although it is not widely used at the moment. Hatch similarly aired criticisms regarding Javascript.
“If ubiquity breeds hate, then Javascript is king because it is the only universal language to run inside web browsers. The result is that where it can be criticized, it will be,” Hatch said.
“Javascript was not originally developed as a full-featured language, but more so as a scripting extension of HTML. This means that the language has had to grow a great deal over the years,” Hatch continued. “As it has grown, so has the ecosystem, introducing more and more Javascript frameworks, this causes fatigue among developers who struggle to keep up with the changes.”
Brandon Minor, CEO and co-founder of Tangram Vision, described Javascript as a “nightmare,” stating that while the language offers syntax that is easy to learn initially, the conveniences end there.
“Running anything more than a static web page takes serious scaffolding and experience, much of which is just taken as tribal knowledge within the community. On top of this, the packaging system is such that dependencies often interfere with each other, or even completely break,” Minor said via email.
Minor explained that the “pain” felt by Javascript users is beyond comparison in the programming community. To illustrate this point, Minor detailed a situational use-case peppered with programming roadblocks.
“Even the best-laid architecture can stumble up if/when essential libraries decide not to play nice. But… you can’t deploy anything without using everything. Gotta use NPM to get Babel, which lets you use any features over ES5, then bundle everything up using WebPack, but make sure your Typescript compiles first and keep it all automated using Gulp. No other community goes through this pain,” Minor said.
C++
C++ is one of the more popular programming languages ranking fourth in the latest TIOBE rankings. Since 1985, C++ has ranked in the top 10 annually on average per TIOBE’s rankings and maintained an average rank in the top three from 1990 through 2015. Hatch noted the language’s popularity but said C++ “garners hate from many areas.” Specifically, Hatch described C++ as “an object-oriented extension of C” with “a swath of features,” noting that as “languages get too featureful they can also get too messy.”
“I like how [Linus] Torvalds put it when he said, ‘In other words, the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C.’ This means that C++ code is often very messy and there are many difficult to follow and understand C++ codebases out there,” Hatch said.
Perl
The displeasure of the programming community is not solely reserved for long-standing industry staples. Interestingly, Hatch also mentioned Perl as one of his most hated programming languages. In the latest TIOBE list Perl didn’t manage to crack the top 10, ranking 14th overall sandwiched between Swift and Ruby. Regardless, Perl has experienced increased popularity over the last year, climbing from 20 in TIOBE’s December 2019 rankings.
“While Perl is not as widely used anymore, Perl code lingers in the wild. Perl is often called a “Write Only” language, this jab at Perl emphasizes that reading Perl code can be very difficult, even for a seasoned Perl developer. Perl has also changed significantly over the years, meaning that older Perl code can look very different from more recent Perl code,” Hatch said.