Linus Torvalds is considered one of the greatest living programmers, and for good reason, having written some of the most widely used software, such as the Linux kernel and the Git revision control system. He’s also known for not being shy about sharing his opinions on things that he doesn’t like through colorful and sometimes NSFW language. Sometimes, he’ll direct his sharp tongue at people who, in his opinion, do substandard work or companies and organizations with which he may have a disagreement or be in competition. Most often, though, the target of Torvalds’ ire is technology that he feels isn’t up to snuff. Use the arrows above to read Torvalds’ thoughts about a dozen technologies that have gotten under his skin repeatedly over the years.
ARM-based system-on-chips (SoC), which integrate control all of a device’s components and peripherals onto a single chip, are widely used today in mobile devices and on systems like Raspberry Pis. Due to a lack of standards, however, beyond the basic instruction processor set (the ARM part), each SoC is custom designed. While Linux is a popular choice for use on ARM SoC, this lack of consistency has meant many changes, customizations, and complications to the Linux kernel have been required to support all of these devices. While release 3.7 of the Linux kernel in 2012 began to bring some sanity to the situation by providing multi-platform ARM support, the ARM SoC world still causes Torvalds to vent every now and again.
C++ was created by Bjarne Stroustrup, who wanted to create a systems programming language that had the speed and efficiency of C, but with some of the program organization features of Simula. While C++ was created partly with idea of being used for operating system kernels, Linus Torvalds found it to be, well, less than optimal when he tried using it to write Linux kernel code. Since then, he’s made waves by sharing his strong opinion on how bad C++ is, in general, saying it leads to “bad design choices” and is only used by “substandard” programmers.
The GNU Compiler Collection (GCC), has been around since 1987, having been first created as a C compiler for the GNU operating system. It’s since been expanded to include front ends for compiling code for a number of other languages (C++, Objective-C, Fortran, Java, Ada, and Go) on a wide variety of platforms. It’s become the dominant (and default) compiler on many Unix-like operating systems, such as Linux, which means that Linus Torvalds is well familiar with it – for better or for worse.
GNOME is an open source desktop environment available on many Linux distributions, providing a graphical user interface and numerous applications. Linus Torvalds has had a long, on-again, off-again relationship with GNOME, often switching between using it and dropping it in favor of other environments such as Xfce and KDE. His complaints about GNOME usually have to do with the difficulties involved fixing problems with the interface and customizing the environment. The good news for the GNOME Foundation is that Torvalds is once again using GNOME – for now.
Emacs has long been one of the most popular text editors used on Unix and Unix-like systems, including Linux. GNU Emacs, the most widely used Emacs implementation, was created by Richard Stallman and released in 1985 as the first piece of software to come out of Stallman’s GNU project. Despite its popularity, however, not everyone loves it, especially Linus Torvalds. Interestingly, while Torvalds’ has railed regularly at “real emacs” (i.e., GNU Emacs) over the years, his preferred editor is uEmacs, a customized version of a different Emacs implementation called MicroEmacs.
Hurd is a microkernel created as part of the GNU project with the intention of replacing the Unix kernel, based on CMU’s Mach kernel. Though Hurd has been a long time in development, with work having begun in 1990, it’s still not ready for production use. Ironically and instead, it’s the Linux kernel that became popular for use with GNU’s other components. Linus Torvalds said that if Hurd had been ready much earlier, he might not even have bothered creating Linux in the first place. Since then, though, Torvalds has regularly shared his negative opinions of Hurd, many of which are based on his dislike of microkernels.
HFS+ is a file system developed by Apple, also known as the Mac OS Extended Volume Hard Drive Format. HFS+ is used by the Mac OS X operating system, although it was first implemented in Mac OS 8.1. Over the years, Linus Torvalds has repeatedly shared his disdain for HFS+. One of his big issues with it is its case insensitivity, which he feels was a very poor design choice.
Java, first released by Sun Microsystems in 1995 as proprietary software, is one of the most popular programming languages in use today. Early on, Linus Torvalds had high hopes for Java and its “write once, run anywhere” feature, feeling that it could be a big boost for Linux. However, Torvalds felt that Sun botched the implementation of the language and the Java Virtual Machine, which kept it from being adopted on the desktop and doomed it to failure. Years later, even though Java has defied his predictions and thrived and even though the code has been open-sourced, Torvalds still doesn’t seem to think too highly of it.
Mach is a microkernel, originally developed at CMU as a replacement for Unix’s BSD kernel in the late 1980’s. It later was used as the basis for other kernels (not all of which were microkernels), such as GNU Hurd and Apple’s Mac OS X. Given Linus Torvalds’ dislike for microkernels, it’s no surprise that he has expressed his displeasure with Mach on several occasions over the years. Ironically, Steve Jobs once tried to hire Torvalds to work on OS X, but was rebuffed when Torvalds was told it would mean having to give up Linux development, not to mention having to work on an operating that had its roots in Mach.
MINIX is a Unix-like operating system created by Andrew Tanenbaum, a professor at Vrije Universiteit in Amsterdam, first released as proprietary software in 1987 and later open-sourced. Linus Torvalds has cited Tanenbaum as an influence and one of the reasons he became interested in Unix in the first place. In fact, Torvalds created Linux on a MINIX machine. However, this didn’t stop Torvalds from getting into a flame war with Tanenbaum many years ago, in which their primary disagreement was over Torvalds’ decision to create Linux as a monolithic kernel, rather than a microkernel, like MINIX. Surprisingly, Torvalds later apologized for his comments.
Solaris was created as a proprietary operating system by Sun Microsystems based on Unix System V and first released in 1991. Right around the time that Sun decided to open-source the Solaris code through the OpenSolaris project in 2005, Linus Torvalds had a few choice public words about Linux’s new competition. Fortunately, for Torvalds and Linux, OpenSolaris was discontinued in 2010 after Oracle bought Sun (though derivatives of it live on) and decided to make Solaris once again a proprietary operating system.
XML is a markup language for encoding documents, developed by the W3C as a subset of the Standard Generalized Markup Language (SGML) and first published in 1998. While it was meant to be easily readable by both machines and people, not everyone finds that to be the case. Linus Torvalds is one of those people, which helps to explain his dislike for the format.