← Back

Is Java still the programming language to use?

Readability is a particularly valuable trait for a programming language, especially one used for writing new software. With complex software, programmers must be able to understand code that may have been written months, or even years earlier.

And that is exactly why Java has remained on the development workbench when many other widely used languages of the 1990s, such as Delphi or Perl, have been pushed to the side or used only for a select set of duties.

Java's success in remaining relevant on the ever-changing landscape of software development has been its relative simplicity. It is pretty easy to read Java code and figure out what it means. There aren't a lot of obscure gotchas in the language. Even Google chose to use Java as the programming language for its massively popular Android mobile operating system and it has led to a renewed interest in the language from a whole new communities of software developers.

In this age of rush, there is an obvious trend to produce code that is highly productive while lessening the headache of maintenance. Java seems to deliver just that.

Java developers are in great demand
People with Java-related skills are a hot commodity in the job market. With employment a vital concern to everyone, the abundance of Java jobs will keep the language and platform in trend.

The ITWeb Salary Survey 2015 highlighted that when it comes to those who have software development as their primary expertise, Java developers (amongst others) tops the best-paid list, all averaging over R580 000 a year.

A growing community
There is a huge community to help the programmer in need in most critical situations. Blogs, articles, code snippets, you name it. You know that help wizard that pops up in Windows, eager to provide hints and suggestions? The Java community has built many such wizards. Essentially, programmers are always looking for ideas and problems that inspire them and are eager to help, offer suggestions to one another through numerous blogs and forums.

Java is rich in Application Programming Interface (API) documentation, concept articles, tutorials, sample codes. Apart from that, there are several books available covering almost every corner of Java. Many of them are freely downloadable. Though not an ideal way of learning, I suppose if every documentation, tutorial, article is followed one do not even need a hard copy of materials to learn Java.

Write once, run anywhere
Perhaps the most exciting quality of Java is its platform independence, write once and run anywhere. The Java compiler does not create an executable file, but rather it produces a half compiled code, called bytecode. This half compiled code is given to the Java Virtual Machine (JVM) installed in a specific platform (also known as the operating system). JVM is a layer above the operating system that understands bytecode and processes that code further in order to run the application.

Portability, speed and security
These three are the most essential pillars to support modern programming languages. Many of its predecessors failed in this aspect. For example C++ programs are very efficient with respect to speed, and portability but doesn't have resilient security. Many of its gaps can be easily exploited and tweaked to inject insecure code. Java runs through several layers and does not have a direct access to the underlying operating system. This however compromises speed but ensures reliability. So a happy balance among the three is often more desirable than one exceptional feature.

Java, while a successful platform for more than 19 years, certainly faces challenges. What follows are just a few of the development issues and what they mean for Java.

Performance
Performance is a concern of applications written in any language. Most programmers are familiar with common performance issues using a conventional language such as C# with a stand-alone or even a server application.

In addition, Java applications do struggle with problems surrounding the collaborations between modules running on different systems. Performance problems may clear themselves in unexpected ways or appear to be caused by different parts of the code other than the actual problem area. Identifying the performance holdups rapidly is a significant challenge in distributed application development.

Reliability
Enterprise Java applications, especially distributed ones, are often mission-critical in nature: all parts of the application must work perfectly at all times. Developers and development managers must be able to measure the reliability of their applications accurately. While the characteristics of the language tend to make Java applications less error-prone, there are still plenty of ways to introduce runtime errors.

Java makes it possible to write highly threaded applications that make sense in a distributed environment. But using threads means that problems with resource disagreement and deadlock are much greater.

Testing
Java applications face the same testing problems as traditional ones. They must be tested as thoroughly as possible before saved, and developers should have a good idea of the extent of the test coverage before certifying an application. Distributed software systems written in Java, however, are extraordinarily difficult to test and debug. Because components reside on different computers and must work together perfectly for the application to work properly, all components must be tested simultaneously.

Every single developer has his or her own preferences when it comes to using a language for a particular project, which language do you as a developer prefer?