"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," said VMware's director of engineering.
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.
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)
SEE: Top 5 programming languages for systems admins to learn (free PDF) (TechRepublic)
"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.
"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++ 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.
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.
- Listen to TechRepublic's Dynamic Developer podcast (TechRepublic)
- How to become a developer: A cheat sheet (TechRepublic)
- Microservices: A cheat sheet (free PDF) (TechRepublic)
- Hiring Kit: .Net developer (TechRepublic Premium)
- Programming languages: Developers reveal most loved, most loathed, what pays best (ZDNet)
- Programming languages and developer career resources (TechRepublic on Flipboard)