Welcome!

Agile Computing Authors: Elizabeth White, Pat Romanski, Automic Blog, Sematext Blog, Steve Latham

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
SYS-CON Events announced today that SoftLayer, an IBM Company, has been named “Gold Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. SoftLayer, an IBM Company, provides cloud infrastructure as a service from a growing number of data centers and network points of presence around the world. SoftLayer’s customers range from Web startups to global enterprises.
SYS-CON Events announced today that Linux Academy, the foremost online Linux and cloud training platform and community, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Linux Academy was founded on the belief that providing high-quality, in-depth training should be available at an affordable price. Industry leaders in quality training, provided services, and student certification passes, its goal is to c...
SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From ...
In his session at @ThingsExpo, Eric Lachapelle, CEO of the Professional Evaluation and Certification Board (PECB), will provide an overview of various initiatives to certifiy the security of connected devices and future trends in ensuring public trust of IoT. Eric Lachapelle is the Chief Executive Officer of the Professional Evaluation and Certification Board (PECB), an international certification body. His role is to help companies and individuals to achieve professional, accredited and worldw...
SYS-CON Events announced today that Loom Systems will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded in 2015, Loom Systems delivers an advanced AI solution to predict and prevent problems in the digital business. Loom stands alone in the industry as an AI analysis platform requiring no prior math knowledge from operators, leveraging the existing staff to succeed in the digital era. With offices in S...
SYS-CON Events announced today that Interoute, owner-operator of one of Europe's largest networks and a global cloud services platform, has been named “Bronze Sponsor” of SYS-CON's 20th Cloud Expo, which will take place on June 6-8, 2017 at the Javits Center in New York, New York. Interoute is the owner-operator of one of Europe's largest networks and a global cloud services platform which encompasses 12 data centers, 14 virtual data centers and 31 colocation centers, with connections to 195 add...
SYS-CON Events announced today that T-Mobile will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. As America's Un-carrier, T-Mobile US, Inc., is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to 67.4 million customers who are unwilling to compromise on ...
SYS-CON Events announced today that HTBase will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. HTBase (Gartner 2016 Cool Vendor) delivers a Composable IT infrastructure solution architected for agility and increased efficiency. It turns compute, storage, and fabric into fluid pools of resources that are easily composed and re-composed to meet each application’s needs. With HTBase, companies can quickly prov...
SYS-CON Events announced today that Infranics will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Since 2000, Infranics has developed SysMaster Suite, which is required for the stable and efficient management of ICT infrastructure. The ICT management solution developed and provided by Infranics continues to add intelligence to the ICT infrastructure through the IMC (Infra Management Cycle) based on mathemat...
SYS-CON Events announced today that Cloudistics, an on-premises cloud computing company, has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Cloudistics delivers a complete public cloud experience with composable on-premises infrastructures to medium and large enterprises. Its software-defined technology natively converges network, storage, compute, virtualization, and management into a ...
There are 66 million network cameras capturing terabytes of data. How did factories in Japan improve physical security at the facilities and improve employee productivity? Edge Computing reduces possible kilobytes of data collected per second to only a few kilobytes of data transmitted to the public cloud every day. Data is aggregated and analyzed close to sensors so only intelligent results need to be transmitted to the cloud. Non-essential data is recycled to optimize storage.
"I think that everyone recognizes that for IoT to really realize its full potential and value that it is about creating ecosystems and marketplaces and that no single vendor is able to support what is required," explained Esmeralda Swartz, VP, Marketing Enterprise and Cloud at Ericsson, in this SYS-CON.tv interview at @ThingsExpo, held June 7-9, 2016, at the Javits Center in New York City, NY.
SYS-CON Events announced today that Outlyer, a monitoring service for DevOps and operations teams, has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Outlyer is a monitoring service for DevOps and Operations teams running Cloud, SaaS, Microservices and IoT deployments. Designed for today's dynamic environments that need beyond cloud-scale monitoring, we make monitoring effortless so you ...
My team embarked on building a data lake for our sales and marketing data to better understand customer journeys. This required building a hybrid data pipeline to connect our cloud CRM with the new Hadoop Data Lake. One challenge is that IT was not in a position to provide support until we proved value and marketing did not have the experience, so we embarked on the journey ourselves within the product marketing team for our line of business within Progress. In his session at @BigDataExpo, Sum...
Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor - all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm.
What sort of WebRTC based applications can we expect to see over the next year and beyond? One way to predict development trends is to see what sorts of applications startups are building. In his session at @ThingsExpo, Arin Sime, founder of WebRTC.ventures, will discuss the current and likely future trends in WebRTC application development based on real requests for custom applications from real customers, as well as other public sources of information,
China Unicom exhibit at the 19th International Cloud Expo, which took place at the Santa Clara Convention Center in Santa Clara, CA, in November 2016. China United Network Communications Group Co. Ltd ("China Unicom") was officially established in 2009 on the basis of the merger of former China Netcom and former China Unicom. China Unicom mainly operates a full range of telecommunications services including mobile broadband (GSM, WCDMA, LTE FDD, TD-LTE), fixed-line broadband, ICT, data communica...
With the introduction of IoT and Smart Living in every aspect of our lives, one question has become relevant: What are the security implications? To answer this, first we have to look and explore the security models of the technologies that IoT is founded upon. In his session at @ThingsExpo, Nevi Kaja, a Research Engineer at Ford Motor Company, will discuss some of the security challenges of the IoT infrastructure and relate how these aspects impact Smart Living. The material will be delivered i...
Apache Hadoop is emerging as a distributed platform for handling large and fast incoming streams of data. Predictive maintenance, supply chain optimization, and Internet-of-Things analysis are examples where Hadoop provides the scalable storage, processing, and analytics platform to gain meaningful insights from granular data that is typically only valuable from a large-scale, aggregate view. One architecture useful for capturing and analyzing streaming data is the Lambda Architecture, represent...