Welcome!

Agile Computing Authors: Liz McMillan, Elizabeth White, Pat Romanski, Mike Raia, PagerDuty Blog

Related Topics: Java IoT

Java IoT: Article

"Java Is Dead, Long Live Java!" – The Future of Java

Lightweight Frameworks Like Hibernate, Spring, and HiveMind are the Future of Java

It seems that lately lots of writers have been bashing Java. Some people seem to think that Java has stagnated, and that the "hyper-enthusiasts" have left. Well, the rest of us are just quietly coding on a platform that is more exciting than ever. Other technologies like Ruby, PHP, .NET, or AJAX might get more hype and acclaim lately, but hype aside, Java still produces the majority of innovation in the software profession.

You can get a sense of Java's health by simply looking at how many projects are out there using Java. Pop on over to Sourceforge and look at the number of projects by language: http://sourceforge.net/softwaremap/trove_list.php?form_cat=160.

Certainly Sourceforge is not the final measure, but it's a reasonable reality check. Anyway, you'll find 17300+ Java projects, the most of any language. That's more than PHP (12675), Ruby (425), and .NET (3094 C#, 347 VB.Net) combined.

Because of its prominence, Java gets a lot of attention and with it much criticism, some of it valid. What many may not realize is that some big breakthroughs have arrived and that the Java development landscape is solving important problems. Let's take a view of where Java is going to go in the next year or two as these ideas gain traction.

The first big arena of innovation is the addition of scripting support. Some people rightly claim Ruby or Python is better the Java for some tasks. Groovy and Beanshell solve these same problems and will become a standard (in the JSR sense) part of the Java stack. Each offers something better than standalone scripting. Both integrate into a truly mixed environment with compiled bytecode and interpreted scripts interoperating smoothly. Beanshell's syntax offers as little surprise as possible for the Java developer and Groovy gives a Ruby-like syntactic efficiency, but can also be compiled to pure bytecode and reused seamlessly, a big improvement over JRuby or Jython.

Second, the days of heavyweight frameworks are gone. J2EE-style EJBs are out. Now, the lightweight frameworks like Hibernate, Spring, and HiveMind are the future of Java. The heavy Struts of the past is being replaced with two new directions: Struts Shale based on JSF and Struts Ti is a wholesale merge with Webwork. These projects share a common idea that the framework should stay out of the way of your object model. EJB3 takes the same view.

A third major innovation where Java leads is aspect-oriented programming (AOP). AOP will unclutter your code by moving "cross-cutting" concerns like logging and security to transparent method interceptors. AspectJ is the Rolls Royce for AOP, but Spring has lightweight AOP themes as does the new JBoss.

Fourth, the PHP crowd had a legitimate gripe that banging out a simple web page took too much work if you were using JSP and Struts. But our templating solutions like Velocity, Freemarker, and now Groovy don't make you choose between ultralight text generation and powerful mid-tier solutions. Groovlets should make for some rapid servlet solutions. For those people who really like PHP, keep it: Java 1.6 makes it the reference implementation for the new web scripting language bindings, so you can do your web views in PHP and use Java for model and controller.

Finally, Java's traditional strength in the tools arena just keeps increasing. Eclipse is the best IDE on the planet, and it appears that Eclipse has reached critical mass like Ant and JUnit did, in that people simply expect solutions that extend it. Eclipse's team coding capabilities for CVS and Subversion (via the Subclipse plugin) are first-rate. The refactoring and debugging support are top notch. Integration of standard tools like ant, compilers, JUnit, and javadocs are about as good as you can imagine.

So perhaps the hyper-enthusiasts have left and the buzzword mongers will proclaim that Java is dead. If Java is "dead," it's only because it was laid to rest so that a better, lighter, more agile, form of Java could replace it, so Long Live Java!

 

More Stories By Bryan W. Taylor

Bryan Taylor is a Senior Software Engineer at Rackspace Managed Hosting based
in San Antonio, Texas. He has designed and developed enterprise systems for
over 10 years.

Comments (21) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
ash 03/17/08 12:05:00 AM EDT

reply to #20:
hey maciej, i faced the very same problem that you had faced(even i had a athlon1700 +512 mb ram). but after upgraded my ram to 1 gb, eclipse runs smoothly. eclipse is a ram guzzler for sure, but its necessity undermines everything else.

Maciej Grela 02/08/06 07:38:18 AM EST

Hmm, Eclipse is the best. I`d say s/best/beast/ . Ever tried to run it ? For me its the sloooowest software i`ve used. And I have an athlon1700 + 512 MB. I have yet to see a fast and slick java application which has nice features and doesn`t eat my whole ram.

Hal Arnold 02/06/06 03:13:42 AM EST

Nice article; but one niggling point: your assertion that Eclipse "is the best IDE on the planet". Those of us that use Idea would beg to differ.

Rick O'Shay 02/04/06 03:02:31 AM EST

Classic JDJ article: a misinformed pile of google scrapings that appears to have been stitched together at the last minute. The future of Java is EJB 3.0 and Java 5.0 with Facelets and JSF. EJB 3.0 embodies Hibernate. Java 5.0 supports aspect-oriented features. JSF replaces Struts and Facelets replace Tapestry and other frameworks with a standard. What these technologies have in common is the mind-boggling simplicity of using them. If you want to write about the future of Java you should look at the new features and where they are going with it.

Rick O'Shay 02/04/06 03:00:51 AM EST

Classic JDJ article: a misinformed pile of google scrapings that appears to have been stitched together at the last minute. The future of Java is EJB 3.0 and Java 5.0 with Facelets and JSF. EJB 3.0 embodies Hibernate. Java 5.0 supports aspect-oriented features. JSF replaces Struts and Facelets replace Tapestry and other frameworks with a standard. What these technologies have in common is the mind-boggling simplicity of using them. If you want to write about the future of Java you should look at the new features and where they are going with it.

Bryan Taylor 01/23/06 11:20:20 PM EST

More responses from the author...

Several people take issue with my point that "Eclipse is the best IDE on the planet". No one who objected had any rebutal to the reason I gave why Eclipse is the best: it has reached critical mass as an open source extensible platform whose community is assuring that all important tools work with it.

Anonymous Kuhirt threw us a barb: "afraid of .NET, are we?" Yes, very much so. For two primary reasons: (a) vendor lock-in and (b) security. The java community has embraced open standards and open source, and Microsoft simply doesn't offer that. I don't see much traffic crossing that divide in either direction.

Finally, some people seem to think that because I'm pro-Java, I advocate it as the one-size fits all language. Of course, I never said that. In fact, my first point about groovy and beanshell filling a gap pretty much guarantees that I don't think programming is a one size fits all task. The same goes when I touted PHP interoperability. It would be hard for me to argue against C being the right tool for some tasks, since java and my OS are all written in it. C is great for performance critical tasks, and Java plays along with C via JNI as Eclipse's SWT proves. Sometimes you do need to control memory use more than Java allows. But choosing C without specific evidence that you need the extra performance is simply a form of premature optimization. In most enterprise settings, where time to market and long term maintainability drive the economics, it is an very wrong choice.

Disappointed 01/16/06 04:43:58 AM EST

I think he's a Senior Engineer with 10 year experience...

Jman 01/16/06 04:42:07 AM EST

Do JDJ publish college kid articles these days?

Disappointed 01/16/06 04:38:57 AM EST

Nothing wrong with the article except that it has no stuff just fluff. Everything is old news and provide no meaty support for personal opinions. I think its recieving so much flake not because people disagree generally to the stand points, but because we really so seldom see such a unprofessional article being written.

Anonymous Architect 01/16/06 04:14:06 AM EST

The most naive article ever! nuff said.

Reader 01/16/06 04:05:30 AM EST

Eclipse the best IDE on the Planet??? Its great, but I wouldn't say best. Personally I prefer IDEA, even thought I use eclipse on a day to day basis (More than Idea) because its the company standard. Some people think Visual Studio is King, which is also justifiable. I don't wanna get into a fanatic religious war on IDEs, but I'm just annoyed by unsupported claims. It totally takes away the credibility of the whole article (even though the article is not related).

Anonymous Kuhirt 01/15/06 11:28:32 AM EST

"Java remains at the top today and for at least then next few years"

This is exacly the self-reassurance I was talking about. The "rejoice - we're at the top" feeling (afraid of .NET, are we?). However, being at the "top" does lead only one way: down
(BTW: there are areas where COBOL is still at the "top", too. Not because of technological merits and active development, but because of huge amounts of code written in the times where people thought about COBOL like you think about Java nowadays).

As someone else said once (I forgot the name): "If your only tool is a hammer, every problem looks like a nail."
Likewise if everything you know and care about is Java, you have to treat every task within the limits of Java. However, I can easily name you tasks where Java would be far from a good choice - especially if you step out of this year's hype word collection (AJAX, Spring, etc.): You'll find that Java is by no means the end of all and that far from all shortcomings has been addressed successfully.

Development like Java 1.5 (mostly syntactic sugar) and popular add-ons to Java (techniques / librarie) like AOP, Hibernate are in fact band-aids, covering shortcoming of Java which add up over time, giving Java that "crufty" feeling it has.

And last but not least - if you only know and care about Java (with that elitistic feeling of "oh, but we are at the top"), you'll be condemned to re-invent solutions / techniques which have been here long before ..

Bryan Taylor 01/14/06 04:44:15 PM EST

As the author... I'd like to respond to some of the comments.

Anonymous Kuhirt wrote "Only people admitting that there are shortcomings and who are willing to look over the (Java) fence are able to keep Java from becoming the next Cobol)." It appears he didn't understand that this is the theme of the article. Java remains at the top today and for at least then next few years precisely because the Java community has seen and successfully addressed shortcomings.

Mr. Frustrated with the Writer wrote "The entire article focused primarily on web development and minor advances in the development experience." Only my fourth point and arguably half of part of my second point concern web development. My discussion of Groovy, Beanshell, Hibernate, Spring, Hivemind, AspectJ, and Eclipse do not concern web development.

He also wrote "AJAX is *not* a technology, it's a technique, and one, at that, which works very nicely with Java as the server element." Setting aside semantic bickering over the difference between a technology and a technique, I agree and said nothing to the contrary. The only reference to AJAX my the article concerns other commentators who over-hype AJAX in java bashing articles. Specifically, there was a widely circulated article in Business Week recently called something like "Java? It's so Nineties" that casts AJAX as one of the reasons for Java's supposed decline. This point is completely nonsense, to be sure, but the nonsense didn't originate from me.

Anonymous Kuhirt 01/14/06 06:52:43 AM EST

Sorry, this article is just stupid. E. g. the

"Eclipse is the best IDE"
opinion.

No matter how great something is, there is no "best IDE" the same way as there is no "best language". Anybody who is seriously thinking that there is only one true way for every problem on the planet can't be taken serious and should stop littering websites with his wishfull thinking ..

(I am a software engineer and use Java most of the time. I see such non-sense "XY is the best" comments as the self-reassurance of blind followers of XY
and most of the time it is a sure sign that XY's best days lay in the past. Only people admitting that there are shortcomings and who are willing to look over the (Java) fence are able to keep Java from becoming the next Cobol).

Mr. Frustrated with the Writer 01/13/06 12:59:11 PM EST

The entire article focused primarily on web development and minor advances in the development experience. If nothing else, this would suggest that critic's complaint that innovation has left the language is true! All of the big development technologies and techniques that have become part of the Java world (Hibernate, Spring) have been ported quickly to other languages, leveling the court as far as language-supporting technologies are concerned. I was happy to see the changes that 1.5 brought along, especially generics since that's been a problem that had been solved far too long ago to leave out of Java. But as far as breakthroughs are concerned, I'm with the critics on this one. If I had to pose one challenge to the Java world, it would be to free us developers of some of the limitations of Java that don't exist with other languages; i.e. running in a JVM, we get access to such a limited memory space that anyone writing a memory-intensive server application is forced to work in another language - something I've met several times in my work.

In all, though, what bothered me the most was the actual words of the article. I've unsubscribed from the JDJ for a reason (since they aparently fired all of their proofreaders)! AJAX is *not* a technology, it's a technique, and one, at that, which works very nicely with Java as the server element. "Some people rightly claim Ruby or Python is better the Java for some tasks." - indeed.

To the commenters, don't call "long live Java" as if you could predict the new languages and technologies on the horizon. Those who will hold strongly to their Java in good days and bad, as other stronger more innovative software paradigms come to life, will be left in the dust. Maintain your job security and adapt. Long live the next best platform.

Donald Fraser 01/13/06 08:31:58 AM EST

I am a Java advocate, but I have many gripes with the Java language. The sort of gripes I have are similar reasons why Java evolved out of C/C++ in the first place.
For example memory not being released from objects after they have gone out of scope. The Java solution was to remove the responsibility of memory management from the programmer and place it in the JVM. There are many other things that Java improved on in the C/C++ language but there are many more things that the language still lacks.
For example why can I still get null pointer exceptions? Bad programming! This problem can actually be solved by the language. Just take a look at the Eiffel programming language - it pioneered the concept of "design by contract" which solves boundary conditions and assignments to all parameters thus eliminating the null pointer exception problem along with a number of other problems.
How about the super class change method name problem? I change the name of a method in a super class and all the sub-classes that overrode that method are now broken - but my programme still compiles! The Delphi programming language had that one sorted out from day one!
These are just some of the reasons I believe Java has a limited life. Yes I believe Java will be here to stay, just like C and C++ are still with us today but there will come a time when everyone else is using the "other" language simply because its better. Unless of course Java evolves to meet these modern programming concepts, let us hope it does, long live Java!

pcdinh 01/11/06 11:54:30 AM EST

Eclipse is a very good universal IDE. But Netbeans 5.0 make me feel more comfortable when working with Java.

Li Moore 01/10/06 06:14:16 AM EST

Google makes extensive use of the Java platform. Large parts of popular Google products are written in Java. We also use Java in many internal systems and products under development.

Anonymous Brave guy 01/10/06 06:03:24 AM EST

Java has theoretical limitations that mean it will always have difficulty keeping up with a well-optimised C++ program.

And of course, there are still the same fundamental weaknesses in Java's design that there always have been...

Java doesn't have value types, so everything's dynamically allocated by default.

Not everything is an object, so you have boxing overheads even in simple things like containers unless you use generics.

Those generics have only just been introduced into the language, and are a poor imitation of C++ templates, offering few of the advantages that template metaprogramming has been providing to serious, high performance libraries in C++ for a few years now.

Java's floating point model is constrained by its portability requirements -- for a while it was even theoretically impossible for a JVM to meet them, IIRC -- which unavoidably prevents the use of many math optimisations.

I could go on, but I'm getting bored, so I'll leave the record straight enough and stop there.

xtracto 01/10/06 05:58:59 AM EST

I like Java (as a language) a lot, I have used it for enterprise level applications (supply chain management software) and currently I am using it to make market based simulations.

The wrong thing about Java is the Virtual machine implementation. You can blame Sun for that. If Java is slow, grabs lots of memory and all that it is because of the virtual machine, not because of the language. A language is just a BNF diagram specification which describes the syntax of the program, and all of its reserved words.

What Java needs is a better (less memory and faster) implementation of the libraries it has and the virtual machine to run the programs. As an example, almost everyone who has used C# or any other .NET program can see the applications run quite fast.

Contrary Opinion 01/10/06 05:18:25 AM EST

Wasn't it Peter Yared who in BusinessWeek last month was saying that developers far and wide are creating a new generation of Internet-based applications with LAMP and related technologies rather than with Java?

Sure, Yared is an AJAX fan. But when someone who was previously at Sun and who led
the J2SE team, delivering JDK 1.2, 1.3, and 1.4 says something like this, you kinda can't help paying attention.

@ThingsExpo Stories
Cloud computing is being adopted in one form or another by 94% of enterprises today. Tens of billions of new devices are being connected to The Internet of Things. And Big Data is driving this bus. An exponential increase is expected in the amount of information being processed, managed, analyzed, and acted upon by enterprise IT. This amazing is not part of some distant future - it is happening today. One report shows a 650% increase in enterprise data by 2020. Other estimates are even higher....
"My role is working with customers, helping them go through this digital transformation. I spend a lot of time talking to banks, big industries, manufacturers working through how they are integrating and transforming their IT platforms and moving them forward," explained William Morrish, General Manager Product Sales at Interoute, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York City, NY.
Internet of @ThingsExpo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with the 19th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world and ThingsExpo Silicon Valley Call for Papers is now open.
Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more business becomes digital the more stakeholders are interested in this data including how it relates to business. Some of these people have never used a monitoring tool before. They have a question on their mind like “How is my application doing” but no id...
The 19th International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Digital Transformation, Microservices and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportuni...
19th Cloud Expo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Meanwhile, 94% of enterpri...
Internet of @ThingsExpo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 19th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devices - comp...
SYS-CON Events announced today that Venafi, the Immune System for the Internet™ and the leading provider of Next Generation Trust Protection, will exhibit at @DevOpsSummit at 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Venafi is the Immune System for the Internet™ that protects the foundation of all cybersecurity – cryptographic keys and digital certificates – so they can’t be misused by bad guys in attacks...
Smart Cities are here to stay, but for their promise to be delivered, the data they produce must not be put in new siloes. In his session at @ThingsExpo, Mathias Herberts, Co-founder and CTO of Cityzen Data, will deep dive into best practices that will ensure a successful smart city journey.
SYS-CON Events announced today that 910Telecom will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Housed in the classic Denver Gas & Electric Building, 910 15th St., 910Telecom is a carrier-neutral telecom hotel located in the heart of Denver. Adjacent to CenturyLink, AT&T, and Denver Main, 910Telecom offers connectivity to all major carriers, Internet service providers, Internet backbones and ...
DevOps at Cloud Expo, taking place Nov 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 19th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long dev...
In today's uber-connected, consumer-centric, cloud-enabled, insights-driven, multi-device, global world, the focus of solutions has shifted from the product that is sold to the person who is buying the product or service. Enterprises have rebranded their business around the consumers of their products. The buyer is the person and the focus is not on the offering. The person is connected through multiple devices, wearables, at home, on the road, and in multiple locations, sometimes simultaneously...
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, will discuss the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
For basic one-to-one voice or video calling solutions, WebRTC has proven to be a very powerful technology. Although WebRTC’s core functionality is to provide secure, real-time p2p media streaming, leveraging native platform features and server-side components brings up new communication capabilities for web and native mobile applications, allowing for advanced multi-user use cases such as video broadcasting, conferencing, and media recording.
Akana has announced the availability of version 8 of its API Management solution. The Akana Platform provides an end-to-end API Management solution for designing, implementing, securing, managing, monitoring, and publishing APIs. It is available as a SaaS platform, on-premises, and as a hybrid deployment. Version 8 introduces a lot of new functionality, all aimed at offering customers the richest API Management capabilities in a way that is easier than ever for API and app developers to use.
Personalization has long been the holy grail of marketing. Simply stated, communicate the most relevant offer to the right person and you will increase sales. To achieve this, you must understand the individual. Consequently, digital marketers developed many ways to gather and leverage customer information to deliver targeted experiences. In his session at @ThingsExpo, Lou Casal, Founder and Principal Consultant at Practicala, discussed how the Internet of Things (IoT) has accelerated our abil...
With so much going on in this space you could be forgiven for thinking you were always working with yesterday’s technologies. So much change, so quickly. What do you do if you have to build a solution from the ground up that is expected to live in the field for at least 5-10 years? This is the challenge we faced when we looked to refresh our existing 10-year-old custom hardware stack to measure the fullness of trash cans and compactors.
The emerging Internet of Everything creates tremendous new opportunities for customer engagement and business model innovation. However, enterprises must overcome a number of critical challenges to bring these new solutions to market. In his session at @ThingsExpo, Michael Martin, CTO/CIO at nfrastructure, outlined these key challenges and recommended approaches for overcoming them to achieve speed and agility in the design, development and implementation of Internet of Everything solutions wi...
SYS-CON Events announced today that CDS Global Cloud, an Infrastructure as a Service provider, will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. CDS Global Cloud is an IaaS (Infrastructure as a Service) provider specializing in solutions for e-commerce, internet gaming, online education and other internet applications. With a growing number of data centers and network points around the world, ...
SYS-CON Events announced today that LeaseWeb USA, a cloud Infrastructure-as-a-Service (IaaS) provider, will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. LeaseWeb is one of the world's largest hosting brands. The company helps customers define, develop and deploy IT infrastructure tailored to their exact business needs, by combining various kinds cloud solutions.