The object-oriented paradigm is based on the idea that objects exist independently of each other, and that operations can be executed on them. Consequently, a user in a true object-oriented development environment should be able to interactively create objects of any available class, manipulate these objects and call their interface routines. • Platform independence – " Write once – run anywhere " capability
As a matter of fact you can not run a java program 'anywhere' unless there is a virtual machine. But its as good as anywhere. Also I know some folks who would say its "write once debug everywhere " but any such platform dependent bugs are probably VM issues. All in all this platform independence is a huge plus point for enterprise development saving tons of cash and effort in porting products.
· Ease of use
I'm not really sure how many hard nut programmers would agree with me but programs are easy to visualize when they are object oriented (once you get the hang of it). After the concept is built, it becomes much easier to realize it in code.
· Free runtime / compilers / tools
This was one of the best moves by Sun. The runtime is free, the development kit is free and now there are a ton of other tools built with java for java that are free. This makes java development easy and affordable.
There are a number of ways to measure the popularity of a programming language, for example, based on the number of:
- New applications written in the language
- Existing applications written in the language
- Developers that use the language primarily
- Developers that use the language ever
- Web searches
- Available jobs that require skills in the language
- Developers' favorites
Java has some other advantages as a teaching language
• Low cost. The tools needed to build and test Java programs
are available without charge. Sun makes the Java Development Kit (JDK) available over the Internet, where faculty and students alike can download it. The JDK-which includes the Java compiler and interpreter, among other tools-is admittedly spartan, but students should find it adequate for most programming assignments. Those willing to spend a little money will find nicer program development environments (such as Symantec Café and Microsoft J ++) available at moderate prices.
• Easy to test. Students can put their programs-written as applets-on their Web pages for instructors to test and critique. Instructors can monitor a student's progress at any stage by simply visiting the student's Web page.
• Student enthusiasm. Java has gotten so much publicity
that students are bound to be excited about learning it. By harnessing that enthusiasm, instructors can use Java as a vehicle to teach students a tremendous amount about modern-day computing. Students will be motivated by Java's growing importance in the "real world." Moreover, students will be thrilled by the ease with which they can build sophisticated GUI programs.
• Suitable for advanced courses. After students gain
familiarity with the basic features of Java in CS1, they can use its advanced features in later courses. For example, a course on operating systems can take advantage of Java's support for threads. The network classes that come with Java make it ideal for a networking course.
• Easy transition to C ++ and other languages. Java's syntactic similarity to C and C ++ should ease the transition to those languages.
• International appeal. The Unicode character set is an integral part of Java, allowing students to learn about the issues of developing software for the international market.
Java has significant advantages not only as a commercial language but also as a teaching language. It allows students to learn object-oriented programming without exposing them to the complexity of C ++.