I had the amazing good fortune to attend this year’s JCrete. I’m still here in Crete while I write this on the balcony of my hotel. There is likely no better place in the world to hold a gathering especially an Unconference gathering.
Imagine a gathering where every one in attendance is a potential speaker. Rather that the classic “Sage on a Stage” style presentations, an Unconference is about having open discussions on a range of topics presented by the people attending.
Each day begins where anyone can propose a topic they wish to discuss with anyone in attendance who also has an interest in the topic. This was a new experience for me. No projectors (more or less) and no PowerPoint. The proposer of a sessions begins by explaining why they want to discuss their topic and then for the next hour its a free wheeling discussion.
I proposed two sessions. One responsibility of a presenter is to prepare a summary of their session. As a way to possibly encouraging further unconferences, and they are getting popular, I am presenting my summaries here.
How do we change Java to keep it relevant in education (or how do we keep Python from consuming the education sector)?
This session in the Hermes room discussed why Java is losing ground to other languages such as Python in the education sector. Many universities and colleges are turning to Python as their CS1 language. This was not a Python bashing session.
The following points were raised:
Java:
- Is too formal
- Has out of date documentation
- Lacks promotion of the many cool libraries available
- Is slow to start up
- Because news reports announce Java’s imminent death
- Because Oracle has a poor reputation of late
- Because Java is perceived as a server-side/back end language
- Because Google searches on how to code basic tasks are mainly for Python or JavaScript
- Is not perceived as a truly open source language
- . . .
When the discussion moved to what might need to be added to Java there was a consensus that there was nothing significant required. Instead the group agreed that features and libraries that make Java a superior language in education are just not being promoted. Oracle is perceived as not promoting Java sufficiently. It sometimes feels like they have lost interest in the language.
For example, in Python you can edit a file in a text editor and run it from the command line. What some at the session and later at lunch that day did not know is that as of Java 11 there is JEP 330: Launch Single-File Source Code Programs that allows a single file to be directly executed without compiling it first.
The conclusion arrived at in the session was that Oracle, Champions, Groundbreakers, and every Java developer must communicate, shout from the rooftops, that Java is the modern language superior to all others in the education sector. And, Java is younger than Python, Python in 1991 and Java in 1996.
Session was held on day 3 of JCrete 2019-07-17
The Java Tutorial: Is it time for an upgrade and by whom?
This session was held in the Sofa area at JCrete. We were fortunate to have amongst the participants the Java Program Manager. First, we expressed our love for the tutorial, an exceptionally well written introduction to Java programming. This was followed by sadness over the fact that the tutorial had not been updated since Java 8. As an example, the upcoming new ‘switch’ statement syntax is only discussed in the JEP document.
It was brought out that this tutorial remains relevant and what is in it is the core of the language right up to lambdas. Most of us felt that by not updating it with each release of Java Oracle was inadvertently sending the message that they have lost interest in Java. It was pointed out that one aspect of the success of the Spring platform is their extensive documentation.
The Java PM explained that Oracle felt that the time and efforts of their developers are better spent addressing specific questions on the Stack Overflow platform even hoping to officially make this part of a dev’s workload though for now their devs are just encouraged to answer Stack Overflow questions. With so many people blogging about the features of Java, especially the new ones, they felt that updating the tutorial was no longer an effective way of reaching developers.
From here the discussion moved to the possibility of turning the tutorial into an open source project, possibly as part of AdoptJDK. A concern was raised about maintaining the quality of the documents. As an example the @java twitter handle sometimes tweets about blogs that upon later inspection turn out to be less than accurate. Just making the tutorial open source under a creative commons licence and putting it on a wiki or git repo is not something Oracle will likely approve. This was a point of contention as some at the session wanted the tutorial and all code samples contributed.
The Java PM felt that Oracle would be interested in contributions to the tutorial from individuals with a track record in training and writing. Even better might be a major training organization contributing to the tutorial. Reading between these lines it would mean that further work on the tutorial could be funded by these companies rather than having it as a volunteer effort. In either case the Java team at Oracle might be available to review new material for its accuracy.
While the future of the tutorial is still not certain, our discussions demonstrated that there are devs out there who hold the documents in their hearts and want to see it go forward.
Session was held on day 4 of JCrete 2019-07-18