One of the strengths of Java's Virtual Machine is that it can handle multiple threads simultaneously. The JVM is designed for large machines with multiple calculation cores and it often works with hundreds of threads at once without the process running into the soup. Therefore, other programming languages often come with emulators and cross compilers to make it run in the JVM.
Several websites with a lot of traffic choose this for Java. They can design software that runs on the PC and use the power of multicore processing on the server.
Ruby is one of Java's modern competitors who have won the hearts of developers with a neater, language-based syntax. But when Ruby fans want more performance, they take JRuby , a version with which Ruby is emulated in Java. This provides much better performance with multiple threads and a heavy load. At the time, the Sun developers were well aware of which details were important.
Religions, armies and nations know that you build loyalty when people are young. Java is the lingua franca when people study higher informatics and is often the first language students learn. She keeps that up, in good times and in bad times. When they learn new languages, they compare their strengths and weaknesses with Java. When they repent - many people leave the Java nest - they often base their opinion on what they have learned in those first lessons.
Java has many advantages in learning computer science. Some programmers hate to specify a type of data and see it as redundant programming. That may have been a bit heavy. It is a good way to teach beginners what exactly is going on in the computer. By specifying types, they are forced to think about this. The compiler can then see the errors if variables do not match.
Java is not the first programming language that focuses on simple compatibility on multiple platforms, but it is the most popular. It is not perfect; a missing library or an incompatible version and the whole thing crashes. It is not possible to run software that is compiled in JRE 1.7 for a PC with gigabytes of RAM on a Java ME smartphone. It is not that compatible again.
But Sun - and imidels Oracle - has done its best to make the compatibility on multiple platforms work as much as possible. If it does not work, it is usually understandable why that is so. If you use the correct version and there is enough working memory available, things will work. Java developers can use their environment to write and compile code for the user's device, whether it is a phone or a server. If the compiler has the correct libraries and checks whether the correct versions are present, the code will run. And that is of great importance to developers.
Java never got a big finger in the PC world, but the mobile market embraced the programming language. Let this be just the sector that has grown explosively in recent years. For example, the Android platform is based on Java and today has a huge market share.
This dominance is nothing new. The lightweight version of the language and the Virtual Machine, Java ME, was already widely used at the time of the feature phone, the forerunner of the smartphone. The feature phone still has a considerable market, especially in emerging countries. Add all these areas, server market and mobile market, and you have an impressive martial dominance.
Sun wanted to reach settop boxes with Oak (before the language was changed and renamed Java) and serve a large market there. That did not go according to plan, but Java managed to capture a place in the living room. A part of the Blu-ray standard has been developed on Java ( PDF ) and anyone who wants to add multimedia content to a disc needs Javac .
The disks do not only contain video material. The extra features and interactive content can be adjusted using Java code. Blu-ray discs are therefore a mix of compressed video and compressed Java code. You can go many ways with the Blu-ray standard.