What Is The Latest Technology In Java Programming?
Technology is moving fast and so does Java technology. Java programming has completely changed in past decade. Millions of applications are developed using Java every day. Java is still one of the most popular programming languages among developers and employers.
Since oracle acquired Sun Microsystems, there has been a significant change in the language. As a competent java developer, you need to stay on top of the latest trends and features to stay productive.
I am a full-time java developer dealing with multiple applications in java. This article is based on my experience and interaction with other experienced developers in java technology.
In this article, I have tried to cover java feature highlight, interesting libraries, frameworks and open source projects along with some career path options for new java developers.
If you think I have missed out on something in this article please feel free to suggest it in comments. I will try to update the article to make it useful for our huge java developers community on the internet.
I have been writing about java related technology for almost 10 years and most of the things are same in java technology. However, to learn java related latest technology any developer need to keep up with latest trends. The most important changes are as part of latest features in Java language itself and before you proceed, make sure you have the best laptop for programming to ensure you can work as efficiently as possible.
Popular New Features In JavaRecent versions of Java have introduced very powerful features. Some of my favorite features are listed below
Lambda Expressions: Since Java 8Lambda expressions in java are a way to achieve functional programming style code. These are good for some specific type of problems.
Default and Static Methods In InterfacesDefault methods are a powerful feature in java interfaces. This allows architects to redesign systems easily. Now you can easily add one more method to an existing interface without invalidating all implementing classes of it.
Static methods can be now added to a java interface. This can avoid an explosion of utility classes in your project.
Performance Improvements In Java 8
PermGen Space is RemovedThe PermGen space has been removed from Java 8 memory model. It has been replaced with an expandable metaspace to store JVM metadata in native memory.
Garbage Collection : G1 CollectorThe G1 (Garbage-first collector) was introduced in JDK 7. It has been designed support larger heap size requirements of applications. Though this new Garbage collector is available in Java it is still not the default garbage collector. It may become the default collector in Java 9
Asynchronous IO vs Multi-Threaded IO in JavaJava development is moving towards asynchronous IO. The latest recommended way to do IO in Java is using java.nio library. However, the programming using java.nio is still fairly complex. Therefore many developers prefer open source frameworks like netty
Despite the availability of features and frameworks, asynchronous IO is still painful in java. Current abstractions are not easy enough to be used by inexperienced developers. This causes a lot of unwanted performance and code maintenance issues.
Asynchronous IO is one of the strong reasons why many experienced web developers like Node.js - it is simple to do async IO in Node and it does it very well.
Interesting Libraries and Frameworks
Below are some interesting and noteworthy libraries, frameworks and open source projects that play an important part of java developers life these days.
Big Data Technology in JavaJava is still the leading language for big data analytics and map-reduce development. The two key open source projects to learn big data technology are listed below
Hadoop is still leading framework in big data computing technology. Map reduce development in java is very popular due to good support from apache.
Apache Spark is very popular big data computing framework that can run on top of Hadoop, Hbase, Mesos or Cassandra. It is used due to faster development and better performance. It supports Java and many existing java developers like to use it for writing efficient MapReduce jobs.
NOSQL DatabasesA large number of applications are now being developed using various NOSQL databases. The choice of database varies based on the needs of the project, however, some of the below listed NOSQL databases are reasonably popular now.
Redis is an open source in-memory database cache system. It is very powerful and used in many highly scalable systems.
Apache Cassandra is one of most flexible NOSQL database that provides tunable consistency. It is a popular choice for a scalable system that is developed using java.
CouchbaseCouchbase is an enterprise licensed NOSQL database. It is popular for extremely fast response time.
Relational DatabasesDespite a lot of buzz around NOSQL databases, a relational database is still being used for a large number of applications. Some of the popular relational databases are listed below.
MySQL DatabaseBased on Github projects, MySQL database is the most popular choice for Java open source projects. Below snapshot shows the popularity of Postgres SQL database on Github open source projects.
Postgres SQL DatabasePostgres relational database is also very popular open source relational database. This database is very popular among PHP open source community. It is also commonly used for Java-based open source projects. Below snapshot shows the popularity of Postgres SQL database on Github open source projects.
Oracle DatabaseOracle is still the most popular enterprise relational database choice. This is not free however enterprise customers still rely heavily on it. Oracle is not as popular as MySQL and Postgres in open source community for obvious reasons. See the below snapshot of oracle usage in Github java projects.
Popular JSON Libraries in JavaJSON is the most popular format for REST based web service development. This is not different for Java technology either.
Google GSONGoogle GSON is the most popular open source JSON library as of now. This is based on a number of open source projects on Github.
JacksonThe second most popular option for JSON parsing in java is Jackson.
Functional LanguagesThere are two leading functional programming languages that run on JVM These languages are being used by developers who like functional programming style.
Java Developer Career PathsJava programming has been used for multiple types of projects. I have noticed 3 major types of a career path for java developers.
Backend Developers / REST Service DevelopersBackend developers are responsible for writing java applications that can interact with a relational or NOSQL database and perform some business logic. Many applications are being developed with java as backend. This includes mobile apps as well.
The job of backend developer is to create web enabled application that can be exposed as a web service. This service can be called from any client including web or mobile or any IOT device.
Full Stack DeveloperFull Stack developers in java are primarily working on MVC frameworks like Spring MVC, Struts or similar. This requires an in-depth understanding of Core Java, Servlet API, and respective framework usage.
There is still a ton of legacy applications that use traditional Java-based MVC frameworks. Therefore the job market is good for these developers. However, I foresee this will change very fast.
If you find yourself working on Servlet, JSP, JSF or MVC based frameworks too long it may be a sign that you need to change your job to survive in the job market.
Data Scientists / Big Data AnalystsMany companies are doing big data analysis with the help of MapReduce developers. Data scientists are java developers who can write map reduce jobs in Hadoop or similar environment. This requires basic knowledge of core java and detailed understanding of the Hadoop ecosystem. Data scientist jobs are well paid and plenty in recent past. Many ETL developers are also moving toward this job role.
Many java developers are learning to use Spark and quickly getting a high pay job as a data scientist.
I see think the data scientists job market is still evolving and more jobs will be available for beginners as well.
I hope you find this article useful. Java development technology has changed over last decade. Staying up to date with latest java trends is key to survive in a good or bad developer job market.
- Updated Broken Links and Added new reference links - January 24th 2017