share
Stack OverflowWhere is Java used the most?
[+2] [3] Matteo Riva
[2009-12-31 10:09:26]
[ java discussion ]
[ http://stackoverflow.com/questions/1984789] [DELETED]

I have no experience with Java, but I understand it's one of the most used languages.

What areas use Java the most? What are real world applications using Java as a solutions platform?

Related:
Why do people use Java? [1]

Oh thanks, I've looked for a similar question but didn't find that one. Although it's not really a duplicate: that's about the language, I was curious about its application. - Matteo Riva
(3) If you want to see how Java is actually used I suggest you do a job search for Java skill set. This will detail more jobs and projects than any one person could have experience with and give you a fairly representative distribution. - Peter Lawrey
(1) Peter, I thought that asking questions about programming was kind of the point of stackoverflow. You can just google it any question. - Matteo Riva
(3) @kemp: suggest you add a bounty and mark as CW - 0A0D
[+3] [2009-12-31 10:12:08] Aaron Digulla

Java is mainly used on the server to server data to web applications. Applets (small Java apps embedded in the browser) are all but dead (people didn't like the 5-60s wait until the app started). Java never made a big impression on the desktop because deploying Java apps is so unnecessarily hard. After 15 years, there still isn't a built-in, one-click "turn this into a desktop app" which downloads the runtime and everything else it needs on demand.


(2) There are more Java desktop apps than most people, even developers, realize - they're just not advertized as server apps. - Michael Borgwardt
Well, you use Java server apps at least ten times a day without ever realizing it. Can you name a single Java desktop app that most people here will know about? I can name these: jEdit, Eclipse, IDEA, Netbeans. Anything else? Oh, yeah, SquirrelSQL. But still, getting them on your desktop is a pain. Installation is ugly if you have more than a single VM installed. - Aaron Digulla
1
[+2] [2009-12-31 16:16:10] Kaleb Brasee

Java is most heavily used in client-server business applications, either through a web application interface (browser access) or a web service interface (SOAP/REST services, or older style Java RMI).

The Java libraries for developing these types of apps are very mature, and are often considered among the best selection for any language. The Apache Struts [1] library, released almost 10 years ago, was a big factor in promoting the development of MVC pattern web applications (and using Java to do it). Microsoft didn't come out with an "official" MVC framework for ASP.NET [2] until 2008.

As far as application servers go, there are many choices [3] with Java, which all meet the defined server specifications. This is also a factor in Java adoption - you can choose a completely free open-source server, a free server with a support package purchased from an external company, or a full commercial server. With .NET, you just have the official .NET server framework to choose from. Makes the choice easier I suppose, but removes your options (including any free ones).

[1] http://struts.apache.org/
[2] http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework
[3] http://en.wikipedia.org/wiki/Application_server#Java_application_servers

2
[+1] [2010-01-10 16:11:28] Tom Morris

All over the place. Obviously, for the server-side of client-server programming - web applications, enterprise applications, database backed stuff etc.

It's used heavily for mobile development - lots of not-smart phones have a Java Mobile Edition (JavaME - formerly known as J2ME) VM on them. Android doesn't use a JVM, but has a virtual machine called Dalvik which uses the Java syntax and is compatible with large chunks of the Java platform. There are also the Java smartcards which Sun was hyping a while back, and they are now hyping up SunSpots which are basically Java-based "smart tags" - sort of a bit like an Arduino and an RFID tag but which you can code for in Java. (Admittedly, the success of the iPhone has led people to Objective C and XCode over JavaME.)

There's a few cross-platform GUI apps. Vuze (formerly Azureus), jEdit, Limewire, Jave [1] (a nice ASCII art editor), FreeMind, BlogBridge etc. Sun have a page titled Swing Sightings [2] which lists all sorts of GUI apps. There's probably plenty more GUIs put together behind the corporate firewall in Java.

Personally, I use it for doing high-performance batch processing - basically, anything that will take a bit too long to run in Python or Ruby, I tend to do in Java (or Scala). Lots of people would do that in C/C++, but I tend to use Java because I'm familiar with the platform.

The strength of Java is also a weakness: it's a jack of all trades, but not necessarily a master of any.

[1] http://www.jave.de/
[2] http://java.sun.com/products/jfc/tsc/sightings/

3