Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JCP & The Future of Java

233 views

Published on

Presentation from JPrime Sofia, Bulgaria, Java Conference on Java, the JCP and Adoption Programs.

Published in: Technology
  • Be the first to comment

JCP & The Future of Java

  1. 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | The JCP and the Future of Java Heather VanCura Director & Chair, JCP Program @heathervc May, 2017
  2. 2. Heather VanCura ❑ Chair & Director of the JCP Program ❑ Leader of Global Adopt-a-JSR Programs ❑ Open Source Fan ❑ Native Californian - from San Diego ❑ Personal Interests: Fun Bay Area, California - USA
  3. 3. Continued growth ❑ #1 Development Platform, Now in the Cloud ❑ 10 Million Java Developers Worldwide ❑ #1 Choice For Developers ❑ 13 Billion Devices Run Java ❑ 200 Million Medical Devices Run Java ❑ 1 Billion Automotive Devices Run Java ❑ 97% of Enterprise Desktops Run Java
  4. 4. Java Philosophies ❑ Platform Completeness ❑ Quality and Security ❑ Modernization and Innovation ❑ Open and Transparent Evolution ❑ Developer Productivity & Compatibility ❑ Active Ecosystem Involvement
  5. 5. Technology Demand Industry trends indicate that by 2020, there will be 1.4 million computing jobs available. On the surface this sounds great, but
  6. 6. ❑ A shift from the one with the best technical skills wins ❑ To…the one with the best people skills wins First Computer Programmer
  7. 7. In 2017… 50% of tech jobs = Technical skills ❑ Top five key soft skills that engineers and other professionals should develop for career success: ❑ Communication ❑ Creativity/Critical Thinking ❑ Adaptability/Flexibility ❑ Collaboration/Teamwork ❑ Leadership
  8. 8. ❑ Not easy to acquire ❑ Require practice ❑ Human interactions ❑ Complex thinker, relationships, emotional intelligence = practice with others In-demand skills
  9. 9. How to acquire? ❑ Engage in Community events ❑ User Group Meetings ❑ Conferences ❑ Open Source Projects ❑ Java Community Process (JCP) ❑ Hack days &/or Hackergartens ❑ Kids coding workshops
  10. 10. Why Should Developers Participate? ❑ Knowledge ❑ Skills ❑ Visibility ❑ Altruism ❑ Advance Career ❑ Fun
  11. 11. Membership Quotes ❑ "Joining the JCP, especially being a member of several expert groups, has had a big impact on my career. Mostly by making it visible for the leadership and managers in my company that I am actually a part of forming the future of the platform. I also think, or hope, that it is an inspiration for my colleagues."
 - Ivar Grimstad ❑ "Joining the JCP is like being a Java citizen."
 - Heinz Kabutz
  12. 12. Collaborative Development - How does is work? ❑ 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) •.
  13. 13. The JSR Development Cycle ❑ Includes formal public reviews and votes by the Executive Committee. ❑ Full Members can submit & lead JSRs, serve on JSR Expert Groups. ❑ See the Process Document for the details.
  14. 14. Compatibility Triangle Can you build an implementation? Is the specification unambiguous? Is the TCK correct? Does the RI conform?
  15. 15. Who Are The Members? https://jcp.org/en/participation/membership ❑ Corporations ❑ Non-Profits/Open Source ❑ Java User Groups ❑ Individual Developers
  16. 16. JUGs around the World
  17. 17. Participation ❑ 15,000+ Users ❑ 2,500 Expert Group Members ❑ 800+ Members ❑ 60+ Java User Groups ❑ 25 EC Members ❑ 380 JSRs
  18. 18. Organization
  19. 19. The Executive Committee ❑ Corporations ❑ Non-Profits/Open Source ❑ Java User Groups ❑ Individual Developers
  20. 20. How: Open Standards & Open Source ❑ We need both!
  21. 21. Complimentary ❑ Open source important requirement. So are Standards. ❑ Coop-etition. Agree on what to standardize (cooperation) & what to compete on (implementations). ❑ Open standards implemented in open source = easier to implement standard & for developers to understand technology. ❑ Results in more implementations and greater adoption of the standard. ❑ An effective way to develop a standard-start with an open source project that has demonstrated the need for standardization.
  22. 22. Open Source Implementations ❑ The Reference Implementations of the Java SE and Java EE platforms are also developed collaboratively and released under open-source licenses. ❑ Java SE: OpenJDK ❑ Java EE: Project GlassFish
  23. 23. ❑ New revisions of each of the three platforms. ❑ “JCP.Next” reforms . ❑ Increased participation from Community. Organization Focus
  24. 24. Java ME 8: (JSRs 360 & 361) – April 2014
  25. 25. Java EE 7: (JSR 342) – May 2013
  26. 26. The Vibrant Java EE Community Java EE Compatible Application Servers User Groups Java EE Developers Career OpportunityPublications
  27. 27. Revised Java EE 8 Proposal ❑ Modernizing Java EE for Cloud and Microservices ❑ Retarget Java EE to address these trends - 15+ JSRs ❑ Goals: ❑ Migration path to cloud development and deployment models for Java EE customers ❑ Migration path to microservices-based architecture for Java EE applications ❑ Backwards compatibility with Java EE
  28. 28. Java EE 8 Overview Connector JAXBJSP Debugging Managed BeansJSPConcurrency EE Interceptors JAX-WS WebSocket Bean Validation JASPIC ServletJMS JTADeployment Batch JACCDependency Injection JAXR JSTL Management CDI EJB JAX-RPC Web ServicesJSF JPA Common Annotations EL JAX-RS Web Services MetadataJavaMail CDI 2.0 JSON-B 1.0 Security 1.0 Bean Validation 2.0 JSF 2.3 JAX-RS 2.1 JSON-P 1.1 Servlet 4.0 JSP JSR Maintenance Releases (MRs) will be delivered as well
  29. 29. Java SE 8: JSR 337 - March 2014
  30. 30. Java 8 Adoption
  31. 31. JDK 9 ❑ Another big step forward ❑ 122+ JEPs targeted for JDK 9 JEP = Java Enhancement Proposal ❑ Big one – JEP 261– Module System http://openjdk.java.net/jeps/261 ❑ Jigsaw available in current JDK 9 EA (early access) http://jdk.java.net/9/ Build 111 or later has Jigsaw in it Current available downloadable build is Build 181
  32. 32. Java 9 Important Features: ❑ JEP 261: Module System ❑ JEP 200: The Modular JDK ❑ JEP 222: jShell ❑ JEP 260: Encapsulate Internal APIs ❑ JEP 282: jlink: The Java Linker ❑ JEP 295: Ahead of Time Compilation (AOT)
  33. 33. Beyond Java 9 Project Valhalla ❑ Value Types ❑ Specialized Generics ❑ Var Handles Project Panama ❑ Foreign Function Interface ❑ Date Layout Control ❑ Arrays 2.0 http://openjdk.java.net
  34. 34. JCP.next: Changing the Constitution
  35. 35. JCP.next (JSR 348) - Transparency ❑ No more smoke filled rooms!
  36. 36. JCP.next (JSR 355) – Merge the EC ❑ One Java, One EC
  37. 37. JCP.next (JSR 364) – Broadening Membership
  38. 38. ❑ Eliminate Barriers to participation. ❑ Introduce new Membership levels. ❑ No Membership Fees. ❑ Electronic Signatures. ❑ Add Contributors for JSR Expert Groups. ❑ Add Associate Seats on Executive Committee. JCP 2.10, Broadening JCP Membership
  39. 39. ❑ Associate Members are individuals who can be listed as contributors to JSRs and vote for the Executive Committee. ❑ Partner Members are Java User Groups and other non-profit organizations that can serve on and vote for the Executive Committee. ❑ Full Members can serve on Expert Groups, lead JSRs, serve on and vote for the Executive Committee Memberships
  40. 40. ❑ OpenJDK Working Group ❑ Java ME Working Group ❑ JCP.Next Working Group ❑ Follow the EC Summaries and discussion: ❑ https://jcp.org/en/resources/EC_summaries What’s next?
  41. 41. The JCP is More Open Than Before
  42. 42. How will you Participate? ❑ As an Individual – OK ❑ As part of a team – better ❑ Work through your JUG or employer ❑ Help each other ❑ Teach other ❑ Work with each other
  43. 43. Working Together – We Achieve More

  44. 44. 1) Pick JSR - New JSRs
 ❑ Security (JSR 375) ❑ JSON-P 1.1 (JSR 374) ❑ Java Module System (JSR 376) ❑ Desktop Application API (JSR 377) ❑ Portlet 3.0 Bridge for JSF 2.2(JSR 378) ❑ Java SE 9 Release Contents (JSR 379) ❑ Bean Validation 2.0 (JSR 380) https://jcp.org/en/jsr/stage?listBy=active Recently Submitted: ❑ Java EE 8 (JSR 366) ❑ CDI 2 (JSR 365) ❑ JSON-B (JSR 367) ❑ Servlet 4 (JSR 369) ❑ JAX-RS 2.1 (JSR 370) ❑ MVC (JSR 371) ❑ JSF 2.3 (JSR 372)
  45. 45. JSR example page List of Active JSRs (posting in last 12 months): http://jcp.org/en/jsr/all? status=Active&activeMonths=12
  46. 46. 2) Communication: Two Way Street
  47. 47. 3) Decide on Steps: Take Action ❑ Share ideas and feedback, comment on list and public issue trackers. ❑ Read early versions of specifications and Javadocs. ❑ Try writing sample applications using early builds of reference implementation. ❑ Write or speak about the technology and encourage others to participate. Translate into your native language. ❑ Evangelize the JSR -social media, blogging or lightning talks. ❑ Help with documentation.
  48. 48. 4) Follow Public Discussions & Comment - Issue Tracker example
  49. 49. 5) Share - Add & Use Resources on GitHub
  50. 50. 6) Participate in Hack Days – Have Fun!
  51. 51. Adopt-a-JSR ❑ A JUG-lead initiative to improve Java standards. ❑ Global groups of JUG members work on JSRs. ❑ Receive attention from local industry. ❑ Become more professional – helps focus your group efforts. ❑ Attract more developers to your community
  52. 52. Java 9 Hack Days All JUGs can participate!
 ❑ November 2016 Iceland ❑ April 2017 London ❑ August 19 Atlanta ❑ September London (Advanced) Virtual JUG Hack Days
 https://www.meetup.com/virtualJUG/events/240545774/
  53. 53. Bucharest JUG Java EE & Java SE ❑ JSR 374, JSON P 1.1 Hack Day Use Cases
 https://github.com/Adopt-a-JSR/JSONP1.1-DEMO
  54. 54. Bulgarian JUG - Java EE JSR 365, CDI 2.0 ❑ Full Day hack event with Spec Lead of CDI, Antoine Sabot-Durand ❑ March 2017 ❑ Collaboration/mentorship with Coimbra JUG in Portugal Use Cases

  55. 55. NL JUG & Chicago JUG Use Cases
 https://github.com/EelcoMeuter/JSR-375-examples ❑ JSR 375 Securiy JSR, CDI 2.0 ❑ Hack Day event ❑ Java 9 Hack Day - collaboration
  56. 56. Paris JUG - Java SE ❑ JDK 9 Hack Day ❑ Full Day (sold out) hack event ❑ Another event planned later in 2017 Use Cases

  57. 57. BeJUG (Belgium) - Java EE ❑ JSR 356, Java API for WebSocket ❑ Hack day (s). ❑ Developed Tic-Tac-Toe game Included in Java EE 7 SDK. Use Cases

  58. 58. London Java Community - Java SE ❑ Java 9/Jigsaw: Myriad hack days, talks and events organized ❑ More planned in August & September 2017 Use Cases

  59. 59. SouJava (Brazil) ❑ Java EE JSRs ❑ JDK 9 participation in hack days ❑ Many talks, books, articles, classes, code dojos (hack days), translations Use Cases

  60. 60. Chennai JUG - Java EE ❑ JSR 338, Java Persistence 2.1 ❑ JSR 344, JSF 2.2 ❑ JSR 352, Batch ❑ JSR 353, JSON ❑ JSR 356, WebSocket ❑ Developed sample ‘Urban Traveler’ application. Use Cases

  61. 61. Participate in OpenJDK ❑ Adoption Group & Quality Outreach ❑ Join mail list prior to sending feedback: http:// mail.openjdk.java.net/mailman/listinfo/adoption-discuss ❑ https://wiki.openjdk.java.net/display/quality/Quality +Outreach
  62. 62. Java EE Development has Moved to GitHub
 ❑ Migrated from Java.net ❑ Broaden community participation ❑ All of GlassFish development ❑ Most of Java EE development ❑ Specs and implementation ❑ Repositories ❑ New mailing lists https://github.com/javaee
  63. 63. We need you! ❑ Follow the JCP online: http://JCP.org ❑ Join the JCP: https://jcp.org/en/participation/membership ❑ Twitter @jcp_org #JCP ❑ blogs.oracle.com/jcp ❑ Facebook: Java Community Process ❑ GitHub: https://github.com/jcp-org; https://github.com/javaee ❑ Adopt-a-JSR online: adoptajsr.org. #adoptajsr ❑ adopt-a-jsr@googlegroups.com- the global mailing list ❑ IRC: #adoptajsr channel on irc.freenode.net ❑ GitHub: https://github.com/Adopt-a-JSR
  64. 64. thank you, ευχαριστώ, shukriya, dziekuje , tak, tack, grazie, gracias, danke, Благодаря, merci, obrigado, bedankt, kiitos, xie xie, ありがとう. Questions? Find me on Twitter: @heathervc

×