Introduction
Java is chosen for the following reasons.
- Easy to learn: Java was designed for the C++ programmer, because it is derived from C++. The team of Java developers started a big project that will be platform-independent, but they decided to develop a new language. And, if they change the syntax of Java, then it would be difficult to understand a new programming language. That is why it inherits all the features of C and C++. For example, here is a simple program that prints "Hello User":
- class demo {
- public static void main(String args[]) {
- System.out.println("Hello User");
- }
- }
- Secure: Java is secure because it provides Encapsulation and Data Abstraction, by which we can do data hiding. That is how we secure our data. Not only Encapsulation and Data Abstraction, an Applet (it is a small program that runs directly in the web browser) also provides security.

- Free: Believe it or not, people want free stuff. Don't you? But, if we talk about an organization's cost, it is an important factor in the development to create a Java application that you need to pay for, but your idea.
- Documents Support Javadocs! Friends you have no idea about it. I am sure you will be amazed when you read it. It has all the stuff you want, when you learn Java, or when creating an application. It has everything about Java, like how to use a class, what method belongs to which class, and so on.Here is a link of Javadoc.
- Rich API: It is also one of the best reasons to learn Java, because it has a highly visible and rich API. If we talk about other programming languages, like Turbo C++, it has a simple interface and very poor quality animation capability. But in Java, it has a great interface and very high-quality animation capability.

- Robust: Robustness means that which is strong, powerful, and not affected by others. But, in what sense is Java strong and powerful? Here, robust means reliable and there is no programming language as reliable as Java. It provides a very low chance of error, for the programmer, because of its strong memory allocation, garbage collection mechanism, and exception handling, compared to other programming languages.
- Platform Independent: As I said earlier, the team started a project that will be platform-independent, but they had no resource to make a program platform-independent. That is why Java was born. Now, we can see that if we write a Java program, we can run in any environment, using the JVM.

- Object-Oriented: Object-oriented itself, is a different thing. It depends on class and objects, encapsulation, Inheritance, Abstraction and polymorphism, and Java supports all of the features of OOP. Using OOP, we can break complex code into a modular form and make a fine application, without giving extra effort.
- Multithreaded: Java supports multithreaded. Thread is a lightweight process that helps us to develop a program that can do multiple tasks at a time and it increases CPU efficiency. It is not supported by other programming languages.

- Open Source: Java is also an open-source programming language, by which we can make fast and cost-effective applications easily. And, the reason is, because it has a great framework like Spring, Struts, and so on. Additionally, it has many libraries that are contributed by Google and other organizations.
- High Performance: Java is a high-performance language, because the JVM is very intelligent. When we run a Java program the JVM does not interpret the entire code into machine instructions. It interprets the required code that will be executed. This enhances performance.
- Distributed: Distributed systems are those systems in which resources are shared. This can be done in Java using Remote Method Invocation (RMI). In RMI, there is a server and one or more clients, that can communicate or share resources, in a network area.

- Portable: Java is a portable language, because we can make a program in one computer, compile in another computer, and execute in another computer. Using its platform independence, we can write code in one operating system and execute in another operating system.
- Development Tools: Java has great development tools such as Netbeans, Eclipse and so on, that play a major role in development. Using these tools, we can create our code faster, because it provides help and great debugging capability.

Delan CollinsPosted Jan 10, 2015, 4:39 PM
i was a java rival at first but now am changing my take.i do both java and my beloved C#
Rajesh BishtPosted Jan 9, 2015, 8:03 AM
Java does not support extension methods.
Rajesh BishtPosted Jan 9, 2015, 8:01 AM
DID java support same code CLient and Server Like XAML....
Rajesh BishtPosted Jan 9, 2015, 8:01 AM
Did JAVA support Parallel programming like .NET / C# suport TPL (Task Parallel Library)
Rajesh BishtPosted Jan 9, 2015, 8:00 AM
Anas if JAVA is technology then What is J2EE and Spring and MAVEN
Rajesh BishtPosted Jan 9, 2015, 7:56 AM
What ever mrntions All feature also available in .NET and C#...Please dont misguide ?
Mahesh ChandPosted Jan 9, 2015, 7:49 AM
This is an interesting debate. I would love to see what other people think :). Hope we can get some dust settled after this debate. Good topic Anas Chaudhary
Vithal WadjePosted Jan 9, 2015, 6:59 AM
C# is the better and powerful now
Guest UserPosted Jan 9, 2015, 1:55 AM
Java is great, no doubt about it. There are so many Java developers around. But, I don't agree that multithreading is not supported by other programming languages, e.g., C# supports it. What I know from Java world, i.e., Applet is obsolete and it's Play, Spring frameworks which Java developers use for development.
Sam HobbsPosted Jan 9, 2015, 12:47 AM
Java is proprietary, not open-source. Sun sued Microsoft (and won) a few years ago because Microsoft had made improvements to Java. That lawsuit is the main reason Microsoft developed C# and .Net. Sun (Oracle now?) will not allow anyone to modify Java without their permission. They even sued Google (but lost) because Google used Java for Android. The fact that Java is proprietary is both good and bad since it means that Java cannot be messed up by others but it also means it cannot be improved by others.
Sam HobbsPosted Jan 9, 2015, 12:42 AM
Now that Microsoft is abandoning Silverlight there are fewer choices for client-side programming. Microsoft enthusiasts say that the alternative is HTML5. Well what they mean is JavaScript. They seem to ignore Java. I do not like JavaScript, if I cannot use C++ or C# then I prefer Java. Note however that Java has some differences from C++ that I do not consider to be improvements. Thank you for reminding C# programmers that Java remains to be a very valid choice.