The CCS Insight Podcast

Since the 1990s, Java has become one of the most popular programming languages and an established technology for enterprise development. However, despite this history and the role it played in the beginning of the Internet, Java is not always seen as an instrumental technology in the cloud. 

For our latest podcast episode, Bola Rotibi, Chief of Enterprise Research at CCS Insight, talks to Ian Robinson, Distinguished Engineer and Chief Technology Officer of the IBM Application Platform. Ian has more than 25 years of experience working in distributed enterprise computing and is responsible for the technical strategy of IBM Application Platform technologies including WebSphere, Liberty and Java. Clive Howard, Chief Technology Officer at Huozhi, a provider of a humanitarian fintech platform, and associate analyst with CCS Insight, also joined the podcast discussion. 

Our discussion touched on the importance of Java in the early days of the Internet and how this may translate to its place in the cloud, looking at some of the initiatives that IBM has put together to make the coding language relevant for cloud operations.  

The podcast also offers listeners strategic guidance on the topic, such as: 
  • How to harness existing software development teams with specific skills and experience using Java in the transition to the cloud. 
  • Finding opportunities to innovate and overcome the challenges facing Java's future in the cloud, such as taking advantage of the cloud to optimize existing workloads in Java. 
  • The importance of these initiatives to leading technical roles from a business perspective, for example, reusing existing skills, teams and technologies to make the cloud more efficient and cheaper. 

Creators & Guests

Host
Bola Rotibi
Chief of Enterprise Research at CCS Insight
Guest
Clive Howard
CTO at Huozhi and Associate Analyst at CCS Insight
Guest
Ian Robinson
Distinguished Engineer & CTO, IBM Application Platform at IBM

What is The CCS Insight Podcast?

Insightful audio from the global tech advisory firm.

Bola Rotibi:
Welcome to the CCS Insight podcast. We're delighted to be joined by the IBM cloud platform team for the next two episodes. In this episode, we're focussing on "Java's Future in the Cloud". My name is Bola Rotibi, and I am the Chief of Enterprise research, here at CCS Insight. I'm joined by IBM's Ian Robinson, Distinguished Engineer and CTO at IBM Application Platform, and Clive Howard, CTO at humanitarian fintech Huozhi. Clive is also an associate analyst at CCS Insight. Welcome to you both.
Clive Howard:
Hi, Bola.
Ian Robinson:
Hi, Bola, and thanks for having us.
Bola Rotibi:
Excellent. Well, since the mid-1990s, Java has grown into one of the most popular programming languages in the world and a stalwart technology for enterprise development and operational runtime systems. But despite Java's footprint in the market, it's not always seen as the go-to technology when we think of cloud-based functions and operations. This is counter to some bold claims of Java being instrumentally important to the success of the Internet, which begs the question of why Java isn't the most talked about technology for the cloud?
Ian, you have more than 25 years of experience working in distributed enterprise computing across product development, open standards and open source. You are basically responsible for technical strategy of IBM Application Platform technologies, including WebSphere, Liberty and Java. So, I'd like to ask you the following question: how crucial was Java to the Internet, and what's its role in the cloud?
Ian Robinson:
The Internet is the success that we know today, largely because of the influence Java had on it right at the beginning, back in the 1990s. Businesses saw the potential of the Internet. There was and still remains huge amounts of data locked up in back-end data centres, and the internet was a potential for that data to be used in completely new forms of Internet-based transactions.
The problems that businesses had back in the 1990s was how could they use the Internet to actually unlock that data? The back-end systems wouldn't have scaled if the only way that clients were able to get to it was using the kind of CGI-based browser-on-web server-based technologies that were common and popular in the 1990s.
Java, though, unlocked that data by providing a whole new middle-tier system and a much, much cheaper way to bring that data from the back-end data systems much closer to the Internet and to allow those new forms of business transactions to occur. So, you know, we're all used to using our smartphones to interact with the Internet today, but would there even have been the motivation to invest in technologies like that if we hadn't had the motivation of the Internet as a way to do transactions in the first place? In my opinion, that was all unlocked by middle-tier systems built on Java.
Bola Rotibi:
That's a really good point, actually, in terms of, you know, it talks a lot of things to, you know, some people sort of saying "oh, well, Java is fundamental, it created the Internet". It didn't so much as create the Internet, but as you rightly point out, Ian, how important it was to providing that middle layer.
Clive, I'm going to come to you because you're a practitioner, you see a lot of these things, you write a lot of applications targeting the Internet and you've got 20 odd years of experience. I mean, what do you think in terms of Java's role being instrumental in the Internet? What's your experience of this?
Clive Howard:
I mean, I think it definitely played an important part in the evolution of the Internet for the reasons that Ian has outlined. I don't think it was necessarily alone. I think there were others and there were other technologies in the early days of the Internet, you know, at least as we know it today, so, late nineties, early part of this century. There was an enormous amount of technology and technology change that was that was quite, quite incredible at the time. And, you know, I think a lot of things that are perhaps gone now played an important role.
But I think what's important in that statement is that Java has not gone. Java was not one of those things that came, you know, helped the Internet to become what it is and then it kind of disappeared in favour of something else. Instead, Java has not only persisted, but has thrived. And, you know, most enterprises now have considerable Java capabilities. And I think it's for that reason, those capabilities that they have created, that they have invested heavily in, the skills, the experience, the code bases, that means Java will definitely have a role in the cloud going forward.
It just practically, I think, is impossible for that not to be the case. You can't just sort of take a large part of your software development team and say, well, you've either got to learn another language or you're not going anywhere near the cloud. I don't think that's realistic. And you're also going to have a lot of workloads that have been on-premise moving into the cloud, many of those are going to be Java, and so on. So, I think it's definitely going to have a future in the cloud. And I think, you know, that's recognized if you look at, for example, AWS, you know, many AWS services, the first or at least one of the first languages is usually supported in those services is Java. And so, I think, you know, even for them, they recognize the importance of the language and the value that it brings to bear, even in a cloud-first world.
Bola Rotibi:
Hmm. That's – sorry, Ian, please go ahead.
Ian Robinson:
I was going to say that the cloud in many respects is both, I think, an opportunity and a challenge for Java. It's obviously being very successful in the cloud already. I mean, there are supposedly 38 billion active Java virtual machines running in the cloud today. So, I mean, it's already having a massive impact. As Clive says, there are millions of Java applications that haven't even made it to the cloud yet, and some of those some of those will be reborn on the cloud, some of those will evolve into something else.
But the other the Java ecosystem is so huge that all the cloud vendors want to attract Java application workloads to their clouds. But at the same time, the cloud is an environment which, I think, challenges Java.
The fact that Java was originally conceived to write once and run anywhere, and that remains true today, and that's true on the cloud as well. But whereas in the past, "write once run anywhere" really meant run on a variety of different hardware architectures, running anywhere including on the cloud has different sets of challenges. So, for example, when you're running in constrained virtual machines that cost quite a lot of money to run, does the start-up time of a Java virtual machine actually cause an economic problem for running a technology on Java if the workload that you're trying to run in the cloud needs to scale up from zero to one very, very quickly?
So, there are you know, there are some genuine challenges that the Java has on the cloud. But, on the other hand, it's a great opportunity to innovate and overcome those problems, and we're seeing an awful lot of that going on at the moment.
Bola Rotibi:
That is very true. And in fact, actually, one of the things that came to mind as you were speaking, Ian, is we did some work this year where we were looking at how Java has been involved — the technology has moved on. And incredibly, what IBM has been doing in this area because, you know, when you look at the kind of the base, you know, sort of environment, it's moved, you know, it has now moved away from, you know, into an open-source community, the Eclipse community, those kind of things.
So, we start to see a lot of it sort of transitioning to a much more kind of, you know, to take on and support cloud as a platform, as a deployment platform, but also as a kind of development sort of environment, which kind of brings us to the next level, the next question, which is what has IBM done to make Java relevant for cloud operations?
Because I mean, I know you guys have done quite a lot. As I said, when we did this report and this study this year, just even looking at, you know, some of the things you've done in terms of the standards as well around Java. Ian?
Ian Robinson:
Yeah, I mean, to be clear, Java has been open source since before we open-sourced the IBM JVM at the Eclipse Foundation. But, for us, that was a significant thing to do. At IBM, we have our entire Java stack in the open from the JVM right up through our Java application API layers in places like Liberty and WebSphere as well.
But, in terms of what we've done uniquely, I would say, for Java in the cloud is to try to overcome some of those challenges I was talking about earlier on. So, for example, you take a Java application and put that in a container and start that container running in the cloud. One of the things I mentioned earlier on was you've got a certain degree of time that's required for the Java virtual machine itself to start up in that container.
Is that okay in an environment where you want to run a cloud function workload, for example? So, there are certain types of workload where up until quite recently it's been a fair question to ask is Java an appropriate technology to try to run that workload? One of the things we've done for Java in the cloud is to make it take advantage of the cloud so we can, for example, optimize our Java execution by offloading all of the just-in-time compilation, the thing that actually optimizes the execution of Java bytecodes, you know, based on the hardware architecture that it's running on. We can move that out of the application container itself into a separate cloud service. So that's taking advantage of the cloud to optimize your Java workloads.
One of the other things that we've done recently to eliminate or almost completely eliminate that start up time of the JVM in a cloud container is to introduce a new capability into our Java runtime. In fact, it's a combination of an optimization that's shared between our Java runtime itself and our Liberty runtime to move all of the start-up time of the JVM and the application itself out of the container and into the build process, so that when you build a Java application now to run it on a Liberty container, we take a checkpoint of the running JVM and the running application as part of the build process, and instead of all of the time that that takes to start up when you run the container happening when you fly the container up, we just restore that container from a checkpoint that we took during the build process. We call that InstantOn and that capability on its own makes Java now a viable technology for cloud function style workloads where we can give, you know, almost instantaneous, native-like start-up times without sacrificing any of the capabilities that developers are familiar with in a standard JVM.
Bola Rotibi:
That instant time and efficiency savings sounds just the kind of thing that a practitioner like yourself, Clive, would really welcome. What's your thoughts on hearing what Ian has said on what his team has done to kind of improve Java within the cloud? What do you think of that?
Clive Howard:
Absolutely. I think, you know, as Ian mentioned, you know, the cloud brings with it slightly different development paradigms to what developers are perhaps typically used to with on-premise deployments, I mean, containers being, you know, a particular area that is growing in popularity around cloud deployments. And so, I think, you know, it is important that languages and frameworks and anything that has got a history needs to address these new requirements, these new challenges that the cloud does throw up.
We see it with containers. We see it, for example, in the world of server lists, the same can be applied there with regards to start-up times and things needing to be quicker. So, I think, you know, it has to be commended that, you know, IBM is doing the work that they're doing to make sure that some of these things that might seem kind of many people might not necessarily think about when they're a Java developer, but certainly is going to be important as more applications not just move into the cloud, but become more kind of cloud-native applications.
Bola Rotibi:
That's exactly really important, especially for not just the technical leaders, but also for the business. Which brings me to my final question, Ian. You've talked a lot about, you know, efficiency, speed, quickly starting up. And Clive has mentioned how, you know, people will find this kind of level of productivity really important when they're thinking about one of the sort of value propositions of the cloud.
So my last question is what should business roles or leading technical roles such as maybe a senior enterprise architect, why should they care about the changes that have been made, more specifically from a business perspective, you know, as they think about these opportunities they can get with the Java technology.
Ian Robinson:
Saving money! In a number of different dimensions really.
You know if a significant amount of a business's investment is the large number of Java applications it has, the large number of Java skills its people have and the desire to apply those skills, move those applications, make them run in a strategic cloud-based environment, then if you could reuse all of that existing investment and reuse that technology and make those workloads run really efficiently in the cloud, then everybody wins. So, if your Java workload can start faster, can use less compute resources on the cloud, then you're reusing existing capabilities, breathing new life into existing workloads and running it for less cost. Why wouldn't you want to do that?
Bola Rotibi:
Why wouldn't you indeed! Well, I think that's a really good positive ending, actually, because, you know, it speaks very much to the business value that many organizations will be looking for, and certainly what their technical leads will be able to kind of direct and articulate a message to the business in terms of, you know, investing in their use of their Java applications and getting more out of them.
So, I'd like to say thank you to Ian and Clive for what I think has been a really lovely conversation. And I'd say to all our listeners, make sure to tune in to our next podcast with the IBM Application Platform team when we'll discover whether portable containers are destroying standards.
So, until then, goodbye, everyone!
Clive Howard:
Goodbye.
Ian Robinson:
Thanks, Bola and Clive. Thanks. Goodbye.