This is a guest post for Computer Weekly Open Source Insider written in full by John DesJardins in his role as field CTO and VP of solution architecture for North America region at operational in-memory computing company Hazelcast.
“The report of my death,” literary giant Mark Twain once said “was an exaggeration”. Like Twain, Java has had a transformational influence in its field. It’s also been pronounced – at various times during its history – as either dead or dying.
It’s now 25-years since the first release of Java, so DesJardins writes as follows to set the record straight…
Java brews up
It’s easy to forget how important Java – celebrating its 25th birthday – has been.
Before Java, computing was a place of siloed and proprietary clients and servers. Java was more than just a programming language – it was essentially a platform for building a wide range of applications. Java delivered a consistent and efficient programming experience for developers combined with write-once-run-anywhere portability.
Today, we see that in containerisation and cloud.
Java is poised to begin its third act – supporting cloud-native, data-intensive applications in analytics and Artificial Intelligence and IoT on 5G. That’s because Java’s foundations have continued to develop along with those first principles of developer productivity – simpler to build, more efficient code – with platform scale and performance.
Not, that Java’s data destiny was manifest – Java’s had wobbles.
Java’s first act saw success in the enterprise – traditionally a siloed, expensive and inefficient environment. Two decades after its birth, 90 percent of the Fortune 500 and 10 million programmers had adopted Java.
Act two saw Java adopted by the web giants including Twitter, Facebook and LinkedIn. But the prelude was difficult.
The pace of new features had slowed under Java’s former chief steward Sun Microsystems, while open source flourished… but Java did succeed, bouncing back with features making it easier for programmers to build while employing less code – producing applications that are efficient, faster and easier to maintain. As the cloud emerged, Java evolved: lambdas allowed the production of small, event-driven multi-code services while modularity helped microservices.
Java moved into big data and analytics. Hadoop, Doug Cutting’s distributed storage and batch framework, was written in Java. Hadoop now accounts for four percent of the DBMS market, bigger than non-relational alternatives while Facebook has become one of Hadoop’s biggest users. Hadoop has given Java a big boost in this field.
As Java moves to act three, the challenge is performance and throughput of distributed applications, services and data. Latency is the new downtime for large-scale, cloud-native financial services applications, web-tier e-commerce, AI and machine learning.
Distributed messaging, parallel and concurrent processing are in Java’s DNA, making it suited to multi-threaded and microservices’ workloads. Millions of rules, threads, processes and data calls can be processed simultaneously per second across hundreds of nodes.
APIs in caching mean data can be kept in memory and called locally. Lambdas and modularity make the language and platform efficient.
When coupled with an in-memory grid, a Java-based system can ingest, transform and analyse large volumes of data in seconds – enabling rapid, local access and lightening the load from databases and avoiding the need to shift data across your network. Processes in a Java cluster can also be architected in such a way as to handle data replication, meaning availability and reliability because processes can be dropped without impacting the entire system.
I’ll also point out that Java is important for AI and ML in the enterprise.
A survey of more than 2,000 data scientists and ML developers found those building with Java elsewhere would pick Java for AI and ML. Being rooted in open source means developers also have a community-supported AI and ML library to call on. What are they building? Applications for network security, cybersecurity and fraud detection.
When coupled with an in-memory architecture, Java helps with the ingestion, transformation, scoring and post-processing of data at a performance level that today’s workloads require.
Java’s success was founded on efficient programming and unified computing. As Java begins its third, data-driven act, and as we seek to overcome the latency challenges of distributed computing, both language and platform are primed for a robust future.
About John DesJardins
John DesJardins has expertise in large scale computing spanning data grids, microservices, cloud, big data, Internet of Things (IoT) and Machine Learning. John brings over 20 years of experience in architecting and implementing global scale computing solutions, including working with top Global 2000 companies while at Hazelcast, Cloudera, Software AG and webMethods. He holds a BS in Economics from George Mason University, where he first built predictive models, long before that was considered cool.