Do Java systems ship? Or, are they just developed and shelved?
[Shamelessly moved from SexAntiPatterns...]
I've worked in Java for the past 3 years. I've never been involved in a Java project so far that's actually shipped to anyone.
Don't get me wrong, I love Java. But I think there are still relatively few companies actually shipping commercial product written in Java. Probably this will change. Java is a very young language compared to many of the others like C.
But, to answer the question, it's been several years of cancellation. And lots of meaningful personal projects at home that keep me going. -- DinoMorelli
In early 1999, JeffGrigg worked on and shipped a 4-tier client/server system with a Java client GUI for the Federal Reserve Bank in Atlanta, Georgia. It shipped. It works. Now other FED branches want it too.
Business angle: Cost accounting -- distribution of overhead costs (in admittedly excessive detail ;-) to profit centers.
"4 tier" = (1) Java GUI, (2) Business logic -- C++ in a CORBA server, (3) abstract data server -- C++ / CORBA, (4) RDBMS = SQL Server.
I've been on two Java projects that died, as well as one that shipped, and one that's too soon to tell. The shipping one is MapGuide? Viewer, Java Edition, which is available at: http://www.autodesk.com/products/mapguide/viewer.htm#java The one too soon to tell is JeraWorks. -- JohnBrewer
Here are a few:
Good call, Channing.
A couple of years ago, I was involved on a beautiful project at Reuters that involved building many JavaBeans that have now been deployed across loads of projects within Reuters (admittedly this is not an application in itself but there has been mention of 'products' on this page as well).
At the beginning of last year I was involved in building an application for a large West Coast (of America) investment management company where the front and middle tiers of a three tier system were build in Java. There were some problems (of course) that had to do with politics rather than Java, but it did ship, albeit a little late.
I am now working on the Java front end of an application which is suffering from politics again but I think it's beyond the point that it can be canned (although canning after release is always an option :-)
-- LanceWalton
Working for who I work for, I can't name names of companies. But...
Think of the two largest clicks-and-mortar brokerages. I can assure you that both of them have Java applications running in the back end of their web sites (servlets & JSP's). Also, think about the three biggest insurance companies in the U.S. and the largest one in Canada. Same thing.
Oh, you want a non-servlet application? Have you heard of options trading? If you do that in the U.S., odds are quite good that it's already being handled in Java or will be soon.
Did you buy a big green lawn tractor this year? The order was fulfilled from a Java application, and the salespeople track their quotes using another Java application.
Did you eat in a fast-food restaurant this year? Either the order for the ingredients (frozen french fries, frozen chicken strips, bags of pizza cheese) was placed into a Java application, or will be soon...
And those are just the ones I personally have worked on.
-- KyleBrown
And if you've ordered fast food from the drive-through lane while driving a big green lawn tractor? Why then, odds are you're a RedneckSmalltalker.
We have sorta shipped our knowledge-modelling tools. I say "sorta" because (1) We don't charge and (2) "shipping" means "updating the installer and changing the web page." Nonetheless, the application, and the component objects exist, are pretty cool (and will be even cooler in a week or so, when we finish the preliminary RDF integration), and are used by AI and knowledge-modeling people world wide.
There are other projects in the lab I work at that also ship Java applications. Most of them are customized applications for medical informatics. But they're being deployed (in hospitals, for example).
Java was a huge win for us.
GregVaughn and I (and a couple of WikiLurkers) work for a Dallas-area Java consulting firm. We've built or helped build at least six Java projects that have shipped, and are involved in several others that are looking good. We've also been involved in one or two that haven't, or at least haven't yet (one that I can think of is still in development even though we're no longer involved). We've been brought in to fix a couple so that they don't have to be shelved; the record there is mixed.
Part of the success comes from good consultants, part from good customers, and part from just knowing Java's strengths and weaknesses and not overselling it. The bottom line, though, is that in our experience Java applications ship and do the job. In some of the above cases, I'm firmly convinced that the other options the customers were looking at (usually C++) would have shipped so late as to be useless. -- GlennVanderburg
I am batting .500 right now; I have worked on one Java project that is still tanking (I walked a while ago), and I am now working on one that is very large ( >1m LOC ) and is now shipping to beta users. Java was neither a help nor a hinderance in either case; the first project is failing for management and methodology reasons, and the second is succeeding for the same reasons (plus a healthy dose of very capable developers). -- RobertEikel
Most of the Java projects I worked on were unsuccessful primarily because Java was so slow, missing key functionality, etc. But we did a very successful ECommerce solution for Bueyer's Zone with Java, EJB and Solaris while I was at Viridien Technologies. So my results have been mixed. -- sg
MineStarOffice? by MincomLimited? is at customer sites in Wyoming and Arizona, with a number of others taking delivery later this year. It is part of the overall MineStar? application which includes Caterpillar hardware and a Trimble radio network. The source code is 483974 lines of Java, plus some C++ for the component which talks to the radio network, and a myriad of scripting and reporting languages. The C++ was mostly because the original author of that piece of code didn't trust Java to be able to do something as performance intensive as protocol handling. The running system consists of about 6 JVMs running against 2 databases, usually with all JVMs and the small database on one machine and the other database on the other machine. In the latest version (which has not gone to site yet), the JVMs happily run at about 20M each. Now that we have got some of the stupid implementation out of the system, we will probably downgrade the hardware requirements. I think the biggest deal for the hardware is the number of disk spindles, because the database has a lot of work to do.
What does MineStar? do? I almost forgot. It runs open cut mines. It receives location information from trucks and shovels, draws pretty maps, records data in the reporting database, figures out where the trucks should go next, and stuff like that. If you're an open pit miner, it's pretty snazzy, I hear. For less detail, check out:
http://www.cat.com/products/shared/technology_products/01_products/_products_minestar.html
-- JohnFarrell
http://www.interactivebrokers.com/ uses a Java applet for its primary trading interface. They even provide a demo, in case you want to try it out.