Paul Graham on Java and "hacker" programming languages ​​(2001)

Paul Graham on Java and "hacker" programming languages ​​(2001)

This essay was an extension of conversations with several developers about Java bias. This is not a criticism of Java, but rather a clear example of "hacker radar".

Over time, hackers develop a nose for good — or bad — technology. I think it might be interesting to try and lay out the reasons why Java seems questionable to me.

Some of the readers saw this as a noteworthy attempt to write about something that no one had written about before. Others warned that I write about things in which I understand nothing. So just in case, I would like to clarify that I am not writing about Java (which I have never worked with), but about "hacker radar" (which I have thought about a lot).

The expression "don't judge a book by its cover" originated in the days when books were sold in blank cardboard covers that the buyer bound to their liking. In those days, you couldn't tell anything about a book by its cover. Since then, however, the publishing industry has come a long way, and modern publishers are putting a lot of effort into making the cover speak volumes.

I've spent a lot of time in bookstores, and I think I've learned to understand everything publishers want to tell me, and maybe some more. Most of the time I spent outside of bookstores was in front of computer screens, and I guess I learned to sort of judge technology by its cover. It may be blind luck, but I managed to avoid a few technologies that turned out to be really bad.

Java turned out to be one such technology for me. I haven't written a single program in Java, and have limited myself to only scratching the surface of the documentation, but I have a feeling that it is not destined to become a very successful language. I could be wrong - making predictions about technology is a dangerous business. And yet, sort of a testament to the era, this is why I don't like Java:

  1. Excessive enthusiasm. These standards are not required to be imposed. Nobody tried to promote C, Unix or HTML. True standards are set long before most people hear about them. On a hacker's radar, Perl looks just as good as Java because of its merits alone.
  2. Java aims low. In the original description of Java, Gosling explicitly states that Java was designed to be easy for C programmers. It was designed to be the next C++:C with several ideas borrowed from more advanced languages. Like the creators of sitcoms, fast food or tours, the creators of Java deliberately designed a product for people who are not as smart as themselves. Historically, languages ​​designed for other people to use have failed: Cobol, PL/1, Pascal, Ada, C++. Successful, however, were those that the creators developed for themselves: C, Perl, Smalltalk, Lisp.
  3. Hidden motives. Someone once said that the world would be a better place if people only wrote books when they had something to say, instead of writing when they felt like writing a book. Likewise, the reason we hear about Java all the time is not because they are trying to tell us something about programming languages. We hear about Java as part of Sun's plan to take on Microsoft.
  4. Nobody loves her. C, Perl, Python, Smalltalk or Lisp programmers are in love with their languages. I've never heard anyone say they love Java.
  5. People are forced to use it. Many people I know who use Java do so out of necessity. They think it will get them funded, or they think the clients will like it, or it's a management decision. These are smart people; if the technology were good, they would use it voluntarily.
  6. This is the dish of many chefs. The best programming languages ​​have been developed by small teams. Java is managed by a committee. If it turns out to be a successful language, it will be the first time in history that a committee has created such a language.
  7. She is bureaucratic. From what little I know about Java, it seems like there are a lot of protocols for doing things. Really good languages ​​are not like that. They let you do whatever you want and don't stand in your way.
  8. Artificial buzz. Now Sun is trying to pretend that Java is a community driven, open source project like Perl or Python. And yet, the development is controlled by a huge company. So the language runs the risk of being the same dull squalor as everything that comes out of the bowels of a large company.
  9. It is designed for large organizations. Large companies have different goals with hackers. Companies need languages ​​that have a reputation for being suitable for large teams of mediocre programmers. Languages ​​with characteristics like the speed limiters on U-Haul trucks that warn fools against doing too much damage. Hackers don't like tongues that speak down to them. Hackers need power. Historically, languages ​​built for large organizations (PL/1, Ada) have lost out, while languages ​​built by hackers (C, Perl) have won. Reason: today's underage hacker is tomorrow's CTO.
  10. She likes the wrong people. The programmers I most admire are generally not enthusiastic about Java. Who likes her? Suits, those who do not see the difference between languages, but constantly hear about Java in the press; programmers in large companies, fascinated by the idea of ​​finding something better than even C++; omnivorous undergraduates who will love anything that gets them a job (or gets them on an exam). The opinion of these people changes with the direction of the wind.
  11. Her parent is having a hard time. Sun's business model is under attack from two fronts. Cheap Intel processors used in desktop computers have become fast enough for servers. And FreeBSD seems to be becoming as good a server OS as Solaris. In its advertising, Sun implies that you will need Sun servers for industrial-grade applications. If that were true, Yahoo would be first in line to buy Sun. But when I worked there, they used servers on Intel and FreeBSD. This promises a bleak future for Sun. And if Sun goes down, trouble can drag Java to the bottom.
  12. Department of Defense love. The Department of Defense encourages developers to use Java. And it looks like the worst sign of all. The Department of Defense does an excellent (albeit expensive) job of protecting the country, they love plans, procedures and protocols. Their culture is completely opposite to the hacker one; when it comes to software, they tend to make the wrong bets. The last programming language that the Department of Defense fell in love with was Ada.

Please note that this is not a criticism of Java, but a criticism of its cover. I don't know Java well enough to like it or dislike it. I'm just trying to explain why I don't want to learn Java.

To discard a language without even trying to program in it may seem rash. But this is what all programmers have to do. There are too many technologies to learn them all. You have to learn to judge by external signs whether it will be worth your time. With equal haste, I discarded Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, the SET protocol, VMS, Novell Netware, and CORBA, among others. They just didn't like it.

Perhaps in the case of Java I am wrong. Perhaps a language promoted by one large company to compete with another, developed by a committee for the masses, with hype to the sky and beloved by the Department of Defense, will nonetheless turn out to be a neat, beautiful, and powerful language that I will code with joy. Maybe. But very doubtful.

Thanks for the translation: Denis Mitropolsky

PS

Source: habr.com

Add a comment