Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Java Community Process: how you can help to define the future of Java by Patrick Curran

Riga Dev Day
March 13, 2016
22

The Java Community Process: how you can help to define the future of Java by Patrick Curran

Riga Dev Day

March 13, 2016
Tweet

Transcript

  1. 1 How to advance your career and have fun, while

    helping to define the future of Java Patrick Curran, JCP Chair [email protected] @PatrickCurran Riga, Marts 2016
  2. 9 • Share your passions and your enthusiasm with fellow-

    developers all over the world. • Make new friends. • Advance your career. • Have fun! Technology: a universal language!
  3. 10 • No computer science or engineering education. • I

    was an academic, working on a PhD in economic history and political economy. • Spent years in a library researching by looking up data in physical books, magazines, and manuscripts. • Thought “there will be a better way of doing this in the future”. • Went to technical school to learn to program in assembly language and COBOL. • Talked my way into a junior programming job. How I started my 30+ year IT career
  4. 13 Do not fold spindle or mutilate Invented by Herman

    Hollerith to tabulate the 1890 census
  5. 19 • On Friday: “Do you want to work in

    California for a year to develop a word-processing system in 8080 assembly- language?” • On Monday: “Why not? (What do I have to lose?)” • That was 1982 – I’m still there. My second job
  6. 21 • The word-processors were successful, but Raytheon Data Systems

    (whose primary business was missiles) were completely incapable of developing a distributed office- automation system in the early 1980s. • They ran Lexitron Corporation into the ground, and I was out of a job. • I was recruited by Interactive Systems Corporation – the first company to commercialize UNIX. • I managed a team developing an emulation of UNIX that ran on DEC’s VMS. My third job
  7. 22 • Later I helped to port UNIX to a

    variety of hardware systems (minicomputers from Data General, Prime), mainframes (Hitachi, IBM) and later PCs. My fourth job • We ported UNIX System III to the original IBM PC XT (4 MHz 8088 processor, 640 KB of memory, 10 MB hard disk).
  8. 24 • Scott McNealy from Sun Microsystems decided to buy

    the Interactive Systems UNIX porting business as a backup in case PCs overtook Sun workstations. • We forked Solaris from the SPARC code, ported it to Intel, and then I managed the process of merging the two source- bases. • Then I managed kernel and device-driver development work for Solaris/Intel. • Much work was outsourced to Ireland. • Until Sun decided to dump the project and lay off all of my team. My fifth job
  9. 25 • I managed to find another job inside Sun,

    developing the conformance test suites (TCKs) for Java SE and Java ME. • Most of my developers were in Russia (Novosibirsk, Siberia and St. Petersburg). My sixth job
  10. 27 • My manager (who was the Chair of the

    JCP) said “do you want to take over?” • It was clear I didn’t really have a choice but I jumped at the chance anyway. • Yaay – more opportunities to travel. • And then it was now. My seventh job
  11. 28 • I expected (planned?) to become a university professor.

    • Instead, I ended up in the IT industry. • When I started we had: • no laptops, • no networking, • no email, • no internet, • no bitmapped displays or GUIs, • no cellphones. • You couldn’t predict how things would be five years ahead, and certainly not ten or twenty years ahead. • All we can predict is that things will change – in ways we did not expect. Plan for change!
  12. 30 • I had seven jobs, but all of them

    “flowed” from the first. • All you can do is to position yourself where opportunities will occur, and then seize the most interesting ones that present themselves. Learn to be a surfer • Find some good waves, choose an interesting one, and jump on. • It may not take you where you expected, but you will have fun along the way.
  13. 31 • Connect • Collaborate • Create • Make music

    together! Teamwork creates opportunities
  14. 38 • Unlike Windows, where what you get is what

    Microsoft (perhaps after secretive consultation with its biggest customers) decides you should get… • Java is developed through the Java Community Process. • Java specifications (JSRs) are developed collaboratively through an open, formal process similar to that used by other standards organizations. All interested members of the Java Community may participate. • Oracle’s competitors are active participants. • IBM, HP, and RedHat to name a few. • The Open Source and developer communities are also represented. • The Eclipse Foundation, Java User Groups. For the community, by the community
  15. 42 How do we do it? • Java Specification Requests

    (JSRs) • A JSR is a single version of a Java specification. • JSRs are led by a community member (the Spec Lead), with a group of interested members (the Expert Group) helping with the day-to-day decisions and work. • Any JCP member can submit and lead a JSR. • Each Expert Group must deliver: • The Specification • A Reference Implementation (RI) • A Technology Compatibility Kit (TCK)
  16. 43 Deliverables • Specification Reference Implementation Can you build an

    implementation? Is the specification unambiguous? Is the TCK correct? Does the RI conform? Technology Compatibility Kit
  17. 47 Executive Committee members ARM Azul Systems Credit Suisse Eclipse

    Foundation Ericsson Freescale Fujitsu Gemalto M2M Goldman Sachs Hazelcast HP IBM Intel Werner Keil London Java Community Geir Magnuson MicroDoc Oracle Red Hat SAP Software AG SouJava TOTVS Twitter V2COM
  18. 48 The membership • Anyone can join. • Total membership

    is approximately 900. • 3700 registered users at jcp.org. • No membership fees! • Membership distribution by type: • 76% individual. • 16% corporate. • 8% non-profit (mostly JUGs). • Membership distribution by location: • 40% North America. • 41% Europe, Middle East, Africa • 13% Asia • 6% South America
  19. 49 The JSR development cycle • Includes formal public reviews

    and votes by the Executive Committee. • See the Process Document for the details.
  20. 51 Legal framework and governance • The Java Specification Participation

    Agreement (JSPA) • A legal contract between members and Oracle. • Addresses Intellectual Property (IP) grants and the terms under which the Spec, RI, and TCK must be licensed. • http://www.jcp.org/aboutJava/communityprocess/JSPA2.pdf. • The Process Document • Defines the governance of the organization. • Defines the processes that are used to submit define, develop, review, approve, and maintain specifications. • Defines the obligations to produce an RI and TCK. • http://jcp.org/en/procedures/jcp2.
  21. 52 Using the Process to change the Process • We

    modify the Process (as defined in the JSPA and the Process Document) by filing JSRs. • The Chair is the Spec Lead and the Executive Committee members form the Expert Group for these JSRs. • Process-change JSRs go through all of the same stages as regular JSRs. • The output is a new version of the Constitution. • Since 2011 we have been working on a series of JSRs, collectively referred to as JCP.next, to reform the our processes.
  22. 54 JSR 348 – No more smoke-filled rooms • This

    JSR implemented a number of relatively simple but significant changes to make our processes more transparent and to enable broader participation. • Expert Groups must do their work in the open, using public mailing-lists and public Issue Trackers. • They must enable the public to observe and review their work, and must respond to public comments. • The JSR was completed in October 2011, and defined version 2.8 of the Process Document. • As a result we saw a significant increase in developer participation in the JCP, primarily through Java User Groups and the Adopt-a-JSR program.
  23. 56 JSR 364 – Broadening JCP membership • Goal: encourage

    more individuals to join and participate in the JCP while ensuring that we have appropriate IP commitments from all members. • New Associate membership class for individuals with a much simpler membership agreement. • No lawyers and no employer approval required. • Associates can be formally recognized as Contributors to a JSR. • New Partner membership class for Java User Groups that are not legal entities. • Free membership for corporations. • Final Ballot closes tomorrow.
  24. 57 Putting the community back into the JCP • JSR

    348 enabled you to observe and to participate in the development of Java specifications. • JSR 364 will make it even easier for you to join the JCP. • A future JSR will embrace open-source development processes. • No more barriers to participation! • If you care about the future of Java you have no excuse...
  25. 59 • As a corporation: • To influence the technologies

    that drive your market. • Because it's cheaper than developing everything yourself. • To provide opportunities for your developers. • To increase the size of your market. • To gain a competitive advantage (ship new products faster.) • As an individual: • Good karma! • Experience. • Fame and fortune. Why participate?
  26. 60 How to participate? • As an individual – OK.

    • As part of a team – better. • Work through your JUG. • Help each other. • Teach each other. • Work with each other.
  27. 61 JUG members Austin JUG BeJUG (Belgium) BreizhJUG (Brittany) CEJUG

    (Brazil) Central Ohio JUG (USA) Chicago JUG ChinaNanjingJUG Connecticut JUG (USA) Detroit JUG (USA) Duchess (Women) ESPRIT Tunisian JUG (Tunisia) FASOJUG (Burkina Faso) Green Tea JUG (China) Houston JUG (USA) iJUG e.V. (Germany) IndiJava (India) ITP_JAVA (Peru) Japan JUG Java Hellenic User Group (Greece) Java Student User Group (Vienna) Java Web User Group (London) Jozi JUG (South Africa) JUG-AFRICA JUG Chennai (India) JUG-Cologne (Germany) JUG-EG (Egypt) JUG Frankfurt [JUGF] (Germany) JUG Indonesia JUG JogLoSemar (Indonesia) JUG-MK (Macedonia) JUG-RU (Russia) JUG-USA London Java Community (UK) Malaysia-JUG MoroccoJUG Nashville JUG (United States) Oklahoma City JUG (USA) Rio JUG (Brazil) Riviera JUG (France) Ruhrjug (Germany) Silicon Valley JavaFX User Group (USA) SouJava (Brazil) Utah JUG (USA) Vancouver Island JUG (Canada)
  28. 62 JUG representation on the EC • SouJava (Bruno Souza,

    Otavio Santana, Yara Senger): • Nominated by Oracle to a ratified seat on the SE/EE EC in the May 2011 Special Election. • London Java Community (Ben Evans, Martijn Verburg, Trisha Gee): • Won an elected seat on the SE/EE EC in the May 2011 Special Election and re-elected in 2012. • Both have already made significant contributions to the JCP.
  29. 65 • 28+ JUGS participating: • South America: Campinas JUG

    (Brazil), ceJUG (Brazil), GOJava (Brazil), SouJava (Brazil), Brasilia, DF JUG (Brazil), GUJ Londrina (Brazil) Peru JUG, Guadalajara JUG (Mexico), GUJavaSC (Brazil). • North America: Chicago JUG, Silicon Valley JUG, Houston JUG (USA), Toronto JUG (Canada). • Europe: London Java Community (UK), BeJUG (Belgium), Madrid JUG (Spain), JUG Cologne (Germany), Istanbul JUG (Turkey). • Asia: Indonesia JUG, JUG JogLoSemar (Indonesia), Hyderabad JUG (India), JUG Chennai (India). • Africa & Middle East: EGJUG (Egypt), Morocco JUG, Faso JUG (Africa), Jozi JUG (South Africa), Mbale (Uganda). Java User Group adopters
  30. 66 What's in it for me? • Advance your career.

    • Grow your network and reputation. • Make new contacts. • Improve your “soft skills.” • Verbal and written communications. • Negotiation. • Collaboration. • Teamwork. • Have fun!
  31. 67 You don’t have to be a technical expert... •

    Help to moderate the mailing lists; steer towards helpful conversations • Evangelize the JSR through social media, blogging, presentations, or lightning talks. • Help with documentation. • Translate into your native language. • Help to maintain the FAQ/Wiki. • Improve project infrastructure and JSR visibility. • Help set up JSR hosting (java.net, GitHub, etc.) • Help with Search Engine Optimization of website. • Ensure that downloads, mailing lists, issue trackers are easy to find.
  32. 68 But if you are, or want to learn... •

    Help to manage issues: reproduce problems, erase/merge duplicates, set priorities/categories etc. • Think about how you would use the JSR in the real world and give feedback on its design. • Port existing software or develop new programs to test the RI (the actual implementation of the spec); provide feedback and report bugs. • Help to develop the TCK and use it to test the RI. • Help to develop the RI itself.
  33. 69 Participate in OpenJDK • Go to http://java.net/projects/adoptopenjdk. • Join

    the mailing list. • Join the IRC channel. • Or contact your local JUG leader.