 |
Myth: There aren't any commercial apps written in Java.
Posted by joshy on July 19, 2004 at 07:37 AM | Comments (24)
The last few months have been great for client side Java. With
the release of JDIC, JDNC, Java 1.5 betas, and more support than
ever from Sun, I think we are seeing a revival in interest for client side Java. Still, I hear the usual refrain: "If Java is so good on the desktop, then where are all of the commercial apps?" If I point to something like LimeWire I get: "No. I mean big applications, like Word." Well, I never have an answer for that one. I didn't seven years ago and I don't know. Speed and API support isn't an issue anymore, but there still aren't any well known commercial applications written in Java. That finally led me to the question "Is any big name application written in anything other than C/C++?"
The answer is, strangely, no. Perl, TCL, PHP and Python. No big commercial app is written in anything other than the stalwarts: C and C++. But I also came to another observation. There aren't any new big commercial apps.
I want you to seriously think about this for a change. What big
established software is there that's new? On my computer I have running:
Mozilla, Outlook, Word, Excel, Photoshop, and jEdit. All of those, except
for jEdit (a Java program), stem from a code base that is at least 7 years
old. Excel is twenty! There simply aren't any new big desktop
applications.
I remember ten years ago browsing through various computer magazines
that would review the latest versions of word processors, layout programs,
and databases. There was real competition then, and whole new categories of
software came out like disk repair utilities and floppy disk
compression.
Today all of that software has been either commoditized or monopolized
(or both). All of the new software is small. There aren't any new large
applications. The market for such things is already saturated, and no new
software means no new languages for writing it.
New software is being written, of course. Constantly. It's just that the new software isn't what we would call Big Desktop Applications. The new stuff is all small. All attacking small problems with specific solutions. No need for a general multi-media package. Instead we have one for playing and managine music. One for editing music. And one for combining music with photos. Instead of one package Apple gives us four with iLife.
In addition to being smaller the new software is increasingly webbased, like Yahoo Mail, or living half on the network and half distributed desktops. This new breed of software is increasingly being written in new languages.
And most importantly, this kind of software is where the growth comes from. There aren't many new desktop spreadsheets anymore. In fact the only new software I've seen come out of the word processing category has been a result of commoditization of the file format (.DOC is now a stable target for reverse engineering) or of the category itself (it's easy to reimplement the features that we now know we need in a word processor).
There's lots of new network and multi-media apps though. Chat. Distributed PIM. P2P file sharing. MP3 players. And I don't even know what category to put Friendster in. These categories are increasingly being done in Java. And Java's faster development type and rich API really shine in these kinds of applications.
So don't worry about the lack of large applications. There's only a few of them anyway. Be more interested in the multitude of exciting, dynamic, and little applications.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
Visual Basic 6
Ok, maybe no mainstream applications, but in the industry I'm in there are lots of commercial applications written in Visual Basic 6. I think that this is what you find when you go one notch down from the word processors and web browsers of the world to the slightly more niche applications.
Now, as a Java developer, I hate to say it, but it is easier to write a desktop app in VB6, and easier to integrate it with the desktop environment, than in Java. There are tons of developers who've long written off Java because of this (and other reasons), which is a shame. Now these developers are moving to .Net, and while your post may speak some truth about the past, it probably doesn't about the future. In 5-10 years would you expect all major apps to be in C++? Maybe, maybe not.
Java is starting to be a realistic platform for true desktop apps. But it sure is taking a long time. And I don't think we should just look at C++ and think that it is OK for Java to lollygag along like it has. Because C++ will eventually stop being the preferred language for a lot of apps. Java should be making it easier for us to do everything we can do in C++, but faster and easier, and looking 100% as good. Not 99.9% as good, 100%. Your post kind of makes it seem like there is a lack of urgency on this issue, in my opinion there is urgency, created partially by .Net.
Posted by: kenlars99 on July 19, 2004 at 08:56 AM
-
'Commercial', or 'Consumer'?
Greetings,
Perhaps one of the biggest recent changes for me, was moving to a new, unbelievably complex, powerful IDE (IntelliJ IDEA), from my old complex, powerful IDE (Emacs).
I'm stunned by how well it works, it's definitely big, and definitely a commercial application.
It is not, however, a *consumer* application.
If you're looking for large, broad-appeal consumer desktop applications, the most recent 'new' application like that is the web browser.
I can't think of a single broad-appeal, consumer adopted general purpose desktop application since the web browser.
A lot of the question, though, depends on definitions.
So, for instance, how is word processing different from audio editing? Why is an audio editing application 'small' and a word processor 'big'? They do basically the same thing, just with different data. I'd argue it's because of the level of consumer appeal. Not every person needs to edit audio, but everyone wants to be able to write letters.
So what you're seeing is a basic lack of new NEEDS, not a lack of CAPABILITIES. The majority of consumers don't NEED anything new, so there isn't anything new created.
Even email (another relatively recent killer app) is moving off the desktop (I predict with my crystal ball, an avalanche of Get Email Off The Desktop actions over the next 5 years), since reading email doesn't fit well into an 'available from one computer' paradigm.
In the end, it takes a new broad consumer need in order to build a new broadly accepted consumer application.
If any of us knew what that need was, we'd be millionaires, instead of pundits. :)
In the mean time, find a niche or two that will grow, write a small program or so that fills them nicely, and grow with it.
-- Morgan
Posted by: cyberfox on July 19, 2004 at 04:21 PM
-
Visual Basic 6
If you wanted strong desktop integration it has been possible with Java for sometime using open source tools like JAWIN or commercial tools like JNIWrapper.
Also, VB6 has it's share of limitations as well. You cannot spin new threads, link in static libraries, DLL/ActiveX hell, no native way to create a service, etc... The IDE sucks!
Companies that selected VB6 to build their applications (yes we're one of them) are now left scratching their heads wondering where to go next because their codebase won't port to .Net
It now makes perfect sense to create Desktop applications in Java. There is almost nothing I can't do even in terms of desktop integration. Many times I have to look outside the JDK or what Sun has to offer, but in reality, there is very little that Java cannot accompish on the desktop with a little outside help.
Posted by: rabbe on July 19, 2004 at 10:33 PM
-
No Word?
I think you missed some releases:
http://www.evermoresw.com/weben/index.jsp
http://www.javadesktop.org/forums/thread.jspa?forumID=17&threadID=1562
http://www.aokabc.com
My guess is that the person asking the mythical question completely missed the point; they are asking Java to replace the things they know, but at the same time don't want anything to replace the things they know, simply because all humans find change hard.
The fact these people should have their noses rubbed in :) is that writing a quite-big application in Java is simpler; more maintainable and ultimately leads to better applications.
For example; I wrote a PVR application (like MythTV) in a couple of months (only in the evenings) in Java Swing while the MythTV crowd needed several years and many volunteers..
Posted by: zander on July 20, 2004 at 12:22 AM
-
What is "big"?
How do we define "big"? Is it based on code size? Feature set? Or user base? From the comments below, it looks like I'm not the only one wondering this.
Posted by: jimothy on July 20, 2004 at 12:51 AM
-
IDEs not Big
IBM Websphere studio and Eclicpse were created using Java. Studio is a $5000 product. Is that big enough?
Yes, we haven't seen big changes in the desktop client apps. We are seeing Java enter the 3-d game market that's bigger then the movie market so we'll have to see. Imagine being able to play quake or simcity 4 on any platform!
Posted by: mardigrasboy on July 20, 2004 at 12:56 AM
-
Examples
What about sw development tools?
JBuilder, NetBeans, Eclipse... all written in Java, as I know.
These are real, big, desktop "commercial" apps.
Posted by: bitog on July 20, 2004 at 12:57 AM
-
Visual Basic 6
I just reconsidered how would I write some of application. I was working in-house for some factories, for small companies, for friends some time ago. Like, you know, printing some simple forms (end user is pretty non-technical). Simple accounting of gifts gifted. Complex commercial search. Big distributed system for nassive data entry. GUI for distribution list (gentle spamming) is planned.
I was using Visual FoxPro, Delphi, some VB...
I must admit that writing in quite old Delphi would be easier. You know, click on thing -- fill in btnOrderClick method with the code. Quite similar to what Java GUI does. However, Java has AFAIK some drawbacks:
1. LayoutManagers are not intuitive.
In Delphi, just set Align's and enjoy.
My experience with Java was pitiful...
2. Lot of organizing core is scary. Constructors, adding components, reg listeners....
Maybe create some "model" wrapper containing only my code that will get called by reflection from actual mess? Or just adapt "build from resource" approach?
You know, Delphi used RTTI a lot. Swing was invented before reflection -- that's why it is so complex to do "manually".
Not that I scared of generated code, just it makes me feel a bit nervous. Finding my code between generated...
Now I am writing J2EE Web apps... Java rocks there!
Posted by: wwk_killer on July 20, 2004 at 12:57 AM
-
OpenOffice anyone?
I am shocked that you don't consider openoffice a "large" java project. Not only is it a great piece of software, it's actually taking MS Office on and winning marketshare away from the Microsoft giant.
Posted by: wireframe on July 20, 2004 at 12:59 AM
-
OpenOffice anyone?
Maybe it wasn't mentioned because OpenOffice is written in C++
Posted by: rjlorimer on July 20, 2004 at 01:30 AM
-
No Word?
Do you have a link for your PVR application?
Posted by: markswanson on July 20, 2004 at 03:01 AM
-
AOPEN uses Java application to config RAID drives
AOPEN, the computer motherboard manufacturer, uses a Java application for a RAID drive configuration utility.
http://download.aopen.com.tw/downloads/userdownload_List.asp?Publish=Yes&nowok=Yes&RecNo=7893&Model=AK89 Max
Notice the word Java in the description!
Posted by: peterenglish on July 20, 2004 at 03:48 AM
-
Big Software
I don't agree with your definition of "big" software. Excel and Word arguably got big because of marketese, not because of the language in which they were written. Mozilla only seems "big" because it provides access to the Internet and everyone uses it, but in terms of its technical scope, it's more like LimeWire.
The "big" software you mention is quite entrenched, as well. You even mention Excel has a 20-year old code base. If it works, why replace it?
There are other big applications being written in Java... Eclipse, Websphere, JDesktop, OpenOffice. Certainly many organizations working on the next "big" software are likely starting with Java.
Posted by: dmkoelle on July 20, 2004 at 04:12 AM
-
Re: PVR
No, its not on a public server. I doubt it will catch on since it only runs on Unix. That said; I'm willing to put up some screenshots and a snapshot of the codebase if people are interested. Sent me an email if you are. (zander AT javalobby (,) com)
Posted by: zander on July 20, 2004 at 04:50 AM
-
Large applications
I'd classify my company's main application as large (over 4000 classes, 14MB source), and it is a client application rather than server based. Although as it serves a niche market most people will never have seen it or have a use for it. (See http://www.optrak.co.uk)
Posted by: mthornton on July 20, 2004 at 05:49 AM
-
None.
I tried thinking about it, as you suggested, and I have to agree 100%. I can't remember a new title from friends, family, co-workers, pc load tickets, commericals or print. (oh, yeah, there was that commerical for an upgrade that would make me dance around the office and win praise from my co-workers, but then again, I'm still not sure what it really does differently than what I already have.)
Thanks for sharing your observation.
Posted by: d_bleyl on July 20, 2004 at 06:48 AM
-
Examples
I think Java's biggest recent win was when Borland decided to drop the C++ codebase for C++Builder and go with the JBuilder codebase (see http://bdn.borland.com/article/0,1410,31277,00.html). I guess Borland was much more productive w/ Java than C++.
The other lesser win, but still significant, is that IntelliJ IDEA and Eclipse are influencing MS's new VisualStudio product designs. This is important because these two are much younger products, and if they are influencing the oldtimer that means that they are significant successes.
So (1) major IDE changes to Java (2) Java influences all IDEs..
Lets hope to see some non-developer tool wins like this soon. (I hear IBM is cooking something up based on Eclipse)
Posted by: dog on July 20, 2004 at 09:00 AM
-
Big apps
The company I work has recently purchased a huge piece of financial software. The software will end up costing millions of dollars and is written in java.
The evalution that led to the purchase also included applications written in C++ and .NET. The java application simply performed better and provided more of what the company wanted.
This not to say that Java is somehow better then C++ or .NET only that it is the equal of both and that the product programmers did a hell of a job.
One other application that we frequently use has been rewritten entirely in Java. Macomedia's Coldfusion now runs on JRun and is much more stable product and much faster since the rewrite.
Posted by: bob2cam on July 20, 2004 at 10:43 AM
-
Examples
How about Sketsa SVG drawing application.
It is available at http://www.kiyut.com/products/sketsa/index.html
Posted by: kiyut on July 20, 2004 at 11:33 AM
-
In House App's
My company has a large in-house app. written in Java on everyones desktop - some 6,500 people. It is the main accounting, effort logging, project tracking system. It talks to numerous databases and extracts information from them and collates them into a usable form.
The history is that their used to be many databases each specialized for a particular task that were a nightmare to extract information from and were inconsistant with each other. The Java app. has solved these problems.
Posted by: hlovatt on July 20, 2004 at 12:45 PM
-
But first - Some handy definitions
Lets define 'commercial software' as Software that you, the consumer, actually pay money for.
Your company for instance might buy a whole bunch of IBM software (Websphere etc) but unless you personally buy one for your home machine, then it fits into a different category.
Lets call that category 'Enterprise Software'. Obviously there is a lot of Enterprise Software out there, and a lot of it is server based, and a lot of it is in Java and/or J2EE.
Pirated software doesn't fit into the 'commercial software' category. A good example of this is WinZip. Almost everyone has it, but most people and companies don't bother buying a licence, they pirate it instead.
Likewise, Open Source software is generally not sold for money, so it doesn't fit into that category. When it is made for a profit motive, the business model is to sell services. Consumers do not tend to buy services (exceptions: Everquest subscriptions, 'please get rid of all my spyware' etc). The fundamental flaw in this is that selling services is selling expertise... and software is a mechanism for capturing expertise... (In other words, the service you sell (eg configuring a DB to work with a particular OS) is quite likely to soon be added to the software by some other developer).
How much $ have you actually spent on software for your home machine?
My biggest spending categories are games (from the $5 bin) and the OS. And I refuse to upgrade the OS on the windows boxen.
My big dilemma is whether to spend money to upgrade to Mac OS X 10.4 when it comes out. And based on my past spending habits the answer is probably that I won't.
I have *no* pirated software. Other than the OS pretty much every other piece of software that I use I can get *legally* for free over the net. Free Office suites (open office), free IDEs (netbeans, XCode), free web browsers, even free games. A whole bunch of other stuff just comes bundled with most OSes. When I played with Linux it had thousands of pieces of software bundled with it, for instance.
-------------------------
Now lets look at where 'commercial software' comes from. Typically, its something that started small, and people liked it enough to pay for it, and over time it got larger and larger.
A small commercial success would provide the seed to leverage that into a larger, better, faster program (pick one ;-)
Nowdays I don't see how this can happen. Not only does all this free software floating around condition us to not paying for software, but it also competes with the small 'seed' commercial software.
Why this is important is that it is these smaller companies that would grow and be agents of change in the industry. Open Source scratches one persons itch, but commercial software which is written for sale with a profit motive is going to try to scratch a lot of people's itch, thousands if not millions.
And a profit motivated company can throw resources at these big problems. The bigger they get, the bigger the problems they can tackle.
It is interesting that the #1 selling Unix in the world (based on # of units shipped) is built on a BSD codebase, not Linux, and also that it is a commercial company (Apple) which has taken it and performed the mammoth task of turning it into something appealing to the masses (as compared to something only its programmers could love).
Scratching the itch of one person won't change the software industry or the world. Scratching the itch of millions will.
The downside of Open Source is that If we're planting no seed, we will reap no harvest.
Posted by: rickcarson on July 20, 2004 at 06:23 PM
-
One Rich example
One example of Rich and Commercial applications made using Java are by
Tektronix Oscilloscope
The average price of these applications are around 5k$, some are more than 10$.
Except Data acquization(which is done at the hardware level),everything else is done in JAVA, like data analysis, different algo's Data presenting in a powerfull 2D charts(with Zooming and other features), printing tool etc.
There are also few Video measurment Intranet Applets(Swing) which are used to remotely control the apparatus. (Most of the big TV companies uses this tool)
Posted by: kishoresjava on July 27, 2004 at 09:36 AM
-
Visual Basic 6
The cross platform capabilities of Java are really starting to mean something, IMHO, with OS X and its quality Java support.
Being able to write an app and market to the Win32 and Mac folks is big, especially since Mac users typically are pretty good about purchasing software.
Prior to OS X and recent versions of Java, the selling point was that desktop apps could run on Linux and Win32. Uh, yeah. Look at the market share and the fact that Linux users expect everything to be free (to match their OS) and you aren't going to impress a lot of commercial software developers.
Posted by: bwy on July 28, 2004 at 12:45 AM
-
The new big commercial desktop apps are... games!
I have a feeling the next big thing for Java on the desktop could well be in the games/entertainment arena. Quite a few games already use Java and with the recent JOAL and JOGL releases I can see this becoming more common.
Posted by: herko_ter_horst on July 30, 2004 at 12:25 AM
|