Facing up to new challenges

Next-gen Java: We don’t need another revolutionary

SebastianMeyen
java-duke

JAX Conference Chair Sebastian Meyen offers his views on what changes Java needs to make to continue along the right path

Cameron McKenzie, editor of TheServerSide.com is searching
for the
next disruptive element
that would be able to wake up the Java
enterprise community and lead them into the next era of enterprise
computing. He rightly points to the great accomplishments by Rod
Johnson, who revolutionized the Java world some years ago with his
concept of Dependency Injection (DI), which he implemented in the
Spring framework – and virtually left no stone unturned. Where is
the new Rod, where is the new knight in shining armour that saves
the Java world? asks Cameron.

Is it Martin Odersky, the creator of Scala and founder of the
company Typesafe, which focuses on the development and
commercialization of a purely Scala-based software stack? The Scala
scene, writes Cameron, is too self-opinionated and therefore can
hardly be imagined as having the same broad effects in the Java
community, as the Spring Framework did then. Also, the technical
focus of the Scala people is clearly on the early adopters, the
alpha developers, and hardly useful for the Java mainstream.

Up to this point, I agree with Cameron’s assessment. The Java
world is risking a lot (given their exorbitant success) when
ignoring the signals that hint at a “change”. Certainly, there is
still a lot of development work to catch up on in the area of Core
Java and the classic editions (Java EE, Java SE), that has been
missed in the lost half-decade between 2005 and 2010. Oracle does a
great job here. But still the Java camp lacks a clear vision of
where to go in the future.

Also in this regard I agree with the assessment of Mr Cameron
McKenzie.

But I do not share his desire for a “Rod Johnson 2.0″, someone
who is a guiding light and leads the world of Java down the right
path. Rather, I believe that the necessary change takes place in
the form of a covert transformation rather than a revolution.

Today, a variety of current trends, which are not always
directly related to each other, will form a relationship in the
near future, which we will then perceive as “New School”:

  • The Web (I): The ongoing modernization of the
    browser in terms of performance, safety and standard support favor
    a revival of JavaScript. Add to that the massive mobilization of
    the web, which has caused significant innovations in the Javascript
    frameworks and it makes a convincing case. As a result, a multitude
    of functions that were previously left solely to the server can be
    transfered to the client. In the light of this “new distribution of
    powers” the classic Java-based server-side frameworks will soon
    belong in the scrap heap.
  • The Web (II): Technologies like REST and
    WebSockets signal an altered handling of the Web by enterprise
    developers. The Web is finally changing from a pure transport
    medium for messages and pages to a global operating system, in
    which resources and services are provided (hypermedia). Systems of
    the future will be radically distributed, and, ironically, ten
    years after the SOA hype, the vision of consistent service and
    resource-orientation is finally coming true (just by other
    means).
  • Mobile (I): Smartphones, despite claiming to
    represent true supercomputers in your pocket, are still devices
    with limited resources. Small screens, no permanent connectivity,
    limited battery life means that anything superfluous is removed.
    The result is the concept of “apps”: small and highly-focused
    programs that mostly serve only one purpose and therefore have the
    primary task to act as a service endpoint for a web-based
    service.    
  • Mobile (II): As a result, developers of
    business solutions don’t build “sites” or “web applications” any
    more, but services. Services which are obtained via a well-made API
    available for any service endpoints – whether these are operated in
    desktop browsers or mobile devices (tablets, smartphones) or
    embedded systems even with primitive chips and sensors. Strict API
    orientation, associated with the use of a large set of diverse
    client technologies such as HTML5/JavaScript, iOS, Android,. NET,
    Windows 8, are the consequences for Java developers.
  • Virtualization: Actually, most of the
    techniques that are now in-vogue under the term “cloud” have
    existed already for some time. But the public cloud, as it was
    built by Amazon, Microsoft and many other global and regional
    providers, offers a new “self-service” component. Activated within
    minutes and via credit card, (and customizable in most cases via a
    user-friendly interface),  these cloud offerings introduced a
    new quality for accessing computing resources (not to mention the
    flexible payment models, which accompany almost all public-cloud
    offerings).
  • Big Data: The big players in Silicon Valley
    have led the way, now the innovative data stores are used globally.
    Originally positioned purely as a rejection of the relational
    databases, most people understand today “NoSQL” to mean “Not only
    SQL” rather than as a complete departure from the SQL query
    language. The fact is that the industry has learned that we do not
    in every case require a transaction-oriented and relational
    database, but that it often is adequate to use an easier data
    store. “Big Data” deals therefore not only with super large amounts
    of data, but often with mere simplification. At the core of the
    trend, however, is the exponentially increasing amount of data
    generated by sensors, social media and the rising networking, from
    which we want to reap the benefits. Namely in near real time. Not a
    trivial task. 
  • DevOps (I): Two important experiences led to
    the DevOps trend that intensified collaboration between the
    developers of a software (Dev) and the operators of that software
    (ops). First, there were the agile principles, proving for over ten
    years now that Agile makes software development much more
    successful than the traditional methods. Secondly, there was the
    rapid dynamisation of all-digital business models and the resulting
    flexibility. Companies must be able to apply changes immediately in
    production, if they want to survive in a global business
    environment. Against this background, the DevOps movement broke the
    traditional boundaries between Dev and Ops down and established a
    new culture of cooperation between the two teams – in terms of a
    success of the enterprise.
  • DevOps (II): Continuous Delivery forms a bunch
    of techniques, which aims to accelerate and to automate the
    delivery of software significantly. Some seem to make a competitive
    sport out of Continuous Delivery, shipping 30 or 50 releases of
    their mission-critical software per day. But at the core is the
    ability deliver updates and developments of software on-the-fly and
    without a hitch. In order to build such a system, a software
    developer and operator must work closely together.

The above list of trends – Web, Mobile, virtualization,
big data and DevOps
– may for some sound like a collection
of buzzwords. It may be that one or the other issue is a flash in
the pan, so it is important to ask what is left over at the end.
But instead of asking, like Cameron for an innovator, the Java
community – and not just the Java community! – needs to keep their
eyes open and needs to understand the essence of these
currents.

The fact is that these challenges together exert more pressure
on Java to innovate. So the Java community in turn must renew at
many points, in order to remain relevant. The IT world has become
much more decentralized, and that is why we need more specific,
more tailored and smaller, “evolutionary” solutions. A singular
technology such as Scala will not be able to accomplish this.

Many of the ideas described here have arisen in discussions with
Eberhard Wolff, so I finally would like to point to his excellent
presentation “New
Challenges and Approaches for Enterprise Java
“, which he
presented at JAXconf
in San Francisco.

Author
SebastianMeyen
Sebastian is Chief Content Officer at S&S Media. He has been actively involved with the IT industry for more than 10 years. As a journalist he is constantly in touch with thought leaders in software development and architecture. He is editor in chief of the German speaking Java Magazin and program chair of the JAX conferences since 2001. Prior to joining S&S Media, he studied philosophy and anthropology in Frankfurt, Germany.
Comments
comments powered by Disqus