14 ms·
Java's Cover (April 2001)
- kds 14y agoThe title of the submission is a bit misleading. PG explicitly states in the essay that it's not that much on Java itself but rather on the way hackers judge technologies (the "hacker radar" in his expression). And these are not quite predictions but statements on how Java is (or was then back in 2001) perceived. And I think, IMHO, a substantial part of the Java success today should be attributed to the JVM, not so much to Java, the language. Clojure/Scala/etc. are kind of clues for this.
- yen223 14y agoNo hard numbers, but I'm sure most Java implementations are still running Java the language. IMHO Java's success today is more because of corporate inertia than anything else. Kinda like how COBOL still has users in this day and age. It also helps that it's one of the languages being taught in CS classes.
- astine 14y ago"IMHO Java's success today is more because of corporate inertia than anything else." I don't think so. Java as a platform is a lot easier to manage than most other platforms, including Ruby and Python. Jars, in my experience, are much easier to deal with than Gems. Java has a set of advantages that aren't really replicated elsewhere. It's garbage collected and portable, but executes much faster than other garbage collected and portable languages.
- beersigns 14y agoI work in a very large company that has primarily Java for web apps and back end processes in COBOL/Mainframe environments. I've been steering things towards Groovy or Ruby for new projects, largely using productivity as the justification. Top push backs from upper management have been: 1) Universities we recruit from teach Java & most prospective employees already know Java 2) Costs of retraining workforce 3) They don't understand those langs can be utilized with our current JVM ecosystem I feel pretty much all those reasons are specious and really shouldn't be holding things back. We've got a foothold established with success of some smaller projects using Groovy and Ruby to "prove" their viability. I'd like to try Scala next to see how it would fit for some of our other projects. TLDR: At least one large company is making efforts to evolve beyond just Java in the JVM.
- aw3c2 14y ago*2001
- zxcvb 14y agoIt's the year that makes this story interesting. He predicted what would happen to the language (and as a side effect of that, the whole ecosystem) and he was wrong. His reasoning looked good and really made sense but his predications were just not to be. I'm extending one of the worlds leading eCommerce platforms that's written in Java, for one of our many world leading retail clients as I type.
- Gilly_LDN 14y agoLearnt Java at university and swore off it as soon as I finished my course. Had a day job writing Perl software and it has been much better. The only effect though is that I have been put off Object Orientated code to, I find that and Java too verbose and non-transparent enough to hack or maintain quickly.
- se85 14y agoThe verbose and non-transparent nature of Java should not deter you from learning and using object orientated programming in other environments, especially since these concepts had already been explored decades before Java existed. Object orientated programming is a good thing when it is done right, and horrible when it's done wrong, just like anything. If your not doing functional programming and your not doing object orientated programming (they are both different types of OOP) then your not growing as a programmer, and this will come back to bite you much worse than any verbose Java code ever could. I'm not at all a fan of Java personally and I too think its way more verbose and complicated than things need to be, but OOP != Java.
- Gilly_LDN 14y agoThe only OOP I have really looked into since, was PHP frameworks like Zend Framework and I didn't find it made life easier for me. I do make use of classes in Perl and PHP when they are presented in modules. I just don't choose to structure my work in objects. I am using javascript as a functional language when in use with node.js or with firebase for example. I just break my work up in simple functions which I use and re-use to do anything I need. In regards to not developing as a programmer, of course if you have a style you will get better at it, but I find I grow better by learning more variety of skills, e.g properly securing password data with bcrypt, or playing stripes CTF2 to see where the vulnerabilities exist in software. As examples, I think there is more value in becoming a widely skilled and capable hacker, than an coding [style] guru.
- espinchi 14y agoIt's never been a loved language, but there it is, pretty much all over the place so many years later. I wouldn't have guessed that either! I'd be more interested in reading on well-rehearsed, current predictions about Java. Many enterprises are starting to consider (mostly JVM-based) alternatives these days.
- zxcvb 14y agoYour last sentence isn't really true. Or should I say, you can't really prove that this is true for "most". My company has some pretty big telco and retail clients that are migrating their eCommerce platforms. Guess what technology the newer eCommerce platform is using? All Java baby... Same with the hedge funds down the road from me, all that automated low latency trading.. All Java.
- ximeng 14y agozxcvb you appear to be auto-dead
- w0utert 14y ago> I'd be more interested in reading on well-rehearsed, current predictions about Java. I predict Java-the-language will stick around for at least another decade, if not for the huge enterprise codebases and the years invested in Java training, it would be because of Android. The biggest mobile platform of the moment is Android, and it's completely focussed on Java (whether that's a good thing is a whole different discussion). Without Android, I think Java-the-language would fade very quickly, because IMO you can't possible assert the language is better in any way, for any kind of purpose, compared to the many alternatives. It's archaic, verbose, unnecessarily restrictive, misses most of the more modern language features, or bolted them on like ugly warts, it is not a very good RAD language because you need so much boilerplate, etc. In my experience (I've written about 100k lines of Java, many multiples of that in C, C++, Delphi, Python, Objective-C and PHP), Java is without doubt the least pleasant language to write. As for Java-the-platform, I think that part of Java will not go away quickly. The JVM is actually very good, and the Java JDK frameworks are extensive, well-documented and well-known. New languages on top of the JVM, that allow leveraging the JDK frameworks will remain very popular for a long time, for good reasons.
- bestes 14y agoPlease add the date...
- gbin 14y agoQuite good points except the major one : "I have a hunch that it won't be a very successful language"
- praptak 14y agoGranted, pg has not explicitly defined "successful" but it is clear from the context. By this definition Java is not successful.
- damian2000 14y agoSo why is it unsuccessful? Sure inside the browser its a piece of crap, but in terms of usage and the number of OSes and embedded processors it runs on, its surpassed probably only by C.
- praptak 14y agoIt is not popular among hackers.
- thebluesky 14y agoThe zero day applet exploits say otherwise ;)
- bcoates 14y agoIn 2001 Java had much broader ambitions than the (large) niches it has found itself in. Java's zeitgeist definition of success back then was creating a "anything and a JVM running Java" software monoculture even more extensive than C's.
- yen223 14y agoFirst off I must say that I like reading about past predictions. It can provide insights into how well current predictions may pan out in the future. It interesting that all the points made 11 years ago can still be made today, with the exceptions of #1("It has been so energetically hyped") and #8("It's pseudo-hip"). I guess it's true that the more things change, the more they stay the same.
- paulerdos 14y agoHmm... Android uses java. Therefore, Android smells suspicious?
- EzGraphs 14y agoJava might appear to be more successful than the (2001) article suggests, but it is geared towards java "the language." Its not a great language, but has found itself at the right place at the right time to address certain technical concerns (a "better" C++ at a time alternatives were being sought, concurrency with the rise of multi-core processing). Java "the platform" (the JVM) has been a bigger focus in recent days especially with additional language support (JRuby, Jython, Clojure, Groovy, Scala). This support has been expanded in each recent release and seems to be the basis for the majority of the articles that appear on HN (or at least that I notice).
- adwf 14y agoI've always felt that it's a language designed to help eliminate the worst of programming, which has the side-effect of limiting some of the best programming. So great for big businesses, but poor for hackers wanting to do cool stuff.
- strictfp 14y agoComing from a Perl and C++ background, Java was great because the designers dared to remove so many features from the language. In that sense, it made the efforts of the coders stand out more than the features of the language. This is an important message to an up-and-coming hacker. That said, Java is far from an ideal language. It lacks many features and is somewhat clunky. It does do a few things right, though. It hits a sweet spot being both simplistic and fast. By choosing a single packaging, developers could use all features everywhere, and start to rely on them. I think it certainly gave a boost to concurrent programming. IMO, Java also drove the acceptance of GC:ed languages. Now that Java has stagnated, I think that it is time for many old Javaites to abandon ship and transition to new languages. Perhaps it's best to let Java be. Leave it as a historical language that had its glory days. Perhaps someone will admire it for what it's designers dared to do. Perhaps for what it did for the community. Or perhaps new up-and-coming coders can look in those old code-bases and see some retro-style simplistic beauty.
- cageface 14y agoThanks to Android I've been writing a ton of Java code lately and, with a good IDE, it's not really that bad. It should steal a few tricks from C# though. If it adopted the var keyword and real lambdas, and something like LINQ, it would actually be a fairly pleasant language to work with.
- Silhouette 14y agoI think you captured the essence very nicely there: Java is the not-really-that-bad language. It's not very powerful and it lacks many useful features. On the other hand, you can do almost anything with it eventually and it's simple enough that stupid syntax mistakes are relatively rare in Java code. It's a solid tool for a journeyman, and a crude instrument for a master. But most people are never going to be masters, and most of those who will be one day aren't masters yet.
- cageface 14y agoIt's hard to love, I agree, but if you were designing something like Android from scratch now what language would you choose? I'm having a hard time thinking of reasonable alternatives. In the long run I'd like to see something like Go or Kotlin become options but really they're too left field right now.
- eckyptang 14y agoI'm probably going to get flamed for this but I think even for it's time, it's wrong on a few accounts and it stinks of elitism and an "I am better than thou" attitude rather than a discussion on relative merits or the preface which was slapped on to change the context. It sounds like it's written by someone who's comfortable status quo is threatened. Ubiquitous readily available knowledge is power, not elitist hackerism...
- Paul_S 14y ago"Historically, languages designed for other people to use have been bad: Cobol, PL/I, Pascal, Ada, C++. The good languages have been those that were designed for their own creators: C, Perl, Smalltalk, Lisp." Dazzling argumentative prowess. If I wrote that, I'd be called a troll and downvoted for senseless flaming. Historically people making baseless judgements like that have been proven to be wrong.
- Silhouette 14y agoI suppose it depends on your perspective. Obviously many orders of magnitude more useful code has been written in COBOL and C++ than in Smalltalk and Lisp. If the designers of COBOL and C++ set out to make languages that other people could use, then they succeeded spectacularly.
- sanderjd 14y ago> Obviously many orders of magnitude more useful code has been written in COBOL and C++ than in Smalltalk and Lisp. That may be true, but it is not at all obvious that it is. Do you have some sources to back up that claim?
- michaelochurch 14y agoNo, he's right. Now, Java is not such a terrible language. On a 1-to-10 scale, it's a solid 5. (5.01? Can I make that joke?) It's unpleasant and verbose, but the early Java community had real language designers, and even some heavyweights, behind it (including Odersky, designer of Scala) and believe me, they've made more good decisions than bad ones. (Language design is hard, yo.) They got Unicode right in a time where expert language designers had their heads in the sand on that one (UTF-16 is annoying, but it's a hell of a lot better than byte arrays and strings living in the same type.) However, Java was inevitably hijacked by the "commodity programmer" culture where businessmen make decisions based on risk-limiting amid mediocrity rather than clearing barriers and allowing excellence (as well as a few non-starters, cf. Paul Graham's notion of "Black Swan Farming") to shine. It's not a fun language to use, and the community that has grown up around it since its inception has shown bad taste (J2EE, Maven, Eclipse). But for a period of about a decade, Java was the best (if not only) choice for a variety of problems. Also, Java managed to succeed in the enterprise by feasting on Cobol's corpse, but it built up a Detroit: a good-enough but unattractive infrastructure that thrives when people have solid economic reasons to care about it, then is abandoned rapidly when the context changes. Groovy, Scala, and Clojure came out of an interesting insight: there's some stuff in the JVM ecosystem that's too valuable to abandon just because the Java language is (albeit slowly) dying. It'll be interesting to see how these languages evolve in the next 15 years. Clojure is (IMO) the best Lisp, and Scala is exciting as well... but there's a lot of cultural legacy to deal with (there's plenty of bad Scala code being written by recently-promoted Java programmers; most of them will improve massively as they get a hang of the language, I hope.) Step 1 is to either improve or fire the FactoryFactory crowd in its entirety.
- dasil003 14y ago> 9. It's designed for large organizations. Large organizations have different aims from hackers. This is where I think pg's bias steered him wrong. Hackers tend not to like Java (although that is less the case now with the JVM ecosystem being what it is), but hackers do not solely determine the success of technology. Furthermore, the type of hacker that pg is interested in—the lisper, the 10Xer, the startup founder—are in limited supply. Certainly they wield more influence per capita, but they still need critical mass to form a stable community around an open source platform in order to compete with large organizations. If you're looking to build a product or a small scale project, by all means find yourself a Grade-A hacker. If you want to make the next ubiquitous programming platform though, there are other qualities that are necessary. Consensus building is probably the most important skill that large organizations have that hackers will struggle with at scale. If you have a ton of management and mediocre programmers, it's easier to at least get them moving in the same direction, and they'll be more tolerant of the foibles of a designed-by-committee language. Sun had the perfect storm of strong technical talent to design a solid language, but also the large organization effects to market a new platform to enterprise decision makers. In a way I think pg's smell test might be more valid for an earlier era. He underestimated the influence of the mediocre programming armies, probably because back in the old days there weren't as many and they weren't as mediocre. This is just speculation on my part, but I have to imagine that the quality of the average programmer as declined over time as the numbers and appearance as a recognized career path have increased. I mean how many people were programmers in the 70s because they're parents thought that's what they should go to school for?
- InclinedPlane 14y agoSomething perhaps worth pointing out: modern tooling (issue tracking, source control, automated tests, continuous integration, etc.) make it easier and easier to extract productive work from mediocre developers, even at scale. One of the things it has taken me the longest to understand in my career is that you can build incredible things with sufficient effort, even if everything at every level is done half-assed.
- michaelochurch 14y ago
- coopdog 14y agoJava is horrible for prototyping, it's designed for large environments where management of complexity (through interfaces and some level of top down design) is desirable. It's not a hacker language. PG makes a very good point though - that today's teenagers (hackers?) are tomorrows CEOs. But not everyone can be above average, not every CEO can be of a technology company, and eventually those CEOs need to hire average programmers to do basic enterprise information systems work. Scala on the JVM with play framework is looking pretty agile these days too
- nshankar 14y agoWhere do you find Go in 2012. It is also sponsored by a large organization.
- mixmax 14y agolet me point to a comment made by PG yesterday when asked by thaumaturgy what it's like to have your every written (or spoken!) word analyzed by a bunch of people? It's pretty grim. I think that's one of the reasons I write fewer essays now. After I wrote this one, I had to go back and armor it by pre-empting anything I could imagine anyone willfully misunderstanding to use as a weapon in comment threads. The whole of footnote 1 is such armor for example. I essentially anticipated all the "No, what I said was" type comments I'd have had to make on HN and just included them in the essay. It's a uniquely bad combination to both write essays and run a forum. It's like having comments enabled on your blog whether you want them or not. http://news.ycombinator.com/item?id=4497691 http://news.ycombinator.com/item?id=4497691 Maybe we should be discussing the future of finance, crowdsourced funding, new programming paradigms or some other interesting forward looking stuff instead of spending our time looking backwards trying to poke holes in an essay written more than ten years ago.
- sgift 14y agoThere are two discussions waiting to happen here: 1. "Haha, what an idiot. He said Java will die and now it is still there, hahahaha." (obviously, an contrived example). This would be an useless "discussion". We wouldn't learn anything from it. 2. "Well, as he writes in the essay: predictions are hard. Let us check which predictions did hold and which didn't." - This discussion could provide useful lessons for the future. I hope for the second, but fear the first. In a few hours we will know the answer.
- michaelochurch 14y agoPaul Graham's meaning of "is dead" is "has stopped producing exciting ideas". He declared Microsoft dead in the mid-2000s. He wasn't saying "no one uses Microsoft products" or "Microsoft is out of business" (both demonstrably false) but that it was an evolutionary dead end. So far, he's been proven right. If Microsoft ever becomes a company worth caring about, it will be a different Microsoft from what it is now (cf. the parable about never stepping in the same river twice). He was wrong if his prediction were taken to apply to the JVM ecosystem, because Groovy and Scala and Clojure happened, but he was right about Java-the-language (it has limited uses, but you should be using at least Groovy if not Scala or Clojure for modern JVM development) and undeniably dead-on about Java-the-culture (which is the only thing he claimed the ability to evaluate, having admitted not using the language ever).
- jballanc 14y agoFor the Dune fans out there... Java and the JVM ecosystem strike me as very much like the programmers "Golden Path". That is (for those not familiar with Dune), Java represents a sort of "forced peace". Yes, things work. Yes, tools are available. Yes, there is decent, even good, documentation. No...nobody's happy about it. But then Java also bred the JVM, and today we have "the Scattering" (another Dune reference), where hackers, honest-to-goodness hackers, have spread out from this forced peace to build a new world. One that, while it will not be as peaceful as the uniform world of Java, will ensure that the JVM remains relevant long into the future.
- archangel_one 14y agoI always thought the Golden Path referred to the continuing fate of the human race and continued after Leto's death, not referring just to his forced peace. Still, I'm impressed that you managed to work a Dune metaphor into a Java discussion...
- hellrich 14y agoI've become really fond of Groovy during the last weeks. It's compatible with the huge number of existing Java code but more terse. Also its defaults seem more pragmatic, e.g., "==" comparing Strings by value or implicit setters/getters. And version 2 promises Java like performance (and type checks) for statically compiled code.
- easternmonk 14y agoRight premises wrong conclusion. Most of the things PG says about Java are true but his conclusion that it wont be successful is completely wrong. Java is not a darling of hackers for all the reasons he has mentioned but it is embraced by large organizations for the very same reasons PG mentions which means there is huge market of job for Java coders if not hackers.
- smoyer 14y agoI'll say it ... I love Java (and I'd been hacking in a for a couple years when PG wrote his article). I came from an embedded systems background and treated the JVM as my machine. I read and understood the JVM specification, and then the language specification. By that time it wasn't any different to me than writing for a uP or uC. At that time, Java was a fast-growing eco-system and our JUG met twice a month to keep up. While this was happening, I knew a lot of people like PG who did judge the book by its cover (and there were parts of the cover I didn't like). Don't be so hard on him as he admitted he never cracked it open. Out of curiousity, have any of the YC start-ups used Java? I'm curious whether he's still biased against it. (We can count JVM languages for half points).
- forgottenpaswrd 14y agoI believe that PG is totally right in this one. Android uses java not because it has been decided by the hackers but because of a top-down decision from a big organization. It made strategic and economic sense for them. All big organizations love java and most programmers are not hacker geniuses, they just want to pay the rent. So most programmers(in number) use java or C#. I use Java a lot, but is so bloated, slow and "I'm sorry, Dave. I'm afraid I can't do that." But it brought VMs to the table and that was a good contribution as it is really useful for some applications. Now that you could do that on C or C++ with LLVM but is easier on java. For a simple proof of concept I will use java, or python, when I 'm serious I will use c, c++ or obj c.
- mgkimsal 14y agoI remember java from 1998/99, and by 2001 was getting the 'you should do java' routine from some colleagues. "why?" "there's so many jobs out there for it - it must be better!" That seems very much like another 'wrapper' pg is talking about. I remember my immediate reaction was "there may be more jobs because it's takes twice as many people to write similar code as many other languages". In some ways I still feel that. The open source ecosystem around the JVM now does allow a much different level of productivity than the JVM offered in 1998. However, when I have to drop down to just plain-old-java, I'm reminded of how verbose and clunky the language is. When using the JVM, I'm typically on Groovy using some great Apache libs and such, both of which tend to shield the clunk away. :)
- smoyer 14y agoI just started a thread for HNers that would like to meet at JavaOne - see http://news.ycombinator.com/item?id=4504803 http://news.ycombinator.com/item?id=4504803 for a discussion of time and place.
- stevenelliottjr 14y agoIndeed this as an interesting topic; however, I think that many missed the point of the essay altogether. He wasn't saying that Java is a horrible language just that it's not viewed favorably by "hackers". I think that he is probably right but I didn't know he spoke for hackers everywhere. Java is just another tool in the box that almost everyone has to use at some point. Is it ideal? No. Is it perfect? Nope. Is it fun to write software with? Sometimes. I spend most of my days writing Python code with either Django or Pyramid and also have problems with it from time to time. Though I consider Python my "favorite" language it's far from perfect! All languages/platforms have their problems and tradeoffs and there is little you can do about it other than create your own. Just because Java is not viewed favorably by some random sample of hackers that pg may or may not know doesn't mean it's not an effective language. Hell, I think C and C++ are both horrible but I have to use them sometimes and while its not ideal for me it is what it is. If you wanna get paid, you'll use what you have to. (Joel Spolsky cover your eyes) I went to a Java school to computer science [GASP!] and it was fine. I already knew how to code so it was just a formality for me; however now that I'm looking at Android development I'm glad that I learned some Java along the way. A hacker is a hacker no matter what language they use and most programmers are not good enough to be called hackers anyway. Predictions are very much like arses; everyone has them and they usually stink.
- Draiken 14y agoExactly. All this talk about mediocre programmers use java and good programmers use "new cool hipster" languages is just a very biased statement. There are hackers in every language and there are mediocre programmers in every language. I've seen more mediocre programmers wanting to learn the new hipster languages than java. In 10 years from now these same languages will be on the java spot, and the cycle will continue. But it does amuse me how so many people think they are better programmers because they use language X or Y. Love the predictions analogy :p
- mgkimsal 14y agoAnother thought just struck me - a friend was relaying his thoughts on Java/JVM vs other languages. Again, related to pg's wrappers, the core thought was "Java as a language was more designed for the computer than a developer. Something like perl was more designed for a developer rather than the computer". The point was more expository than that, but that's stuck with me. Static languages in general seem to be that way, whereas dynamic langs (perl, ruby, php, etc), will make operations much simpler for a dev to implement, even at the expense of speed/clarity to the underlying os/vm. Perhaps there's more nuance here that I'm missing, or perhaps this 'wrapper' fits inside one of pg's wrappers already?
- erichocean 14y agoScala is statically typed, runs on the JVM, and yet feels very much like writing Ruby or Python to me. The only time you have to add typing in the codes is where I would usually add it anyway in a dynamic language, via comments or stereotypically-named function arguments.
- michaelochurch 14y agoJava-the-language filled a need for some time, and there's a lot of value staked on the JVM, but Java-the-culture needs to die, and the sooner the better. http://michaelochurch.wordpress.com/2012/04/13/java-shop-politics/ http://michaelochurch.wordpress.com/2012/04/13/java-shop-pol...
- kamaal 14y agoI don't why you are being downvoted, you have excellent point in your post. Having made to work like a donkey in the mill migrating large code bases in Mega corps, I felt the post was a template biography of every engineer like me. Besides I see no end to 'Java Shop Politics' any time soon. Like somebody else on this thread- 'Java is basically a Insurance policy'.
- erichocean 14y agoFantastic article, and a perfect candidate for HN readers. C++ exists because someone had a fever dream in which these two classes of vehicles got mixed up and thought, “I’m going to put wings on a fucking tank”.
- reinhardt 14y agoIndeed. Another gem: I haven’t map-reduced a toaster cluster for years.
- rvijapurapu 14y agoHaving developed in Java for years, I agree with some of the points which PG has predicted 11yrs ago! That said, using Java is sort of a insurance policy. 1. It's easy to find developers. _Sometimes_ easier to outsource modules. 2. It's usually hard to make mistakes in Java (you can screw up, if you want to) - mainly due to great tooling and excellent time-tested frameworks which help a tonne. 3. Has good complementary languages (Scala, Groovy, JRuby..), which interop well with other frameworks at large. 3. JVM does black-magic for you. I guess committee did make a decent pick then.
- moondowner 14y agoJVM does not do black magic. You can donwload the source if you want to see what's going on: http://openjdk.java.net/groups/hotspot/ http://openjdk.java.net/groups/hotspot/
- rvijapurapu 14y agoI know... I was talking about the optimizations which JVM does on fly.
- moondowner 14y agoYou're right about that, and as a plus, depending on which JVM options you use it can act differently http://www.xenoc.demon.co.uk/A%20Collection%20of%20JVM%20Options.htm http://www.xenoc.demon.co.uk/A%20Collection%20of%20JVM%20Opt...
- oellegaard 14y agoI think he has a lot of good points. I think if they would finally stop teaching Java in CS and other IT-related educations and Android would get proper support for other languages, Java(language) would slowly fade away.
- sunraa 14y agoI'm not sure I find much to quibble with in the essay. In fact I find it almost prescient. Having worked with Java in an enterprise setting for over 12 years almost everything in that essay rings true. As we are acutely aware the enterprise beast moves to a very different beat - namely the vendors looking to make their numbers for the year. You're an IBM shop or a Microsoft shop. The decision's been made for you. And there's nothing wrong with that. As someone else pointed out, you're buying tooling, support and in the case of IBM - hardware. It is the almost the COBOL of this generation.
- brudgers 14y ago"I have a hunch that it won't be a very successful" As a general case, the first thing which struck me when rereading this essay was the way in which Graham's writing style (and his draft readers' editing) has improved. Today, a similarly structured essay would clearly answer the question, "Successful how?"
- Rickasaurus 14y agoAfter reading this I'm completely convinced that Go will be one of the world's most used languages within a decade.
- astine 14y agoBy that logic, Google will cease to exist!
- tegeek 14y agoBack in school days I learned about programming paradigms, programming language technologies and cutting edge research on programming languages. I learned Java and also Haskell. Most of my class mates including all the teachers knew this that any industry grade language needs to provide multi-paradigm support out of box or it'll die. If a species is not adaptable to its environment, it'll die. And Java is one of those species.
- jarsj 14y agoI built a new programming language in scheme, wrote a compiler in C, map reduces in C++. I hate struts, hibernate and all shitty enterprise frameworks but I can proudly say that I love Java. I have used it for Speech synthesis, Image processing, Machine Learning, NLP and of-course Search. It's awesome.
- yequalsx 14y agoIt is very interesting and worth pointing out that in the beginning of the essay says 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). Most of the comments here on HN have been about Java and not about hackers' radars. This is not necessarily bad but it is interesting. I've seen lots of examples of this politics but not on a topic about technology. Does the topic of programming languages have the same sort of emotional sensitivity that politics does?
- moondowner 14y agoSpot on comment. There are even comments regarding Java in which is obvious that the commenter doesn't have good knowledge of either Java or the JVM.
- erichocean 14y agoOkay, I think I fit the "hacker" name (whatever that is) as well as anyone. And for my next project, easily the most ambitious I've undertaken, I'm working on the JVM. If you'd asked me three years ago if I'd ever write Java code, the answer would be no. I don't really write Java though – I'm mostly using Scala, along with a couple of libraries that were written in Java, that I patch (e.g. Cassandra). Point is, hackers are choosing the JVM today, whether its Scala, Clojure, Groovy, or JRuby, Jython, and the like. And having Java in the mix, from my perspective, is not at all bad. It means there's tonnes of relatively usable libraries out there, that are easy to tweak without breaking things, that have had plenty of time to bake. The Java classloader mechanism is kind of nasty when it's paired with application servers, but consider on its own, it's allowing us to do live rollouts of new applications written in Scala without restarting the JVM. (We don't use an application server, we effectively wrote our own.) Akka is like Erlang-light, and paired with Scala, makes the kinds of things people are wanting to do with Node.js (which I ported to Solaris, along with v8) easier, faster, and safer. tl;dr Hackers are starting to choose the JVM, and the modern languages built on top of it (Scala, Groovy, Clojure) and the huge base of existing Java libs is making that possible -- just like the huge base of C/C++ libs made choosing Python, Ruby, or Perl reasonable a decade ago.
- 6ren 14y ago> a hunch that it [Java] won't be a very successful language He lists COBOL as a bad language - but it's been very successful. So I think he's not really writing about "success", but about what hackers like. Interpreted this way, he's accurate: hackers don't like Java. Businesses like investments that keep returning value - for languages, that means compatibility and portability. Hackers like to change things - expressiveness and power. Java code from years ago still works; it's also portable across machines and OSes. In contrast, ruby broke my simple toy code, after just a few months, in a minor point-release. Similarly, I believe there are many incompatible versions of lisp, and many hackers write their own libraries rather than reuse, so there's little standardisation. Different things are valued. So I agree with pg's theme that if businesses like it, hackers won't. (There's some factual inaccuracies in the rest, but that wasn't his point.)
- stickfigure 14y agohackers don't like Java Speak for yourself.
- rbanffy 14y agoExcept for the parts where he predicted Java's failure and FreeBSD's dominance, I see no big problem. He even predicted Sun's fate.
- gst 14y agoI like Java - and I say this as someone who mostly used Python for the last 10 years (I learned other languages for fun, but did most "productive" work in Python). My main issue with Java a decade ago was all the bloat in the framework. Want to write a Web application? Just use J2EE and write a few factory factories. Or use the "lightweight" Spring alternative, that allows you to write plenty of XML code. This bloat got much better during the recent years and a number of sane frameworks have evolved. Want to write a Web service? Use Dropwizward. A Web application? There's the Play framework. Java as a language is pretty nice. Yes - it has its warts, but the language is relatively simple to understand and isn't missing too many important features (Lambdas would be nice). In addition the type system really helps a lot when having larger codebases. Yes - it's not perfect (type erasure, ...), but it mostly does its job.
- thebluesky 14y agoYour comments about Spring (not really lightweight) and Play (lightweight) are spot on.
- loumf 14y agoThe only prediction he made is that he would personally not like to program in it and that he could safely ignore it. I think that prediction has come true. He ignored it and that had no detrimental effect on him. Not ignoring it would probably not have had a benefit. He didn't say that Java will die, that some people won't benefit from it, that useful things won't be made from it. It's way too large for some good not to come out of it.
- jyou 14y agoI wholeheartedly agree with him - I wish I had read this essay in 2001, I wish every Java developer, especially whose who were live in US, had read it. There was nothing wrong of Java in 2001, but, you should have caught the smell of corporate, protocol, committee, process, outsourcing, offshoring ...
- TheCapn 14y agoI don't think he's wrong in any sense of the word when he wrote it. From the opening he's very forward about his "hacker radar". From a hacker perspective, Java is typically a poor choice. But it didn't succeed on hacker merits so much as it did on sponsorship and forward pushing from business types. Any competent programmer who has been in the field for long enough sees Java's issues and strengths and can judge it impartially but I'd be hard off to find a single one that felt it was the "best" language by any means.
- 16s 14y agoI love C++ and I know guys who love Java. And they are great systems programmers. I have nothing against Java the language (I do dislike the focus on OOP), but do have issues with JVMs (I prefer real machines rather than virtual ones), however, I would not say that no one loves Java. It has a place and is useful, and is appreciated, by many.
- njharman 14y agoThese predictions are correct, for the values of popularity and world pg and HN deal with. Startups. The thing not cleary stated (or possibly understood) is that "large organizations" far out strip startups in number of employees, amount of code written, advertising budgets. And Java is very popular in "large organizations".
- EternalFury 14y agoLike or dislike Java, it has changed and transformed enterprise software fundamentally and remains one of the top used languages in the world. And I thought it would happen the way it did. Python was already around back then in 1994, but nobody cared because Java had Duke and was being pushed as the new idiom for everything networked. Hacker's radar is a valuable instinct, but when a reputable commercial entity acts as a wise custodian, behind a technology with technical merit, effort can easily trigger and accelerate grass root adoption.
- 10098 14y ago> 4. No one loves it. I think he got that one right: none of my colleagues who write Java are that much into it. They just have to.
- pg 14y agoWell, is Java a clean, beautiful powerful language that people love programming in?
- tikhonj 14y agoThat's the really interesting bit--it isn't. Most of your points are mostly correct. But that doesn't stop its being popular. This shouldn't surprise people either; sitcoms, junk food and package tours are also very popular. More generally, quality is very rarely positively and consistently correlated with popularity. And yet, in the sphere of programming languages and operating systems, it seems people assume that it does correlate. Please don't base your choice of technology exclusively off what most people use.
- pg 14y agoI never predicted it wouldn't be popular. It was already popular when I wrote that.
- deleted 14y ago[deleted]
- tptacek 14y agoIf anything, it was more popular; in 2001, Java was the "modern" mainstream choice for backend in financials and enterprise L.O.B. applications, where today it's simply the incumbent choice. People forget that Rails was a primarily a reaction to J2EE's hegemony over "professional" (to use the closest word I can think of to describe the concept) web backend development. A significant fraction of our enterprise clients today are entertaining a new "modern" platform to supplant Java, like Clojure (in finance) or Scala (in startups). Maybe it's not occurring to people that Clojure, Scala, and even Groovy weren't options in 2001. It was Java, C#, or PHP, or Perl, or C/C++.
- Zimahl 14y agoI have been developing Java since 1996. I have a written a lot of Java so I'm probably a pretty strong example of a Java developer. I'm an above average developer (and that might be generous) but not much of a hacker. So let's get to it. Is Java clean and beautiful? Sure, it's easy to read and just about anyone who has read any other language can figure out what's going on. Is Java powerful? You can do just about whatever you want with it. Early on it was pretty tough to get to the native level but that has become less of an issue over the years. It still doesn't do graphics all that well so it's never been a great option for game development. Do people love programming it? Programming is tedious work and good languages help reduce the tedium. I'm not sure Java reduces the tedium enough, it may even increase it. But this is what makes it cleaner than other other languages. Sometimes the tedium that it doesn't reduce is how others can come in and know what I was thinking then I developed it. However, POJOs with getters and setters are tedium no one explicitly needs. I'm currently working on a new project (in Java) that I found I was building more classes than I felt I needed. A lot of getters and setters, object managers for each object, DAOs for each object, and each object itself. All that before anything even makes it into or out of a database. I thought if it would be easier in any other language and the answer was yes, but only temporarily. Once this boilerplate stuff is done I would have a very robust application that is easy to refactor if necessary and just about anyone can add to it will little trouble. That said, I've been meaning to try out scala and python. I tried ruby but found it a little too young (but that was a couple years ago). I also said I'm not much of a hacker so I tend to spend my free time doing things other than development. I'll probably get around to learning those languages right after I learn to play the piano and can speak fluent German.
- dotborg2 14y ago> So far, Java seems like a stinker to me. I've never written a Java program
- sampsonjs 14y agoWhy's this ancient text from the canon of Graham getting resubmitted? So we can all have a good laugh? So the readers of this site can have a big argument over the definition of "success"? "Sure Java sees a lot of use by clueless corporations, but teh haxors disdain it, therefore it's a failure!" Incidentally, Google can be added to the list of big dummies who use Java.
- ww520 14y agoI actually like Java very much and am tremendously productive with it. It's a simple language and simplicity helps in many areas. It got many things right. It has a comprehensive standard library. Threading is excellent. Performance is excellent. Typing is helpful. Its support for functional programming is lacking, which is why a lot of people from fp background have a dim view of it.
- pohl 14y agoWhile this rings true after all these years, had it not been for Java those of us living in the midwest would have either had to move away or spend the intervening years coding in VB6.
- ChuckMcM 14y agoThat's one I hadn't read, although sadly I agree with much of it. As one of the people who worked on the 'LiveOak' project which was the final, and presumptively last gasp, of Java before Sun 'redeployed' all of us, there was this really modest view of what the language was. And then it was released and folks started saying "Gee if people deliver programs in the browser, and Sun owns the language/environment of the browser, they are going to freeze Microsoft right out of the market, brilliant!" Except nobody who was actually a part of the Java group said that, they said "Gee you can push a chemical molecule viewer to the browser at the same time you push a model, that will let you publish stuff without having to wait for browsers to 'catch up'" Sun corporate had their own ideas though, and seeing it as a way to 'attack Microsoft' (which looked pretty unassailable in 1995) and a lot of other people were feeling the same way, and the language got hijacked. That was a sad thing indeed. I feel sorry for the developers who create a technology that is perceived as the way to 'kill Apple' or 'kill Google' since it will be very popular and ultimately corrupted by those who would seek to use it in that role. I have the misfortune of having worked on something which Sun tried to kill Microsoft with and Oracle tried to damage Google with. 2 for 2, yuck. So if you can separate the language from the politics, there is a lot to like, it has been influential in a number of positive ways. But the taint on the language from the politics will be its most enduring legacy I suspect.
- kaffiene 14y ago"So far, Java seems like a stinker to me. 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." Yeah, it pretty much flopped.
- markokrajnc 14y ago"No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I've never heard anyone say that they loved Java." I love Java. I loved Smalltalk until 1996, then I read Java White Paper and VM Specification and I fell in love with Java and I am still loving it more than any other programming language. I programmed in Basic, Assembler, Pascal, Oberon, C, C++, Smalltalk, Perl, PHP, Python, Ruby (on Rails) and used many technologies. Smalltalk was my love from 1992 until 1996... I could write a lot about why do I love Java. If somebody is interested, I can explain... "People are forced to use it. ... if the technology was good, they'd have used it voluntarily." I am using it voluntarily for all my projects more than 15 years now. I even migrated all my programs from other languages to Java... I am regularly checking new programming languages - recently I tried out Dart and Go - and I still can not find a better programming language for me... Java is still Nr. 1! I confess: I love Java. :-)
- hcarvalhoalves 14y ago"Historically, languages designed for other people to use have been bad: Cobol, PL/I, Pascal, Ada, C++. The good languages have been those that were designed for their own creators: C, Perl, Smalltalk, Lisp." They might not be the most beautiful languages ever invented, but they power a great deal of real-world applications. If people managed to write useful software with those, I consider that a success. On the other hand, I probably never used or depended on any software written in Smalltalk in my life.
- fecak 14y agoPersonally I don't think the accuracy or inaccuracy (both are debatable) of the opinion is that interesting, and I've run a Java Users Group for over 12 years. I felt the article is much more interesting as a look inside a hacker's head as to what non-technical factors influence his/her opinions (and ultimately decisions) about a technology. I wrote a blog post breaking down his reasoning for the 'stink' and how those are/aren't applicable to today's software landscape. http://jobtipsforgeeks.com/2012/09/11/howhackerschoosetools/ http://jobtipsforgeeks.com/2012/09/11/howhackerschoosetools/ http://news.ycombinator.com/item?id=4510455 http://news.ycombinator.com/item?id=4510455 to discuss on HN