Credit: Camila Tamara Silva Sepúlveda Java has survived for more than two decades and continues to be one of the top programming languages in use today. What accounts for the language’s success, and how has it changed to accommodate more modern technology? Java’s rise to power Java initially appeared in 1995, evolving from a 1991 innovation called “Oak.” It was apparently the right time for engineers looking to grow distributed systems. Some of the more popular languages back then — C, C++, and even Cobol for some efforts — involved steep learning curves. Java’s multi-threading, allowing the concurrent execution of two or more parts of a program, ended the struggle to get multi-tasking working. Java quickly became the de facto language for mission-critical systems. Since that time, new languages have come and gone, but Java has remained entrenched and hard to replace. In fact, Java has stood as one of the top two computing languages practically since its initial appearance, as this Top Programming Languages article suggests. It was James Gosling at Sun Microsystems, considered the “father” of Java, who came up with the idea for the language. He worked at Sun until Sun was acquired by Oracle in 2010. In the transference of power, Java became an Oracle product, but it hasn’t remained static. Continued innovation have allowed it to remain the most popular programming language. In addition, the Java community has had time to establish superior tools for writing, maintaining, and debugging code. The appeal of bytecode and portability Java implementations typically use a two-step compilation process. In other words, the source code is turned into bytecode by the Java compiler. The bytecode is then executed by the Java Virtual Machine (JVM). JVMs today use a technique called Just-in-Time (JIT) compilation to produce native instructions that the system’s CPU can execute. This promotes the “write once, run anywhere” (WORA) approach that Sun espoused in Java’s early days. Why compilation matters The flexibility of bytecode provides a real boon to portability. Instead of compiling applications for every platform, the same code is distributed to every system and the JVM in residence manages it. The problem comes in when small footprint devices don’t deal well with the overhead of interpretation that is required. In addition, the Java machine has grown considerably and is far too monolithic for small footprint applications that need to react quickly. As a result, we are seeing offshoots that involve significantly less overhead such as Avian (a lightweight virtual machine with a subset of Java’s features) and Excelsior JET (a complete Java Virtual Machine implementation enhanced with an ahead-of-time compiler) that provide optimized native executables that sacrifice portability for performance. Both cloud and Internet of Things (IoT) applications benefit. Shifting directions Other innovations in the Java world include GraalVM and SubstrateVM. GraalVM is a new just-in-time compiler for the JVM and works with other languages, as well as Java (e.g., JavaScript, Python, and Ruby). GraalVM can run in the context of OpenJDK to make Java applications run even faster with a new just-in-time compilation technology. It includes a new high-performance Java compiler called Graal that can be used with HotSpot VM or for an ahead-of-time setup with SubstrateVM. SubstrateVM greatly improves startup time and makes short-lived applications run faster. It’s a framework that allows ahead-of-time (AOT) compilation of Java applications into executable images or shared objects (ELF-64 or 64-bit Mach-O). Open vs. proprietary Oracle announced last year that the technical differences between JDK and OpenJDK would go away. The differences between the two today is largely cosmetic. Java is still free. Rumors of its imminent death arose a few years back, but OpenJDK has not lost any momentum. What roles do Oracle and Red Hat play? When Oracle announced it would no longer supply free binary downloads for JDK releases or write bug patches for OpenJDK after a six-month period, Java users were initially concerned. But the transition of support has been working well. Red Hat takes over when Oracle backs off. The passing of the baton seems to be smooth and reliable. When Oracle stops providing support, Red Hat takes over. The key to Java’s continued success While Oracle and Red Hat continue to provide a gap-free approach to supporting OpenJDK, Java’s earliest developers and these two companies can claim only part of the credit for Java’s eminence. As Red Hat’s Mark Little says, 50 percent of the credit for Java’s continued success goes to the developer community. Related content news analysis What is SONiC and how can enterprises try the open-source NOS? Software for Open Networking in the Cloud (SONiC) is an open-source networking operating system that has the potential to become 'the Linux of networking,' experts say. By Michael Cooney Jul 17, 2024 12 mins Open Source Networking news analysis OpenELA group pushes for bug compatibility with RHEL The world of enterprise Linux developers has been roiled of late by a dispute between Red Hat and several companies that sell support for similar distributions. By Jon Gold Aug 24, 2023 4 mins Red Hat Linux Open Source news Red Hat rivals form Open Enterprise Linux Association Oracle, SUSE and CIQ will form the Open Enterprise Linux Association, in response to changes at Red Hat that have upset the enterprise Linux ecosystem. By Jon Gold Aug 11, 2023 3 mins Linux Open Source news analysis SONiC test lab gains industry support Open Network Experience Center (ONE Center) for SONiC is being run by Aviz Networks with support from Cisco, Nvidia, Open Compute project, Supermicro, and others. By Michael Cooney Apr 19, 2023 3 mins Cisco Systems Linux Open Source PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe