pgstrata
Java's Cover
2

April 2001

3

This essay developed out of conversations I've had with several other programmers about why Java smelled suspicious.

4

It's not a critique of Java!

5

It is a case study of hacker's radar.

6

Over time, hackers develop a nose for good (and bad) technology.

7

I thought it might be interesting to try and write down what made Java seem suspect to me.

8

Some people who've read this think it's an interesting attempt to write about something that hasn't been written about before.

9

Others say I will get in trouble for appearing to be writing about things I don't understand.

10

So, just in case it does any good, let me clarify that I'm not writing here about Java (which I have never used) but about hacker's radar (which I have thought about a lot).

3–7

This grew out of conversations about why Java smelled suspicious. It's not a critique of Java; it's a case study of hacker's radar. Hackers develop a nose for good and bad technology, and I wanted to write down what made Java seem suspect.

8–10

To be clear: I'm not writing about Java, which I've never used, but about hacker's radar, which I've thought about a lot.

2–10

This grew out of conversations about why Java smelled suspicious. It isn't a critique of Java but a case study of hacker's radar.

12

13

The aphorism "you can't tell a book by its cover" originated in the times when books were sold in plain cardboard covers, to be bound by each purchaser according to his own taste.

14

In those days, you couldn't tell a book by its cover.

15

But publishing has advanced since then: present-day publishers work hard to make the cover something you can tell a book by.

16

I spend a lot of time in bookshops and I feel as if I have by now learned to understand everything publishers mean to tell me about a book, and perhaps a bit more.

17

The time I haven't spent in bookshops I've spent mostly in front of computers, and I feel as if I've learned, to some degree, to judge technology by its cover as well.

18

It may be just luck, but I've saved myself from a few technologies that turned out to be real stinkers.

19

So far, Java seems like a stinker to me.

20

I've never written a Java program, never more than glanced over reference books about it, but I have a hunch that it won't be a very successful language.

21

I may turn out to be mistaken; making predictions about technology is a dangerous business.

22

But for what it's worth, as a sort of time capsule, here's why I don't like the look of Java:

13–15

"You can't tell a book by its cover" comes from when books were sold in plain covers. But publishing has advanced: publishers work hard to make the cover something you can tell a book by.

16–18

I've learned to judge technology by its cover too—saving myself from a few real stinkers.

19–22

So far, Java seems like a stinker. I've never written a Java program, but I have a hunch it won't be very successful. I may be mistaken, but as a time capsule, here's why I don't like the look of Java.

12–22

You can't tell a book by its cover, but publishers now work to make the cover tell you. I've learned to judge technology the same way, and so far Java looks like a stinker.

24

1.

25

It has been so energetically hyped.

26

Real standards don't have to be promoted.

27

No one had to promote C, or Unix, or HTML.

28

A real standard tends to be already established by the time most people hear about it.

29

On the hacker radar screen, Perl is as big as Java, or bigger, just on the strength of its own merits.

30

2.

31

It's aimed low.

32

In the original Java white paper, Gosling explicitly says Java was designed not to be too difficult for programmers used to C. It was designed to be another C++: C plus a few ideas taken from more advanced languages.

33

Like the creators of sitcoms or junk food or package tours, Java's designers were consciously designing a product for people not as smart as them.

34

Historically, languages designed for other people to use have been bad: Cobol, PL/I, Pascal, Ada, C++.

35

The good languages have been those that were designed for their own creators: C, Perl, Smalltalk, Lisp.

36

3.

37

It has ulterior motives.

38

Someone once said that the world would be a better place if people only wrote books because they had something to say, rather than because they wanted to write a book.

39

Likewise, the reason we hear about Java all the time is not because it has something to say about programming languages.

40

We hear about Java as part of a plan by Sun to undermine Microsoft.

41

4.

42

No one loves it.

43

C, Perl, Python, Smalltalk, and Lisp programmers love their languages.

44

I've never heard anyone say that they loved Java.

45

5.

46

People are forced to use it.

47

A lot of the people I know using Java are using it because they feel they have to.

48

Either it's something they felt they had to do to get funded, or something they thought customers would want, or something they were told to do by management.

49

These are smart people; if the technology was good, they'd have used it voluntarily.

25–29

It has been so energetically hyped. Real standards don't have to be promoted—no one had to promote C, or Unix, or HTML. On the hacker radar, Perl is as big as Java on its own merits.

31–35

It's aimed low. Like the creators of sitcoms or junk food, Java's designers were building for people not as smart as them. Languages designed for other people have been bad—Cobol, Ada, C++—while the good ones were designed for their creators: C, Perl, Lisp.

37–40

It has ulterior motives. We hear about Java not because it has something to say about programming languages, but as part of a plan by Sun to undermine Microsoft.

42–44

No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I've never heard anyone say they loved Java.

46–49

People are forced to use it—to get funded, or because management said so. These are smart people; if the technology were good, they'd use it voluntarily.

24–49

Java is energetically hyped, aimed low, and pushed by ulterior motives. No one loves it, and the people using it feel forced to.

51

6.

52

It has too many cooks.

53

The best programming languages have been developed by small groups.

54

Java seems to be run by a committee.

55

If it turns out to be a good language, it will be the first time in history that a committee has designed a good language.

56

7.

57

It's bureaucratic.

58

From what little I know about Java, there seem to be a lot of protocols for doing things.

59

Really good languages aren't like that.

60

They let you do what you want and get out of the way.

61

8.

62

It's pseudo-hip.

63

Sun now pretends that Java is a grassroots, open-source language effort like Perl or Python.

64

This one just happens to be controlled by a giant company.

65

So the language is likely to have the same drab clunkiness as anything else that comes out of a big company.

66

9.

67

It's designed for large organizations.

68

Large organizations have different aims from hackers.

69

They want languages that are (believed to be) suitable for use by large teams of mediocre programmers-- languages with features that, like the speed limiters in U-Haul trucks, prevent fools from doing too much damage.

70

Hackers don't like a language that talks down to them.

71

Hackers just want power.

72

Historically, languages designed for large organizations (PL/I, Ada) have lost, while hacker languages (C, Perl) have won.

73

The reason: today's teenage hacker is tomorrow's CTO.

74

10.

75

The wrong people like it.

76

The programmers I admire most are not, on the whole, captivated by Java.

77

Who does like Java?

78

Suits, who don't know one language from another, but know that they keep hearing about Java in the press; programmers at big companies, who are amazed to find that there is something even better than C++; and plug-and-chug undergrads, who are ready to like anything that might get them a job (will this be on the test?).

79

These people's opinions change with every wind.

80

11.

81

Its daddy is in a pinch.

82

Sun's business model is being undermined on two fronts.

83

Cheap Intel processors, of the same type used in desktop machines, are now more than fast enough for servers.

84

And FreeBSD seems to be at least as good an OS for servers as Solaris.

85

Sun's advertising implies that you need Sun servers for industrial strength applications.

86

If this were true, Yahoo would be first in line to buy Suns; but when I worked there, the servers were all Intel boxes running FreeBSD.

87

This bodes ill for Sun's future.

88

If Sun runs into trouble, they could drag Java down with them.

89

12.

90

The DoD likes it.

91

The Defense Department is encouraging developers to use Java.

92

This seems to me the most damning sign of all.

93

The Defense Department does a fine (though expensive) job of defending the country, but they love plans and procedures and protocols.

94

Their culture is the opposite of hacker culture; on questions of software they will tend to bet wrong.

95

The last time the DoD really liked a programming language, it was Ada.

52–55

It has too many cooks. The best languages came from small groups; Java seems run by a committee. If it turns out good, it'll be the first time in history a committee designed a good language.

57–60

It's bureaucratic—a lot of protocols. Really good languages let you do what you want and get out of the way.

62–65

It's pseudo-hip. Sun pretends Java is a grassroots, open-source effort—one that just happens to be controlled by a giant company, with the same drab clunkiness.

67–73

It's designed for large organizations, which have different aims from hackers. They want languages that, like the speed limiters in U-Haul trucks, prevent fools from doing damage. But hackers just want power—and today's teenage hacker is tomorrow's CTO.

75–79

The wrong people like it: suits who keep hearing about it in the press, programmers amazed there's something even better than C++, and plug-and-chug undergrads ready to like anything that gets them a job. Their opinions change with every wind.

81–88

Its daddy is in a pinch. Sun's model is undermined on two fronts: cheap Intel processors are now fast enough for servers, and FreeBSD is at least as good as Solaris. Sun's ads imply you need Sun servers; but at Yahoo, the servers were all Intel boxes running FreeBSD. If Sun falls, it could drag Java down.

90–95

The DoD likes it—the most damning sign of all. Their culture is the opposite of hacker culture, and on software they tend to bet wrong. The last time they really liked a language, it was Ada.

51–95

Java reeks of the committee: too many cooks, bureaucratic, pseudo-hip, built for large organizations and the wrong people. Its corporate daddy is in a pinch, and the DoD likes it—the most damning sign of all.

97

Bear in mind, this is not a critique of Java, but a critique of its cover.

98

I don't know Java well enough to like it or dislike it.

99

This is just an explanation of why I don't find that I'm eager to learn it.

100

It may seem cavalier to dismiss a language before you've even tried writing programs in it.

101

But this is something all programmers have to do.

102

There are too many technologies out there to learn them all.

103

You have to learn to judge by outward signs which will be worth your time.

104

I have likewise cavalierly dismissed Cobol, Ada, Visual Basic, the IBM AS400, VRML, ISO 9000, the SET protocol, VMS, Novell Netware, and CORBA, among others.

105

They just smelled wrong.

106

It could be that in Java's case I'm mistaken.

107

It could be that a language promoted by one big company to undermine another, designed by a committee for a "mainstream" audience, hyped to the skies, and beloved of the DoD, happens nonetheless to be a clean, beautiful, powerful language that I would love programming in.

108

It could be, but it seems very unlikely.

97–99

This is a critique of Java's cover, not the language. I don't know it well enough to like or dislike it.

100–105

It may seem cavalier to dismiss a language before writing programs in it, but every programmer has to—there are too many technologies to learn them all. I've likewise dismissed Cobol, Ada, Visual Basic, VRML, CORBA, and others. They just smelled wrong.

106–108

It could be that a language promoted by one big company to undermine another, designed by a committee, hyped to the skies, and beloved of the DoD, is nonetheless clean, beautiful, and powerful. It could be, but it seems very unlikely.

97–108

This is a critique of Java's cover, not the language—I don't know it well enough to judge. But every programmer has to dismiss technologies by outward signs, and Java just smells wrong.

110

Trevor Re: Java's Cover [blocked]

111

Berners-Lee Re: Java [blocked]

112

Being Popular [blocked]

110–114

Related: Trevor Re: Java's Cover [blocked], Berners-Lee Re: Java [blocked], Being Popular [blocked], and 2005: BusinessWeek Agrees.

110–114

Replies from Trevor Blackwell and Tim Berners-Lee, the related essay "Being Popular," a leaked Sun memo, and a 2005 BusinessWeek piece agreeing.