JBoss - A Developer's Notebook 116
Pankaj Kumar writes "Controversies aside, JBoss has emerged as a credible
alternative to commercial J2EE App Servers for developing and deploying Java based server
applications. Besides the usual advantages of open source and GPL licensing, what sets it
apart is its JMX based
microkernel, a light-weight framework to run independently developed Java programs within a single
JVM. Together, these make it possible for one to pick and choose
components and assemble a custom server anywhere between the two extremes (and beyond!) of a
simple Servlet Container and a full-fledged J2EE Server. JBoss - A Developer's Notebook by Norman Richards, a JBoss developer at JBoss, Inc., and Sam Griffith, Jr., a software consultant and trainer, is a no-fluff How-To guide on doing stuff with JBoss in O'Reilly's new Developer Notebook format." Read on for Kumar's review of the book.
JBoss - A Developer's Notebook | |
author | Norman Richards & Sam Griffith, Jr. |
pages | 150 |
publisher | O' Reilly |
rating | 7 |
reviewer | Pankaj Kumar |
ISBN | 0596100078 |
summary | A How To Guide on Working With JBoss |
True to the format, this book doesn't waste pages on paeans to architectural elegance, internal design or conceptual deliberations, and limits itself to the basic needs of most professionals -- how do I do this or that with JBoss, where to start, what steps to carry out or what code to write, and what happens behind the curtains.
Books dealing with J2EE products tend to be fat and bulky, but this (note)book doesn't fall in that category. By covering only JBoss specific aspects and avoiding general J2EE topics, this rather thin book has managed to include a good deal of difficult-to-find information about JBoss. In fact, while going through its pages, I got a feeling that the authors have taken care to be different and complementary to the online documentation available in the JBoss Application Server Guide and JBoss Wiki.
In support of the above claim, let me compare the coverage of how to deploy applications under JBoss, an important activity with any J2EE container, in the JBoss Guide, JBoss Wiki, and the book under review. The JBoss Guide covers application deployment as part of the JMX based microkernel architecture and design, describing, in excruciating detail, the internal components responsible for the deployment and and how they interact. The JBoss Wiki takes a more externally focused approach, talking about hot deployment capability, relevant directories and configuration files in an installed system, and steps in a typical deployment process. In contrast, Developer's Notebook goes through the whole process of creating the deployable WAR file for a web application, deploying that to JBoss by copying the created file to JBoss's deploy directory, and verifying successful deployment or looking for errors. It even talks about how to modify a deployed application. Needless to say, the last one is most useful to someone who just wants to deploy his or her application.
True to its lab notebook style, the book makes important, though not integral, observations about specific topics in the page margins. For example, a note in the margin of deployment steps tells you that you can include a deployment package within another deployment package, up to an arbitrary level of nesting, a la Russian doll packaging. I found this informal way of communicating relevant stuff quite effective.
Another noteworthy aspect of this book is that it makes generous use of appropriate tools, such as Ant and XDoclet, to get things done. This can be either good or bad, depending upon your familiarity with these tools. For me, it turned out to be a mixed bag. I know Ant and am happy writing Ant scripts for packaging and deployment. It is different with XDoclet, which I haven't had a chance to use so far. But perhaps the authors know better and one should just get familiar with it before working on any project involving JBoss and Enterprise Java Beans.
It is difficult, if not impossible, to cover each and every aspect of software as feature rich and complex as JBoss in any single book. This leaves the somewhat unpleasant task of choosing topics to the the authors and editors, for the selection may or may not match the needs of a particular reader. At the same time, it increases the responsibility of a reviewer like me who must help a prospective buyer decide for or against making a purchase, based on her needs.
Let me attempt to do that by making two lists: first, what is included and then, what is not.
What is included (paraphrased Table of Contents):
- How to install, start, examine (through JMX Console) and shutdown JBoss Server.
- How to package, deploy, observe and undeploy an application.
- How to create a web application with database access and user authentication.
- How to use MySQL as database for a JBoss application.
- How to setup user database, login modules and enable SSL.
- How to configure logging for various components of JBoss.
- How to map schema, objects and relations to database tables.
- How to monitor and manage a JBoss application with MBeans.
- How to create a custom JBoss with modules that your application needs.
A similar, comprehensive, list of what is not included is simply not possible. Still, I have gone ahead and created the following based on my experience with JBoss. Keep in mind that these reflect the kind of applications I have worked on and may not be representative of your needs.
- How to use JBoss as a J2SE container.
- How to develop Web services with JBoss.
- How to create, package and deploy an application consisting of JBoss services, web applications and web services.
- How to troubleshoot class loading problems.
- How to isolate applications within a single JBoss server instance.
- How to profile for performance bottlenecks.
- How to run multiple instances of JBoss Server on a single machine.
I can only hope that the authors will take this as a reader feedback and include some of the above in a future edition.
So, what else is there not to like about this book? One thing that caught my attention was the relative absence of insight into why things worked the way they worked: What are the underlying patterns and how can the awareness about these patterns be applied to other similar situations? These are the things I look for in a new product or technology, and have found them to be much more helpful than just a compilation of step-by-step descriptions of doing things. Perhaps the Developer's Notebook format doesn't allow for such digressions, still I think inclusion of such insights would have improved the book.
Overall, I would say that JBoss - A Developer's Notebook is a good introductory book for those who are thinking of getting started or are just getting started with JBoss. If you have already worked on JBoss and are looking for more advanced or esoteric stuff, then this book is perhaps not for you.
You can purchase JBoss - A Developer's Notebook from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
JMX Microkernel (Score:4, Informative)
FYI, JMX is not a JBoss technology, but rather a Sun JSR Specification. Perhaps the most telling point is that JBoss's name doesn't appear anywhere in the working group [jcp.org] for the JSR. Claiming or attributing responsibility for such technology is a bit disingenuous. Especially since several other app servers (e.g. WebSphere and Sun J2EE) use the same technology.
Also, am I the only one who's annoyed at the use of the word "microkernel"? While I'm sure that some similarities exist, a J2EE server is not an operating system. It's a shared environment high above the sysetm management level, and as such cannot be classified in the same manner. Using Operating System terms at that level only serves to confuse potential customers about the purpose of the technology.
My pet peeve in this area is the 1060 NetKernel. [1060.org] They get so wrapped up in the "kernel" language, that they forget to tell everyone exactly what their product does. I mean, look at this stuff:
I'm sure I'm not alone when I say, HUH?
1060 Market Speak (Score:5, Funny)
Re:1060 Market Speak (Score:2)
Re:JMX Microkernel (Score:2, Insightful)
Re:JMX Microkernel (Score:1, Redundant)
Re:JMX Microkernel (Score:1)
Re:JMX Microkernel (Score:1, Redundant)
However, I am willing to concede that others (such as yourself) have not read it this way. Which only leaves the point about being "set apart" based on this technology. I find it hard to accept that JBoss is "set apart" by a technology that is in many competing J2EE servers. In which case, I can only assume that the poster either did not understand
Re:JMX Microkernel (Score:3, Informative)
I want to emphasize that I know SFA about (e.g.) WebLogic and its architecture, so what I said above may well not be a unique feature of JB
Re:JMX Microkernel (Score:3, Informative)
Re:JMX Microkernel (Score:2, Redundant)
Sinking, nothing. I'm pointing out an oddity in the review, which *seems* to claim that JBoss is somehow superior for its use of JMX. Since JBoss has nothing to do with the development of the technology, nor does it have a monopoly on the use of the technology, I find that statement odd at best, disingenuous at worst. However, I think you answered the argument after this:
What does set them apart is that they base their architecture on JMX where as others simply expose JMX objects, usual
Re:JMX Microkernel (Score:2)
My quotation states that "JMX sets JBoss apart". How can JBoss be set apart by a technology used by many (if not all) the major vendors? Perhaps the author meant "JMX sets JBoss apart from the other low cost/free/open source J2EE servers?"
Nope, that's not what you quoted in your original response. Here it is for everyone who is too lazy to look it up again (including the OP):
"what sets it apart is its JMX based microkernel,"
To me, that simply means they've made an implementation of the JMX standard. It does
Re:JMX Microkernel (Score:2)
"Microkernel" refers to the architectural pattern around which JBoss was designed. You can read up on it in the POSA book [amazon.com] by Buschmann et. al.
Re:JMX Microkernel (Score:1, Troll)
The poster implies that JMX is a JBoss technology, or at least that JBoss has a current monopoly on JMX.
Still, I'm willing to concede the point since no one else seems to be bothered by this. The rest of my point still stands from an informative perspective. JMX is a standard technology used by a variety of J2EE servers.
"Microkernel" refers to the architectural pattern around which JBoss was designed.
Irrelevant. My po
Re:JMX Microkernel (Score:2, Insightful)
I can not find any hint in this direction in the poster's text.
It is relevant. The term Microkernel is in no way reduced the the usage in an OS kernel. That you have only heard it in this context is just your problem. Words have only a
Re:JMX Microkernel (Score:2, Insightful)
The term Microkernel is in no way reduced the the usage in an OS kernel.
"Kernel" in CompSci refers specifically to the low level, hardware/resource control layer of an Operating System. The definition is very clear and distinct. Using the term in places other than OS design is obviously an attempt to liken the new design to a kernel's design. Yet that doesn't make sense, since the two concepts are very different.
The result is that the term gets overloaded and the definition starts
Re:JMX Microkernel (Score:1)
Absolutely right, the pattern has been derived from the OS design.
It's an abstraction, it looks at what is the essence behind the principle of the OS microkernel and transfers it to other areas. That's what patterns are about. And to make it clear: using this term in that general way is in no way an invention by th
Re:JMX Microkernel (Score:1, Redundant)
Which is, again, completely screwed up. JBoss, NetKernel, Geronimo, etc., all have zip to do with microkernels. They don't manage anything other than loading shared, executable code. Something which, if I may point out, is precisely what a Microkernel *doesn't* do. That's what the servers are for!
Not to mention that the concept *still* fails to commmunicate what precisely the software *does*. When we talk about OS Microkernels, we know that w
Re:JMX Microkernel (Score:1)
Well actually, servers are part of the Microkernel pattern. To make things worse, there is also a participant called "microkernel" in the Microkernel pattern... If it was not clear up to now: JBoss at all is not a microkernel, its architecture is based on the Microkernel pattern. JBoss also contains e.g. the servers whic
Re:JMX Microkernel (Score:1)
Well it didn't use explicitely the term "pattern", but in writing
it is clear that it is addressing the pattern, not the OS microkernel.
But a
Re:JMX Microkernel (Score:1)
Re:JMX Microkernel (Score:1)
I don't see how the statement you quoted implies that JBoss was involved in creation of JMX. Being based on JMX implies only one thing: it
Re:JMX Microkernel (Score:2, Informative)
Exactly (Score:1)
Re:JMX Microkernel (Score:2)
100% Overrated
I point out the clear error a post, but that doesn't rate. More tracks of the sleazy SlashStalker Trollmods. Ew, they're covered in slime!
Re:JMX Microkernel (Score:1)
Ummmmm I'm not so sure about this portion of your comment. When you think of an operating system there are (at least) 2 distinct functions. 1) Abstract hardware resources so that they are easily accessable via an API for developers. Java does this via it virtual machine and the J2EE API. 2) Provide a set of tools to allow an operator to execute applications, monitor performance, diagnose faults, etc, etc. Java prov
Commercial != Proprietary (Score:5, Insightful)
JBoss is not an alternative to commercial J2EE App Servers, because it is a commercial J2EE App Server. It's an alternative to proprietary J2EE App Servers.
Some people might think I'm being pedantic, but I think that the distinction is important.
Re:Commercial != Proprietary (Score:3, Informative)
It also depends on what you mean by "commercial". If you mean for commercial use, then yes. But if you mean that it is for sale... yes and no. You can use JBoss free (or could) and buy support. So really, the author is correct.
Proprietary is incorrect, though. It is not an applicable term to a J2EE app server. Or if it is correct, it applies to all of the other big app servers: Weblogic, Websphere, and Oracle. I can run these on many OSs and I can use different databases, different JVMs, etc, etc.
A
Re:Commercial != Proprietary (Score:3, Insightful)
JBoss is not an alternative to commercial J2EE App Servers, because it is a commercial J2EE App Server. It's an alternative to proprietary J2EE App Servers.
Hate to break this to you but EVERY J2EE app serve
Not GPL, LGPL (Score:1, Insightful)
Re:Not GPL, LGPL (Score:2, Interesting)
Re:Not GPL, LGPL (Score:2, Interesting)
No, Sun has had a Real Appserver(tm) available for no cost for some time now (at least two years). They've even gone to the trouble of benchmarking it (both backed by Oracle and by MySQL) against the SPEC Java benchmark AND publishing the results so you can compare it.
Their next version is even Open Sourced and being developed under GlassFish at java.net.
Re:Not GPL, LGPL (Score:1, Informative)
There are alternatives opensource projects like JOnAS(http://jonas.objectweb.org/ [objectweb.org] or Geronimo(not production ready) available.
JOnAS is J2EE 1.4 certified too, completely free.
The development team is very reactive on the mailing lists.
And the most important : a lot of projects are already in production
J2EE is.. (Score:5, Insightful)
Re:J2EE is.. (Score:2)
A common misconception! EJB3 is NOT based on Hibernate. It uses ideas from Hibernate, TopLink, JDO and other APIs.
Re:J2EE is.. (Score:3, Insightful)
Ahem.... that would describe where I work.
But anyways, its all water under the bridge. In a few years, those of us that are still employed will laugh at the comically baroque complexity of the bullshit tools we have to work with today.
Re:J2EE is.. (Score:2)
As for being a bloated medly of seldom used/needed technologies, I strongly disagree with this statement. Like Corba, it defines a set of services vendors provide to build enterprise applications. Last I checked, distributed transactional services, orbs, mail, security, and messaging were all really i
Re:J2EE is.. (Score:2, Interesting)
I have heard this opinion off and on, but I have also heard this from people who either did not fully grasp the entire framework that is J2EE or from people who did and thought it was a waste of time for various reasons.
No matter how you build your framework, good OO design dictates that you seperate business logic from the presentation, control layers (commonly called MVC [wikipedia.org] and idea as old as Smalltalk 80). If you stick with Servlets and JSPs you should at least have some type of BusinessObject that does t
Re:J2EE is.. (Score:3, Interesting)
Most of the enterprise Java community actually agrees with you, hence why the EJB3 specification is highly derived and influenced from Hibernate. Value Objects, Home interfaces, and redundant configurations are just some of the things that have been all but completely removed from the new spec. But "removal of annoying features" isn't the only thing that EJB3 is focusing on. There is also a sharp focus on the Keep
You're not complaining about J2EE (Score:2)
You seem to only be complaining about EJB, and how it's going the CORBA way, which I find tremendously funny because EJB was originally (and still is) a standard runtime model for CORBA objects written in Java, with a difficult object/relational mapping spec bolted on.
Question for developers: JBoss vs Tomcat (Score:2)
I am working a couple of other people on a startup, and we were thinking of going the JBoss route. One of them prefers JBboss, I've never used it, but have used Tomcat. We'll likely be running on multi proc AMD servers.
Has anyone used both? What are the benefits of one over the other? Do you like the way one does something better? Caveats? Pitfalls? Problems in deployment?
Thanx in advance.
Re:Question for developers: JBoss vs Tomcat (Score:2)
Re:Question for developers: JBoss vs Tomcat (Score:4, Informative)
Re:Question for developers: JBoss vs Tomcat (Score:2)
No EJBs: Either will do
Re:Question for developers: JBoss vs Tomcat (Score:2, Interesting)
Re:Question for developers: JBoss vs Tomcat (Score:2)
Don't add complexity you don't need. Only use JBoss when Tomcat doesn't support what you're doing and you understand why.
Translation (Score:5, Funny)
Re:Translation (Score:2)
I'm thinking about using apple boxes to package some goods. A buddy likes apple boxes, but I've only used orange crates. What are the benefits of apple boxes over orange crates?
Clearly there are differences, and yet they have the same purpose: to hold fruit. Apple boxes may be better for a number of reasons, orange crates may be better for a number of reasons and all I'm asking is what those are.
So, thanks anyway.
Re:Translation (Score:3, Insightful)
Re:Translation (Score:2)
You are dealing with apples. So do you need just an apple crate, or a rig which carries apple crates across the country?
If you don't need the long distance shipping, then the simple crate alone will do the job.
Re:Translation (Score:2)
Yeah, that's probably it. I can start with a crate and add stuff to it as I need (wheels, handle, linkage for more crates), but maybe the rig is better in the long run if I think I will need things like an engine, cab and bigger load capacity.
Analogy aside, some have said that JBoss is the way to go if we need EJBs. If we didn't need that right away, we could use Tomcat now and later add in OpenEJB. On the surface at least that means that either would be acceptable. I guess what I wanted to know was if som
Re:Question for developers: JBoss vs Tomcat (Score:5, Informative)
If you just need servlets/jsp, I'd recommend using Tomcat by itself; JBoss adds the rest of the J2EE stack on top of Tomcat, so if you're not using that you're kind of wasting effort.
On the other hand, if you *need* the full stack, JBoss is not a bad container. I would recommend having a look a Tomcat + Spring + Hibernate as an alternative however, as most apps (aside from a couple of banking apps) I've seen really don't need the added complexity, and Spring makes a very good alternative.
If you do use JBoss, keep in mind that they have had a tendency to do things their own way, which may have a tendency to bite you if you're assuming compliance to spec. (as an example, google: jboss unified classloader )
rob.
Re:Question for developers: JBoss vs Tomcat (Score:2)
Thanks. On the EJB point though, when does it (?) make more sense to use JBoss than Tomcat and OpenEJB?
I'll take a look at the Tomcat, Spring Hibernate combination. Hibernate is used in JBoss app server as well.
Re:Question for developers: JBoss vs Tomcat (Score:2)
This is generally a matter of preference-- using JBoss (or Jonas, or Geronimo, or WebShere...) gets you the advantage of a single application server providing access to servlets, EJB, MDB, JNDI, blah, blah, blah, blah. There is nothing preventing you from breaking this up into discrete components and using just what you need, where you need it: Tomcat, OpenEJB, ActiveMQ, whatever. While every project should be evaluated on its own merits,
Re: (Score:1)
Re:Question for developers: JBoss vs Tomcat (Score:1)
Why would you want to do that? First off, you can use the JBoss deployment model. Just drop the WAR file
Re:Question for developers: JBoss vs Tomcat (Score:2)
Awesome, this is what I was after. Even if it's biased
I miss JBoss!! (Score:2, Interesting)
Re:I miss JBoss!! (Score:2, Interesting)
Why is Orion cool? Because it combines simplicity in design with all the features you've come to expect in high end commercial app servers. For example, Orion was the first server that I'm aware of that had *working* hot-deploy for EARs, WARs, and EJB JARs. (JBoss supposedly had hot-deploy for EJB in earlier versions, but it never seemed to work *quite* right.)
No other app server has managed t
Re:I miss JBoss!! (Score:2)
Re:I miss JBoss!! (Score:2)
Re:I miss JBoss!! (Score:2)
It was the best a few years ago, though.
Re:I miss JBoss!! (Score:1)
Jboss Documentation (Score:1, Insightful)
But, for me, the biggest issue has been the lack of quality documentation. That problem has been resolving itself over the years as it gains popular
Re:Jboss Documentation (Score:3, Informative)
Having dabbled with WebSphere at work some, I'd say IBM's documentation isn't any better. Trial and error is still the #1 troubleshooting method.
JBoss Tutorial Online (Score:2)
http://ensode.net/jboss_intro.html [ensode.net]
JBoss-specific code (Score:2, Interesting)
My personal experience, FWIW, is that taking advantage of the JBoss-specific architecture has its downsides:
-you lock yourself in
the really essential JBoss book nobody's written (Score:5, Informative)
Seriously, JBoss 321 -> 327 has had major changes outside of the obvious tomcat 4 to 5 one (the reason we had to do this in the first place), and 327 to 402 is even worse. the JMS subsystem is the worst moving target, as its configuration is significantly different in all three releases we're now arguing with.
JBoss guys, i really do have better things to do with my time than read through and compare 1000 lines of XML between two releases to figure this crap out. A simple "upgrade instructions" document would have been nice.
the reality is that the *vast* majority of those files are currently undocumented and anything anybody does with them is pure guesswork.
Re:the really essential JBoss book nobody's writte (Score:2)
Re:the really essential JBoss book nobody's writte (Score:1)
JBoss support is the worst in the business.
And some of the most expensive.
Re:the really essential JBoss book nobody's writte (Score:1)
have a different opinion [jboss.com]. (note, that is from people who have used JBoss support AND support from other vendors)
(disclaimer: JBoss employee and author of the book being reviewed)
Re:the really essential JBoss book nobody's writte (Score:2)
We have over a dozen JBoss configuration files that are tweaked. When we upgrade we:
In some cas
Re:the really essential JBoss book nobody's writte (Score:2)
in particular is the hassles that occur when one particular mbean declaration gets moved (or becomes "optional" when before it was required). there are a lot of those to deal with in upgrades that skip release generations.
Re:the really essential JBoss book nobody's writte (Score:1)
(disclaimer: JBoss employee and author of the book being reviewed)
JBoss + Hibernate + Spring (Score:4, Interesting)
Some nice tools for building Java-based web-applications:
http://www.hibernate.org/
http://www.springframework.org/
http://www.jboss.com/
http://www.postgresql.org/
http://ant.apache.org/
http://www.eclipse.org/
Instead Try: Tomcat + Cayenne + Tapestry (Score:2, Interesting)
http://jakarta.apache.org/tomcat/index.html [apache.org]
http://jakarta.apache.org/tapestry/ [apache.org]
http://www.eclipse.org/ [eclipse.org]
http://ant.apache.org/ [apache.org]
Choose any database you want. Tapestry is simply AMAZING!!! Everything is a component. It is like have all of the coolest legos and building sites in not time. Also, if you don't like the block, it is EASY to make custom components. Howard Lewis Ship is a genius.
Okay, the Java world needs to really wake up and start buying into Cayenne.
JOnAS ? (Score:1)
How many people out there use JOnAS as an alternative to JBoss? I've heard that JBoss now uses Tomcat as a base for the JSP/servlet stuff, just like JOnAS, so it's pretty much an apples-to-apples comparison now.
How many people are using either of these as compared to more commercialized offerings such as Websphere, WebLogic, JRun, etc?
JBoss4? (Score:1, Informative)
If this book doesn't cover the EJB3.0 stuff, I wouldn't consider picking it up..
Re:Anyone else gets nauseated... (Score:5, Interesting)
C much longer development time for server side stuff, with not too much performance gain in that area, and to few portable libraries which are really portable (thank Microsoft and the ISO consortium for that)
Python... much slower, and not really an improvement over java language wise
Lisp... not as common, you cannot find enough people
The ideal language for that kind of development probably would be smalltalk, but the Smalltalk vendors killed themselves in the Digital Parcplace fiasko and their inability to extend the common base to something java could deliver out of the box.
The only contender in the long run I see currently is Ruby, with their excellent rails framework.
Re:Anyone else gets nauseated... (Score:3, Interesting)
I would hardly call a framework where the object model has to be defined as database tables, and you then end up locked into a particular database product for the lifetime of your application 'excellent'. Compared to other systems, like Hibernate, where data can be defined as true objects, this is a huge step backwards.
Re:Anyone else gets nauseated... (Score:2, Interesting)
Re:Anyone else gets nauseated... (Score:1)
I love Azureus... in fact, I cannot stand to use any other linux bittorrent client... but I really dislike using it. Conflicted? Why, yes I am!
It is slow to start, slow to react while already running, takes up far more processing power than reasonable, takes up far far more memory than reasonable, and the memory usage/processing power requirements grow over time. My computer can keep going for weeks at a time, but I have to restart Azureus every couple of days
Re:Anyone else gets nauseated... (Score:1)
Re:Anyone else gets nauseated... (Score:2)
Too bad if you don't like MS, but they still make the best development tools. These are still BETA and will do nasty things to your box, so you might want to wait until the 2005 release is released.
http://lab.msdn.microsoft.com/express/default.asp
Re:Anyone else gets nauseated... (Score:2, Interesting)
Re:Anyone else gets nauseated... (Score:1)
Re:Anyone else gets nauseated... (Score:1)
Surprisingly many. GTK+ website lists, unless I coffeedly counted wrong, 29 supported languages. Can't seem to find the list of languages supported by Tk, but I presume mindboggling number of languages have Tk bindings (not as slick as GTK+, but more cross-platform, for sure). And, a lot of languages have way to mess with C/C++ functions, so you probably could write a wrapper you need yourself...
Re:Anyone else gets nauseated... (Score:3, Interesting)
Isn't it nice, though, that you can be a server-side Java programmer during the day at work, and use the same skill set at home to hack together your client-side hobby projects?
Isn't it nice to be able to focus on a single language and really master it, instead of trying to keep several balls in the air at once?
Isn't it nice that if you ever wanted to, you could write an applet for your website instead of having to pay five hundred bucks for Flash authoring tools?
After all, with Java, the difference b
Re:Anyone else gets nauseated... (Score:1)
Re:Anyone else gets nauseated... (Score:4, Interesting)
As such, I don't see anything seriously wrong with Java. Thanks to its clean and simple syntax and its rich library, I feel it lets me solve problems faster than many other languages. At least on the server, it runs at compiled speeds, and the base of free code to build on is enormous.
There are certainly "better" languages, for various flavors of "better". Lisp and Smalltalk come to mind. Look at Structure and Interpretation of Computer Programs [mit.edu] for a glimpse at the awesome power of Lisp. Smalltalk programmers never cease to rave about what a joy it is to work with. These two languages suffer from lack of acceptance by the masses, something like why Microsoft and not {*nix|*BSD|BeOS|VMS} is the dominant operating system. I posit that it takes hardly more intellectual prowess to program in Java than in BASIC, but Lisp and Smalltalk are better suited for hardcore geeks.
The other languages you mentioned each have some glaring flaws:
J2EE is horribly complicated. But because it was backed by Sun, and still much more manageable than CORBA, it was happily accepted by the industry. The standard is improving, the code base is growing -- Java has momentum, and for better or worse it isn't going away anytime soon.