I want to take the opportunity to show what we have been doing in last year, and also what we have done so far as members of the community. Unlike other years, and compared to the other posts on Java Advent this year, I have decided to keep this post less technical.
This year marks the fourth year since the first OpenJDK hackday was held in London (supported by LJC and its members), and also when theAdopt OpenJDK program was started. Four years is a small number on the face of 20 years of Java. The same goes to the size of the Adopt OpenJDK community which forms a small part of the Java community (9+ million users). Although this post is non-technical in nature, the message herein is fairly important for the future growth and progress of our community and the next generation developers.
Creations of the community
Over the many months a number of members of our community contributed and passed on their good work to us. In no specific order, I have listed a few of them from memory. I know there are more to name and you can help us by sharing those with us (we will add them to the list). So here are some notable projects that we can be proud of and thank those who were involved:
- Getting Started page – created to enabled two way communication with the members of the community, these include a mailing list, an IRC channel, a weekly newsletter, a twitter handle, among other social media channels and collaboration tools.
- Adopt OpenJDK project: jitwatch – a great tool created by Chris Newland, it’s one of its kind, continually adding features and helping developers fine-tune the performance of their Java/JVM applications running on the JVM.
- Adopt OpenJDK: GSK – a community effort gathering knowledge and experience from hackday attendees and OpenJDK developers on how to work with OpenJDK, from building it to creating your own version of the JDK. Many JUG members have been involved in the process, and this is now a e-book available in many languages (5 languages + 2 to 3 more languages in progress).
- Adopt OpenJDK vagrant scripts – a collection of vagrant scripts initially created by John Patrick from the LJC, later improved by the community members by adding more scripts and refactoring existing ones. Theses scripts help build OpenJDK projects in a virtualised container i.e. VirtualBox, making building, and testing OpenJDK and also running and testing Java/JVM applications much easier, reliable and in an isolated environment.
- Adopt OpenJDK Docker scripts – a collection of Docker scripts created with the help of the community, this is now also receiving contributions from a number of members like Richard Kolb (SA JUG). Just like the vagrant scripts mentioned above, the docker scripts have similar goals, and need your DevOps too!
- Adopt OpenJDK project: mjprof – mjprof is a Monadic jstackanalysis tool set. It is a fancy way to say it analyses jstack output using a series of simple composable building blocks (monads). Many thanks to Haim Yadid for donating it to the community.
- Adopt OpenJDK project: jcountdown – built by the community, jcountdown mimics the spirit of ie6countdown.net, encouraging users to move to the latest and greatest Java! Many thanks to all those involved – you can see them all in the commit history.
- Adopt OpenJDK CloudBees Build Farm – thanks to the folks at CloudBees for helping us host our build farm on their CI/CD servers. This effort was initially started by Martijn Verburg and later with the help of a number of JUG members have come to the point that major Java projects are built against different versions of the JDK. These projects include building the JDKs themselves (versions 1.7, 1.8, 1.9, Jigsaw and Shenandoah). This project has also helped support the Testing Java Early project and Quality Outreach program.
These are just a handful of such creations and contributions from the members of the community, and some of these projects would certainly benefit from help from you. As a community, one more thing we could do well is celebrate our victories and successes, in particular, giving credit to those that have been involved – whether as individuals or a community – so that our next generation of contributors feels inspired and encouraged to do more good work and share it with us.
Contributions from the community
In a recent tweet and in posts to various Java / JVM and developer mailing lists, I requested the community to come forward and share their contribution stories or those from others with our community. The purpose was two-fold: firstly, to share it with the community, and secondly, to write this post (which in turn is shared with the community). I was happy to see a handful of messages sent to me and the mailing lists by a number of community members. I’ll share some of these with you (in the order I have received them).
I don’t know if that counts as contribution but I’ve hacked on the
OpenJDK compiler for fun several times. For example I added a new
thought up ‘maybe’ keyword which produces randomly executed code:
Thanks for writing, I like your initiative, its really good to show how people are doing and what they have been focusing on. Great idea.From my part, I can tell about DevoxxMA last month. I did a talk in the Hacker Space about Adopt the OpenJDK and it was really great. We had about 30 or more attendees, it was in a open space so everyone that was going to any talk was passing and being grabbed to have a look about the topic, and it was really challenging because I had no mic. However, I managed to speak out loud and be listen, and I got great feedback after the session. I’m going to work over the weekend to upload the presentation and the recorded video and I will be posting here as soon as I have it done!
Good initiative. So the major items I participated in were Date and Time and Lambdas Hackdays (reporting several bugs), submitted some warnings cleanups for OpenJDK. Gave ~10 pages of feedback for JShell and generally tried to encourage people more capable than me to contribute :-).
Olena Syrota and Oleg Tsal-Tsalko from Ukraine JUG: Contributing to JSR 367 test code-base (https://github.com/olegts/
jsonb-spec), promoting ‘Adopt a JSR’ and JSON-B spec at JUG UA meetings (http://jug.ua/2015/04/json- binding/) and also at JavaDay Lviv conference (http://www.slideshare.net/ olegtsaltsalko9/jsonb-spec).
As you have seen that from out of a community of 9+ million users, only a handful of them came forward to share their stories. I can also direct you to another list of contributors who have been paramount with their contributions to the Adopt OpenJDK GitBook – for example, take a look at the list of contributors and also the committers on the git-repo. They have not just contributed to the book, but to Java and the OpenJDK community, especially those who have helped translate the book into multiple languages. And then there are a number of them who haven’t come forward to add their names to the list, even though they have made valuable contributions.
From this I can say contributors can be like unsung heroes, either due their shy or low-profile nature, or they just don’t get noticed by us. So it would only be fair to encourage them to come forward or share with the community about their contributions, however simple or small those may be. In addition to the above list I would like to also add a number of them (again apologies if I have missed out your name or not mentioned about you or all your contributions). These names are in no particular order but as they come to my mind as their contributions have been invaluable:
- Dalibor Topic (OpenJDK Project Lead) & the OpenJDK team
- Mario Torre & the RedHat OpenJDK team
- Tori Wieldt (Java Community manager) and her team
- Heather Vancura & the JCP team
- NightHacking, vJUG and RebelLabs (and the great people behind them)
- Nicolaas & the team at Cloudbees
- Chris Newland (JitWatch developer)
- Lucy Carey, Ellie May & Mark Hazell (Devoxx UK & Voxxed)
- Richard Kolb (JUG South Africa)
- Daniel Bryant, Richard Warburton, Ben Evans, and a number of others from LJC
- Members of SouJava (Otavio, Thomas, Bruno, and others)
- Members of Bulgarian JUG (Ivan, Martin, Mitri) and neighbours
- Oti, Ludovic & Patrick Reinhart
- And a number of other contributors who for some reason I can’t remember…
I have named them for their contributions to the community by helping organise Hackdays during the week and weekends, workshops and hands-on sessions at conferences, giving lightening talks, speaking at conferences, allowing us to host our CI and build farm servers, travelling to different parts of the world holding the Java community flag, writing books, giving Java and advance-level training, giving feedback on new technologies and features, and innumerable other activities that support and push forward the Java / JVM platform.
How you can make a difference? And why should you?
You can make a difference by doing something as simple as clicking the like button (on Twitter, LinkedIn, Facebook, etc…) or responding to a message on a mailing list by expressing your opinion about something you see or read about –as to why you think about it that way or how it could be different.
The answer to the question “And why ?” is simple, because you are part of a community and ‘you care’ and want to share your knowledge and experience with others — just like the others above who have spared free moments of their valuable time for us.
Is it hard to do it? Where do I start? What needs the most attention?
The answer is it’s not hard to do it. If so many have done it, you can do it as well. Where to start and what can you do? I have written a page on this topic. And it’s worth reading it before going any further.
There is a dynamic list of topics that is also worth considering when thinking of contributing to OpenJDK and Java. But recently, I have filtered this list down to a few topics (in order of precedence):
- Testing Java Early project (Priority one)
- G1GC feedback
- Project Jigsaw
- Unified JVM logging
- Project Valhalla
- Project Kulla
- Project Shenandoah
- Project Penrose
We need you!
With that I would like to close by saying:
Not just “I”, but we as a community need you.