Java: 7 Powerful Features For The Future
Java, unleashed in 1991, has become one of the world's most-used programming languages. Here are seven key features that will keep it viable in a world of supercomputing, Big Data, and the Internet of Things.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blt8a6db18257011702/64cb54694f0172dcd25a6fa2/Java_logo_and_wordmark.jpg?width=700&auto=webp&quality=80&disable=upscale)
Java. No other language defines the Web age of applications quite as thoroughly as this programming tool, which came to life alongside the World Wide Web. From its birth in 1991 at Sun Microsystems (which was purchased by Oracle), the language designed by James Gosling, Mike Sheridan, and Patrick Naughton has been a key part of many enterprise application efforts. Nearly 25 years on, does Java still deserve to be part of your development plans?
Java's main benefit has always been the promise of WORA: Write Once, Run Anywhere. In simple terms, this means a development team could write an application in Java and compile it into executable form, then have that executable run on any Java-enabled platform. It's a very, very efficient way of programming, but that efficiency does carry a few costs.
One of the major costs is that access to low-level machine hardware must be limited in order for WORA to work. Universal compatibility requires abstraction, and abstraction tends to be paid for in the currency of performance. Java's distance from the hardware is a key reason that C++ remains a major development language, often alongside Java. But that's only one cost. The other big cost might well be one that places major limits on Java's future.
[ The legacy continues. Read Fortran: 7 Reasons Why It's Not Dead. ]
Java applications often run in a browser window, and that familiar browser interface is one of the reasons so many enterprise developers use Java for their applications. The problem is that Java becomes part of browsers through the plug-in architecture, and that architecture is going away. The new Microsoft Edge browser doesn't allow for any plug-ins. Chrome now severely limits plug-ins. Other browsers are likely to follow suit. So does this mean that Java is over?
No, Java isn't over. Java applications will still run fine as separate, stand-alone applications. The sheer tonnage of existing Java code means that thrifty developers (and development managers) will be using Java for a long time to come. What do you need to know about Java, then?
Software development and the languages used for programming constantly evolve. Java is part of that evolution. Let's take a look at some of the major issues surrounding Java today and see how they might affect your development efforts.
Are you coding in Java? What do you think about its future? Let me know what you think -- and what you think I missed in my list. I'll see you in the comments section below.
Java's time as a programming language for browser-based applications is coming to an end. When you move to Windows 10, you'll leave Java in the browser behind as you shift to the Edge browser, which flatly prohibits plug-ins.
Now, here's something (not very) secret: If you absolutely must keep your browser-based Java applications, you can. Windows 10 also comes with Internet Explorer 11, and it's quite happy to allow plug-ins such as Java. That means you'll still have the plug-in based security concerns, but you already knew that.
For the future, though, you should plan on moving your Java applications to the desktop. They'll really be quite happy there, and your users will learn to cope with life lived outside the browser window.
Java and JavaScript are very different things: Java is a compiled programming language developed by Sun Microsystems; JavaScript is an interpreted scripting language developed by Netscape. Java applications may run in a browser (using a plug-in architecture), though Java applications can run as stand-alone programs. JavaScript must run within a browser window -- it has no life on its own.
JavaScript remains a vital part of the browser world moving forward. It works hand-in-hand with HTML5 to provide rich, interactive browser experiences for users. If you are a developer with JavaScript experience, your future looks just fine
If you're a development manager, then you're quite safe planning an application path built on HTML5 and JavaScript. The combination promises to power the enterprise Web -- and the mobile Web -- for quite a long time to come.
Oracle has continued to develop Java, and plans have been laid out for the release of Java 9 sometime in 2016. The "big picture" is that Project Jigsaw will come to fruition and make Java much more modular. This means more of a "plug-and-play" architecture than one that draws its structure from classical programming models.
The developers have laid out a number of goals for Project Jigsaw, but they boil down to two: Performance and scalability. Modules offer the possibility of a simplified structure. In general, a simpler structure translates to smaller, faster execution code. The ability to easily pop modules into and out of a full application should make Java code applicable to platforms up and down the size scale, from the largest engineering workstations to embeddable Internet of Things processors.
Java began its life as a programming language for applications in what we now call the Internet of Things. The original developers of the language were looking for a programming language for Internet television. The problem was that, in 1991, the embedded processors available weren't up to the job of supporting both the Java Framework and the application. Today, all that has changed.
The Java Platform, Micro Edition (JPME) is Oracle's solution for embedded and mobile platforms, aand for specialized platforms such as televisions and media centers. The possibility of "write once, run anywhere" in the IoT universe offers a powerful cost savings potential. Even more potential cost savings come through enterprises being able to take developers versed in business Java programming and assign them to IoT tasks.
Put it all together, and Java could well be one of the major components in a successful enterprise IoT strategy.
The same Java Platform, Micro Edition that creates opportunities for Java in the IoT universe makes the language a strong contender for mobile application development. It must be noted that Java faces strong competition in the iOS world. Apple's Swift has become the programming environment of choice for developers hoping to get their applications into the App Store. If your primary market is Android, though, then Java can be the tool that powers a strong development effort and provides cross-platform features.
When you think of programming languages for high-performance computing (HPC) you might not think of Java, but there are scores of HPC projects around the world where Java is the power behind the fluid analysis (or astronomic observation). Java's basic architecture wouldn't seem perfect for HPC, but it has a couple of features that make it a strong contender for high-performance applications.
One of the key HPC features is Java's native support for multi-threaded execution. Another is the ease with which Java can allow developers to program networked applications. These are counter-balanced somewhat by Java's difficulty with multi-core processors, but the scientific interest in Java has led to a number of projects that have developed enhancements to the language for specific HPC purposes.
Java is probably not going to replace C++ for HPC work, but it is certainly nipping at FORTRAN's aging heels. It could be the language that makes the most sense if your programming staff consists of teams of grad students who know Java cold.
Wait, Java can be a power in Big Data? It really can, because it can tie one of the most powerful components of Big Data together with the heart of modern High-Performance Computing (HPC). Last year, IBM showed a pilot project in which a Hadoop instance was run on a system built around Tesla Graphical Processing Units (GPUs). It's an amazingly powerful combination that could easily allow for analysis of the most complex data sets.
GPUs are the processors that power many of today's fastest supercomputers. Java's "write once, run anywhere" architecture means that teams can develop their software on workstations, and then port it to these powerful systems. When the systems are running Big Data database managers like Hadoop, the results can be impressive.
So, where are you developing your high-performance applications? Are you using the same language that you would use for the Internet of Things? Or for a new browser-based enterprise workflow application? Let us know what you think of the once and future Java. The big question is this: Would you advise someone just entering IT to learn Java as one of his or her foundation languages? We'd like to know -- and so would the next generation of programmers.
Wait, Java can be a power in Big Data? It really can, because it can tie one of the most powerful components of Big Data together with the heart of modern High-Performance Computing (HPC). Last year, IBM showed a pilot project in which a Hadoop instance was run on a system built around Tesla Graphical Processing Units (GPUs). It's an amazingly powerful combination that could easily allow for analysis of the most complex data sets.
GPUs are the processors that power many of today's fastest supercomputers. Java's "write once, run anywhere" architecture means that teams can develop their software on workstations, and then port it to these powerful systems. When the systems are running Big Data database managers like Hadoop, the results can be impressive.
So, where are you developing your high-performance applications? Are you using the same language that you would use for the Internet of Things? Or for a new browser-based enterprise workflow application? Let us know what you think of the once and future Java. The big question is this: Would you advise someone just entering IT to learn Java as one of his or her foundation languages? We'd like to know -- and so would the next generation of programmers.
-
About the Author(s)
You May Also Like