 |
How did Java end up on top?
Posted by malcolmdavis on July 12, 2005 at 10:33 PM | Comments (6)
Last night I read/listened to a column at http://java.sys-con.com/read/108718.htm. In the column, Dvorak says, “I’m not going to say it’s transforming but I’m going to say it’s popular.”
Did this guy really say this? The tone of the message was that Java was a novelty. That somehow everybody started writing Java software, and the momentum carried Java up the ladder of success.
Where did all the momentum come from? On Windows, VB already had a hold on the market when Java 2 appeared. On UNIX, there were many C/C++ diehards that said Java was too slow and a memory hog. Microsoft was trying it’s best to kill Java, even announcing at one Tech Ed conference that “Java was dead and Microsoft had won”. COBAL was the big rage in the late 90’s as companies tried to fend off the Millennium bug. How did all the software get written that made Java a novelty? Dvorak even mentioned later in the same interview that Sun spent $0 on the marketing of Java. VB & C++ dogmatist, business concerns, Microsoft marketing engine, Sun’s lack of marketing skills, and Java still ends up on top.
Most of us can agree that neither Java nor Sun is perfect, but is Java transforming? How did Java end up on top? Does the technology need to be at the level of the atomic bomb, penicillin, or “the pill” to make Dvorak’s list of transforming technologies?
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
Speaking as a programmer who has used Pascal, C, C++, Java (and many other languages), three things stand out in Java's favor.
1. Java is a true object-oriented language (unlike C++). Garbage collection in particular makes it very clean.
2. Java is easy to learn. A rather straightforward and sparse syntax makes it easier to read than equivalent C++ code. There is also less code to write for a given task.
3. Not only is it free, but it compiles and runs just about anywhere. This is similar to the reason that Unix is more popular than Windows.
Posted by: loadmaster on July 13, 2005 at 10:08 AM
-
When I started on Java (1.01 not that anyone is counting) it stood out in stark contrast to a variety of other languages. Maybe Lisp and Smalltalk and other 'before their time' languages were technically better. I still remember the ivory tower types going on about how Java wasn't a true OO language because it had primitives. Eh whatever, Java incorporated a lot of the good ideas from a wide range of different languages. You could argue that the only thing original about Java was that it incorporated all the good ideas from these other languages.
So partly it was timing. Partly it was that it was quick and easy to get up and running. The hardest part of setup was classpaths, and even that got better and easier over time. Nowdays though its a lot harder because most of the tools want you to also know other things, eg Ant (an art in itself).
If we contrast Java with VB, we find two huge differences: in VB slapping together an ugly UI is really easy, whereas in Java if some method isn't doing what you expect, you can 'look under the hood' to find out what is really going on. So even though Java was harder to build a UI with, it was in some respects faster to the finish line because debgging was a lot easier.
Another thing which happened was that VB used to have amazing help files from versions 3.0 through 5.0 they were seriously about a decade ahead of anyone else. Unfortunately sometimes they were wrong or misleading (see the previous point). But most of the time they were great. Then with version 6.0 they all got lumped together in one huge, badly indexed, attrocity. All of a sudden VB had lost the other half of its main competitive advantage.
Also, in 95/96 Java made it out of the technical section of the news, and into other sections, such as the business section. When Java first came out, I dismissed it as massively overhyped. It wasn't until I took a trip to the US and was looking through a paper (USA Today I think it was) that I noticed that it was cropping up well outside of the news pages which were normally roped off for the geeky stuff. It wasn't just hype, big companies were using it (eg UPS for package tracking I think?) and it was getting mentioned in areas of the paper which C*Os would read.
Another timing related advantage had to do with networking, which was becoming the in thing at about the time Java came out. Anyone that has tried programmed sockets in Visual C++ vs Java is going to be able to relate to this one. Java has a number of APIs which take some quite difficult things and make them really easy. Sockets in Java are very easy.... and then they put out RMI which made them even easier!
To some extent Java was also able to piggyback off the work MS had done with ODBC. By beating everyone with the ODBC stick they then made it possible for JDBC to become widespread since we could leverage ODBC with JDBC-ODBC bridges. If Java hadn't been able to talk to just about any database fairly easily it might not have become so popular.
Nowdays I think Java is a lot harder to get into. Setup is worse now, the syntax is harder now (with the 1.5 changes). Java is still quite readable though. I realise other languages also allow you to peek under the hood at the base classes/libraries, but because a lot of effort went into making Java readable it makes Java better for figuring out what is really going on. Also, looking at the base classes was usually a good lesson in style and/or a learning opportunity of some kind (for instance the Thread class, I didn't really get what the deal with Thread and Runnable was until I looked at the code.
Posted by: rickcarson on July 13, 2005 at 05:43 PM
-
Amongst the obvious, I'd blame "free" for java's success.
And amongst the oft-overlooked, I'd blame the javadoc tool.
Posted by: brucechapman on July 14, 2005 at 05:47 PM
-
Java is not just a language... it is a culture!
Posted by: jakesp on July 14, 2005 at 11:39 PM
-
Here's a thought...
Java and the web were born together.
Java was freely available, and more importantly great documentation and great tutorials were waiting for us out there on the web.
No need to buy a book. No need to purchase a subscription and wait for a CD. Java was there just a few clicks away with next to no barrier to entry.
Not a bad recipe for success.
Posted by: johnreynolds on July 22, 2005 at 11:30 AM
-
One of the big advantages of Java, in my experience, is in developing for server environments that lack good development tools. In my current job, I write a lot of code for back end batch processes that run under HP Unix. Before I arrived, these apps were all written using VIM (a GUI-fied VI clone) and Pro*C. Or even worse, plain vanilla VI through a Unix terminal emulator (Putty).
There was no IDE, no debugger, virtually nothing, and it took a long time for newcomers to get used to the environment. When I looked at what I had to do, I decided I would much rather develop on my PC, because tools such as Eclipse were available.
Using my PC workstation for a development environment, I can take advantage of all the tools that work well there. Once I've got the app debugged, I can run it on the Unix server, and I can be guaranteed that will perform exactly as it did on my PC. Now that's productivity!
Posted by: dadams07 on September 08, 2005 at 06:14 AM
|