IBM Java CTO: Devs shouldn't have to learn Docker, K8s, 30 other things to deploy an app

Big Blue's Duimovich chats cloud and more to El Reg

By Thomas Claburn in San Francisco


Index At IBM's Index developer conference in San Francisco, on Tuesday, The Register sat down with Big Blue's Java CTO John Duimovich to talk about the Java programming language, IBM, the cloud and other developer-oriented concerns.

Duimovich made the case for IBM as a cloud platform partner, based on the company's Java expertise. He also argued for Java – 22 years old – as a vital, evolving language.

Oracle, Java's meddling uncle, last year said it would hand over governance of Java EE to the Eclipse Foundation.

For enterprise Java, that means a chance to accelerate the development and deployment of new features and to become more responsive to the needs of corporate developers.

"What they did is they gave control of the evolution of enterprise Java to a foundation," Duimovich explained. "They moved the code itself and the governance. And I think that was in part that acknowledgement of some of the momentum that MicroProfile has had."

MicroProfile is an initiative to make Java EE – or Jakarta EE, assuming the name change vote goes as expected – more suitable for the development of lightweight, composable microservices, as opposed to large monolithic applications.

"This is where the compatible future of cloud Java is being defined," he said. "You're going to see EE evolve to adopt many of these new technologies."

We sent a vulture to IBM's new developer conference to find an answer to the burning question: Why Big Blue?


IBM, said Duimovich, is interested providing support for any language that enough developers want. He said the company sees quite a bit of interest in Node.js, particularly for front-end applications, and more modest interest in Swift now that its ecosystem has become more mature.

"If you have any serious performance needs, Java's your story," he said. "If you want to integrate with all the systems you're going to have to integrate with terms of an enterprise, no question."

Duimovich contends enterprise Java is "actually a pretty interesting space" these days, pointing to developments like reactive programming, where you're dealing with asynchronous code and high event rates for IoT applications.

"Enterprise Java at the Eclipse Foundation is going to drive new features more quickly," he said. "And I think it will also be a more inclusive community that's easier to join."

For IBM, that's an opportunity to build relationships with the open source development community. "Now that IBM is open source, we have a much greater chance to actually engage with developers," he said.

Where once IBM kept its cards close to its vest, now as developer of open source technology, there's far more contact with the development community, which has the potential to translate into new customers.

"This excites me because I've much better contact points, a broader set of developers," he said. "People who may not be IBM customers still are able to interact with us and work with us and then, and hopefully from our perspective, turn into IBM customers because they can buy support and other things."

Embracing open source means opportunities for technical interaction between IBM personnel and outside developers. Duimovich recounts how IBM gave a university course in how to use the OMR technology to build a virtual machine called Base9.

"We got six people instantly who want to work with us because they knew we were doing this," he said, adding that being involved in open source means a better reception from developers.

Obscure bug reports

Open sourcing its JVM hasn't translated into a significant increase in community code contributions yet, but Duimovich voiced appreciation for the obscure bug reports where someone will fix some edge case with a line or two of code.

Seeing Java EE develop at a more rapid pace has pluses and minuses, Duimovich said.

"Developers who are waiting for language features and other stuff won't have to wait three years," he explained, pointing to aspects of Kotlin, Scala, or other languages that may be incorporated into Java EE sooner rather than later.

"Java this year got a shell, a read-eval-print loop (REPL)," he said. "Every other scripting language had that. Java is finally there."

The downside, he said, is that everyone has to move faster just to keep up.

"It's a great time to be a Java developer," he said, "and a VM developer," adding that competition between virtual machines benefits everyone.

Duimovich sees IBM playing a starring role in the cloud optimization of Java. As an example he pointed to VM startup time. A 40-second startup time didn't matter as much when app servers stayed up for months, but you can't have that for containers.

"So we've made both our startup time and ramp up time over 2x better than existing JVMs and we're continuing to focus on that," he said.

IBM's Java VM has also been optimized to return memory when it's not being used. "Our VMs will automatically give the system back memory when we go idle," explained Duimovich.

Reducing a system's memory footprint in the cloud translates to reducing the system's cost. That's not so much of an issue with JVMs that are maxed out all the time.

"But I can tell you from our mainframes and from our deployments, we've seen there's a lot of idle VMs that wake up once in a while," he said.

The most pressing technical issue for Java and containers, said Duimovich, is having Java memory adapt to container sizes, because if you exceed that, it kills the container.

Low level

"You want them to dance as one, so to speak," he explained. "If you reduce the memory in the container, you reduce the memory in Java. Those are the kinds of things we're working on at the low level."

In its effort to reduce the footprint of Java, IBM is also working on moving its JIT compiler outside of the address space and have it as a service.

"That opens up a huge bunch of opportunities for us," said Duimovich, noting that each instance saves 200 to 400 MB of footprint, which is what you want for microservices and moves Java closer to the memory requirements of other languages.

And as a service, he said, it has more visibility across instances, which provides the opportunity to compare performance data in A/B testing.

"The easy way to think about it is if I'm bringing up 100 or 1000 microservices, did every one of them need to compile Object?" he said. "Clearly not. And you can get that with AOT – ahead-of-time compilation static – but then you've giving up some of the things Java can do like dynamic bytecode modification."

Beyond Java, Duimovich expressed interest in making development easier overall by making it more dev and less ops. "The notion that as a developer you'll have to learn Docker, Kubernetes, and 30 other things before you can even deploy an app is something I'd like to get rid of," he said.

Maybe there's a cloud for that. ®

Sign up to our NewsletterGet IT in your inbox daily


More from The Register

Enterprise Java caretakers float new rules of engagement for future feature updates

Eclipse Foundation seeks to replace the Java Community Process for Jakarta EE

Just one Corretto, give it to me... AWS brews its own blend of Java with free long-term support

Post boasts cloud host's utmost roast

Due to Oracle being Oracle, Eclipse holds poll to rename Java EE (No, it won't be Java McJava Face)

Nor C-- or Should Have Used Go or Screw Ellison...

Java SE 9 and Java EE 8 arrive, 364 days later than first planned

Now that all the unpleasantness is behind us, let us code

Oracle's new Java SE subs: Code and support for $25/processor/month

Poll Prepare for audit after inevitable change, says Oracle licensing consultant

Oracle pours a mug o' Java 11 for its addicts, tips pot of Binary Code License down the sink

Our programming language is still number one, insists database goliath

'We broke a few things and will continue to do so... in a careful way' – Oracle's Reinhold on Java renovation work

CodeOne Language is still free, it's the support that will cost you plenty

Java EE renamed 'Jakarta EE' after Big Red brand spat

Oracle released the code, but not the name, so now devs have to make sure package names make sense

SAP okays Java EE being Eclipsed, six months after Oracle's announcement

But warns it will bail if something better comes along

Well, this makes scents: Kotlin code quality smells better than Java

Google-backed language seeps into Android apps, improves programming craftmanship