workshop umbrella proposal: Java in more environments

Johan Vos johan.vos at gluonhq.com
Wed Jul 4 16:06:11 UTC 2018


This is not yet a Topic proposal, but I want to create one or more topics,
based on feedback.

TLDR: does OpenJDK need to focus on more functionality, or on more
portability (support for more architectures and OS'es, and getting rid of
more non-core functionality like java.desktop) so that it is more
applicable in tomorrows and future environments.

Idea: Making Java relevant in new, disruptive IT developments with a huge
impact on society.

I realize this topic may sound less relevant for a technical OpenJDK
workshop. Granted, for a big part this is indeed a political topic, but
there are some technical aspects that I want to cover.

There are a number of input triggers for this topic:

* The blog entry [1] by Steve Poole and the related slide deck [2].

* My observation from the Devoxx CFP: We got a huge amount of submissions
in the "Methodology & Culture" and "Cloud, Containers & Infrastructure"
tracks. But we got barely submissions in the "Big Data & Machine Learning"
track. That is triggering an alarm for me.

* Interactions with data scientists over the past months, some claim Java
is becoming less relevant.

Java is very strong in the server-side, including Cloud and serverless.
That's great. I'm a long-time track lead for server-side Java in Devoxx,
and I am very happy with the status of Java in this area.

However, the future of IT development is more and more leaning towards AI,
embedded/mobile systems, quantum computing, Software 2.0[3]. Java is less
popular there.
There are a number of reasons for this, including a few technical ones. But
a major reason, imho, is the image of Java, which is highly associated with
the image of its steward (Oracle). Oracle is clearly more prominent in
enterprise applications etc than in data science or scientific areas, and
there is nothing wrong with that. But Java is also more associated with
enterprise only and much less with data science, embedded, mobile, quantum
computing,... and that, imho, is very wrong (By no means I want to blame
Oracle for this, it is just a wrong association)

With Gluon, we're active in those areas (mobile/embedded/AI[4] /quantum
computing[5]).
We're doing fine, but we don't have the weight to determine the image of
Java. The Java tweet handle and related publications are very good in
promoting community-related content, but even that is not changing the
image and perception of Java. I am not asking Oracle to increase its
investments in the areas I mentioned. (Actually, I did ask but the answer
was clear).
I would rather do a shout-out to other large companies with enough weight
to publicly embrace Java in AI, Quantum Computing, Mobile, Embedded.

How is this relevant to OpenJDK?
I'm the current project lead for OpenJDK Mobile. That doesn't sound right.
Mobile, as well as embedded, should be a first-class citizen in OpenJDK.
I still have to hear the first valid reason on why Java won't work in the
current mobile landscape. Unfortunately, I also still have to hear the
first senior VP or higher
from a big company saying in public that Java is an excellent choice on
mobile instead of the "On mobile, JavaScript is our preferred technology".

There exist a (small) number of solutions that bring Java to mobile. I got
bashed by a "competitor" who sort of called me a lunatic because I think
the best Java solution on mobile is based on OpenJDK[6]. I mean, what else?
OpenJDK, being the heart of Java, should be the basis for Java everywhere.

One of the key differentiators of the Java Platform is the fact that it
runs on a myriad of configurations, architectures and operating systems.
I think it would be best for OpenJDK to provide less functionality, but
making sure all functionality works on a wide variety of platforms.
Removing OpenJFX and Nashorn from the core OpenJDK are good steps in that
direction, but there is more functionality that probably need to be
stripped (e.g. the whole java.desktop module) so that resources can focus
on WORA.

The OpenJDK project does a great job in observing interesting patterns in
emerging languages, and bringing those into the Java language and/or
platform.
But we have to make sure to observe a whole shift in the way IT is
impacting our society.
If Java misses this train, it will still stay relevant for a very, very
long time. But it would be a huge pity, to Java developers, to society, and
to the people who worked very hard to bring Java where it is today.

So the key discussion I want to raise is: does OpenJDK need to focus on
more functionality, or on more portability that will allow it to be
embraced by more developers and environments.

[1] https://www.linkedin.com/pulse/future-java-its-close
[2]
https://www.slideshare.net/StevePoole/java-in-the-21st-century-are-you-thinking-far-enough-ahead
[3] https://medium.com/@karpathy/software-2-0-a64152b37c35
[4] https://gluonhq.com/java-ai-mobile-and-cloud/
[5] https://github.com/gluonhq/strange
[6]
http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-December/018302.html


More information about the workshop-discuss mailing list