 |
Beyond Java, but not beyond the JVM
Posted by johnreynolds on October 20, 2005 at 09:06 AM | Comments (11)
Bruce Tate's views on Java are always noteworthy. Bruce has a low tolerance for things that don't quite make sense, and he's adept at capturing the essence of the problem in a clever phrase or analogy... I always think of Bruce when I am in a restaraunt and see Elephant on the menu ;-)
I've yet to read Bruce Tate's new book, Beyond Java, but I think that I already get the point from reading articles that have accompanied the release.
Java and web development grew up together, but Java has never really been tailored for web development. It's a general purpose language that is good for many things, but not particularly great for generating browser-based applications.
This puts Java at a distinct disadvantage in terms of ease-of-use when compared to web-UI-only languages such as PHP. Not really a big surprise.
The big surprise is that nobody (that I know of) has built a web-domain-specific language on top of the JVM. Perhaps JSP was a step in that direction, but when you compare it with Ruby on Rails it's just not in the same league.
Java's web-based-ui impedance mismatch is mirrored on the desktop front. Hans Muller shared with us the good news that Swing is now the Dominant GUI Toolkit, but the blog also pointed out that WinForms was the previous king-of-the-hill.
WinForms is a domain-specific toolkit for building form-based applications. Form-based applications aren't sexy or exciting, but they are what most businesses need, so it's no surprise that a form-base toolkit was the reigning number one.
Java may lose its dominance as our day-to-day language of choice, domain-specific development environment/tools are a natural progression, and something that we should embrace. What we shouldn't embrace is the demise of the JVM. The JVM can support any number of languages, as Javascript (Rhino), Jython, and Groovy demonstrate. There is no need to throw this baby out with the bath water.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
What we shouldn't embrace is the demise of the JVM. The JVM can support any number of languages, as Javascript (Rhino), Jython, and Groovy demonstrate.Spot on. In fact, Tate says several times in the book that the ability to run in the JVM is one of the basic requirements of whatever succeds Java. That's why he's tracking JRuby so closely, with an eye on when it can run Rails.
Posted by: invalidname on October 20, 2005 at 12:32 PM
-
So far the way I see it, the language have come one after other i.e. machine code, assembly, 3gl structured languages and scripting language being the next stop (as some of the gurus have said). I think instead of seeing scripting language as a replacement of structured language like Java, C, etc, it is better to look at scripting language as something that are built over structured language. The idea being that the third party or OSS frameworks would be written in structured langauges and would expose hooks to integrate the business logic. This business logic would be written using scripting language and business processes itself will be more of a configuration process (like a workflow configuration) using framework rather than coding so that you get speed of structured language and features of scripting language.
At the moment I am not sure how the frontend is going to be developed in this development model.
Posted by: shekharjha on October 21, 2005 at 05:24 AM
-
I think instead of seeing scripting language as a replacement of structured language like Java, C, etc, it is better to look at scripting language as something that are built over structured language.
Totally agree with you, shekharjha. If I had to write something to transform XML, I would use XSLT not Java. If I had to write a build script, I would use Ant scripts. Writing these in pure Java code would take longer. But both of these would run on a JVM.
I don't believe that any of the scripting languages will replace Java. Rather that they will supplement it. We can still use Java to use all these scripting languages together in an end product.
Posted by: prunge on October 21, 2005 at 06:12 AM
-
shekharjha and prunge,
I think you're right on the money. Look at BPEL for example... it's a language tailored to business processes, but many BPEL engines are written in Java, as are many of the services that a BPEL script orchestrates.
--JohnR
Posted by: johnreynolds on October 21, 2005 at 08:21 AM
-
Great stuff as always, John. In Beyond Java, I make this point as well.
Posted by: batate on October 21, 2005 at 03:21 PM
-
The problem is: Java EE ignores "content oriented" web application development. It only targets enterprise and corporate application development.
Bill Shannon, of Sun, explicitly said this in his presentation at Java One 2005, in which he showed a pyramid representing Developer Segmentation, with the following tiers (starting from the top):
Enterprise -- "Java owns this space"
Corporate
Content
(There is a on-demand webcast of it here:
2005 JavaOne Webcasts. Fast foward to 2:14:00)
Bill Shannon says Java EE is targeted to enterprise and corporate environments (he says "Java owns this space"), but not to "content" oriented sites (even though he admits there are "vast quantities of developers" in this space.)
I think that is a poor strategy. Java should compete on all levels. The bottom tier is important because that's were most developers start out. (We must walk before we run, right.) If we want to grow the Java community, if is foolish to ignore this market. Java is being attacked from the bottom by PHP and now Ruby.
Personally, I think it is more of a marketing problem than a technology problem. JSP 2.0 with JSTL makes Java web development quite pleasant. I think the mind reeling complexity and misuse of EJB has tainted all of J2EE as being overly complex. The simplifications achieved in EJB 3.0 is a hopeful sign.
Posted by: ahalsey on October 21, 2005 at 04:20 PM
-
With respect to Bruce, I strongly disagree with him on several points.
I do agree with Bruce that the current state of the art in web frameworks is abysmal. I disagree about his conclusion. The answer isn't necessarily Ruby though - in particular there is nothing stopping us from using conventions and reflection in Java. To suggest that those features are unique to Ruby is disingenuous.
Also, his example of a short Ruby program is interesting. It seems that he is in favour of multiple declarations on a single line. And he seems to have somehow missed out all the really horrible scoping symbols on the front of his variable names. Fascinating. I'll keep my single line declarations thanks. Also, please hold the punctuation in variable names. If you think hungarian notation is bad, Ruby is even worse. (Though I would concede the point that to a non-native language programmer the punctuation probably isn't hurting comprehension any over camel casing and other good readability practices).
The answer to the Java web frameworks problem is to simply realise that servlets are the way to go. Servlets combined with a good understanding of OO are better by far than JSPs or any of the frameworks that build on JSPs (and are worse than plain JSPs).
There is no problem so simple that it cannot be complicated by adding an extra layer of indirection.
Lastly, John I strongly disagree that Java was not a web focused language when it was introduced. Perhaps a history lesson is in order? Do you remember a little thing called an Applet? * In any case, it is relatively easy to disprove: simply contrast the 'ease' of programming sockets in c or c++ versus the ease of programming with sockets in Java. It is an enormous difference. Sockets in Java are ridiculously easy. Now lets think about how RMI makes sockets even easier! i disprove it thus! (kicks code and stubs toe. Pun intended)
* Of course then Flash came along and was a lot prettier, so that even though you can't do as much with it, it seems to have won the 'mindshare' on the browser. I don't know if Ruby is doing anything to displace Flash as the browser king of the hill. Though there is an argument that could be made that any language based solution is not going to displace Flash, because the people who write Flash apps do _not_ want to learn how to program.
Wake me when Ruby is 'better' than Java _and_ Flash (and Ajax too :-)
Posted by: rickcarson on October 23, 2005 at 08:17 PM
-
"John I strongly disagree that Java was not a web focused language when it was introduced. "
I understand your point... It would be more accurate to say that Java is not a browser/HTML focused language (unlike PHP and JSP).
--JohnR
Posted by: johnreynolds on October 24, 2005 at 04:10 AM
-
This is really an excellent blog. I want to clear up a couple of ideas in Beyond Java, because a few Ruby on Rails ideas have gotten most of the press. It really is not a RoR book, though I think RoR is a potential catalyst for a dynamic language, and that hasn't happened for a while.
1) I don't try to pick a winner. I talk about Ruby, because I couldn't talk about all dynamic languages in a short book, and I think Ruby has a potential catalyst in Rails. Without a catalyst, a language will not pop. My point is that Java is no longer approachable as a technology, and conditions are ripe for an alternative to emerge.
2) The JVM is critical to the next successful language. JRuby is not there yet, but it may well get there. Community is also critical. These two things also represent the crown jewels of the Java programming language.
3) I point out that Java is the most successful language for our time, and for good reasons. It was a perfect storm. But it won't last forever, and we had to make compromises to make it successful that we are paying for now.
I wasn't willing, at that time, to make a stronger statement. But I think the statement I made was worth making. Java's at a crossroads. It appears to be dominant, but a few alternatives look good to me.
By the way, you're in Austin too...we should do lunch some time.
Posted by: batate on October 24, 2005 at 09:33 AM
-
"By the way, you're in Austin too...we should do lunch some time. "
Heck, with you, Eitan, and Greg all here in Austin, we should host a java.net blogger convention.
All we need to do is find a restaraunt that doesn't serve Elephant ;-)
--JohnR
Posted by: johnreynolds on October 24, 2005 at 11:23 AM
-
Ahalse quotes; Bill Shannon, of Sun, explicitly said this in his presentation at Java One 2005, in which he showed a pyramid representing Developer Segmentation, with the following tiers (starting from the top):
1. Enterprise -- "Java owns this space"
2. Corporate
3. Content
////// I read this only now. I am very alarmed. Content-oriented development will be our future. e.g. For how long can Google survive on free, cheap, and therefore worhtless content? They mus pay for quality content soooner rahter than later. Sun must capture and own this set of developers! I dont need to quote Drucker etc about importance fo captruing low-end markets, do I?????
a well-wisher of Sun and Java
geroge naing
Posted by: george_naing on March 02, 2006 at 08:04 PM
|