Executive Committee Meeting Minutes
|Tuesday January 10|
|Since 75% of the EC's voting members were present, the EC was quorate for this session|
|Wednesday January 11|
|Since 75% of the EC's voting members were present, the EC was quorate for this session|
The EC Standing Rules state the following penalties for non-attendance at EC meetings (note that those who participate in face-to-face meetings by phone are officially counted as absent):
Since Intel missed the December meeting they lost their voting privileges as a consequence of not attending this meeting.
Patrick reported that after 25 years in the business, including 15 years in the Java organization at Sun and Oracle and 10 years as JCP Chair, he intends to retire in February. He thanked the EC for the opportunity to work with them and wished them well. Don Deutsch thanked Patrick for his service and reported that Heather Vancura will take over the Chair's responsibilities. Since there will be one more meeting (February 14) before Patrick's planned retirement date of February 17 Heather will chair that meeting while Patrick will attend as an observer.
Heather presented the usual EC stats (see the presentation for details).
Heather then presented the PMO's year-end report, noting that we have now been doing this for many years. This portion of these minutes is divided into several subsections to address the different topics covered in the presentation.
Heather presented the latest membership report, noting that we have been very successful in recruiting new Associate members (see the PMO presentation and the relevant section of the Year-end report for details). Gil Tene asked what the PMO is doing to convert existing individual full members to Associate status. Heather responded that they have informed all individual full members that they will either need to obtain an Employer Contribution agreement or convert to Associate status when the terms of their current (yearly) agreements end. The PMO will be working throughout 2017 to make the necessary conversions.
Don Deutsch asked how many of the individual full members are expected to convert. Heather responded that she expects that about 20% will remain as full members, 10% will drop out, and the remainder will convert.
Heather noted a significant increase in the number of people who voted in the annual JCP elections (80% of Associate Members voted) but cautioned that next year the numbers are likely to revert more towards the usual number (in the high 20% range).
Members briefly discussed the criteria for selecting members for Ratified seats. Patrick reported that the primary concern is to ensure that the EC represents the broader Java community, both in terms of geography and technologies. He noted that we currently have two Ratified seats to fill in a Special Election, and asked members for suggestions for who to nominate. He said that Alibaba had expressed great interest in a seat on the EC, and agreed that some representation from China would be a great advantage, but expressed some reluctance to nominate any company to a Ratified seat before they have had a chance to prove themselves in the JCP (Alibaba joined only recently). Martijn Verburg expressed support for nominating Alibaba and Gil Tene agreed, saying that they are very active in the Java community. He also noted that this is how the ratification process ought to work; it can help to fill a gap where "market forces" would not necessarily achieve the desired result. The EC decided that it would be helpful to invite Alibaba to come to the EC to discuss their activity in the Java community. It was also suggested that Loongson, an OpenJDK participant, might also be a suitable candidate.
Heather noted that there were significantly fewer active JSRs in 2016 (18) compared with 2015 (30). Bruno Souza asked whether the EC should be worried about this. Members had mixed opinions.
Gil Tene suggested that using a binary "yes/no" definition of active is not particularly helpful, and wondered whether we should devise a new way to give feedback - perhaps a score on a scale of 1 to 5. Amelia Eiras suggested that a similar mechanism to rank EC members' participation might also be helpful.
Heather noted that Oracle is the Spec Lead for 12 out of the 18 active JSRs. Members did not seem to be particularly concerned about this.
Heather then presented data on all JSR activity since the formation of the JCP (see the presentation for details). Gil Tene responded that the cumulative numbers are very impressive, and suggested that we should publicize them more.
Don Deutsch asked how many developers there are and what percentage of them are active in Java User Groups. Heather responded that there are about 400 JUGs in the world, but only 38 of them have been active in the Adopt-a-JSR movement. She also reported that at any developer meeting typically only a small percentage of attendees are JUG members.
Members then returned to the discussion of possible conflicts of interest when an EC member represents a Java User Group but is also an employee of an EC member company (see the minutes of the December meeting for the background.) Mike Milinkovich noted that such tensions are a natural consequence of admitting JUGs to the EC. Any JUG with broad membership is likely to have members who are employed by EC member companies.
Scott James noted that although he represents Credit Suisse he is also an active member of the London Java Community.
Mike DeNicola asked who will pay for JUG representatives to travel to EC meetings if Oracle will not pay for those who are employed by member companies. He noted that if the employer pays that could also be a conflict of interest.
Bruno Souza suggested that we should trust the JUGs, who will need to ensure that their representative is not biased. Amelia Eiras suggested that if there is misbehavior then the JUG can be voted out. Bruno went on to suggest that these kinds of conflicts will happen frequently, and asked how SouJava could fund its participation. JUGs need the freedom to choose their representatives. If Oracle will not pay then that freedom is restricted.
Don Deutsch noted that Oracle is only saying that they will not pay expenses for employees of companies already represented on the EC. He then noted that during the original discussion Patrick had noted that the Process Document has language that explicitly prohibits one EC member company from having a controlling interest in another (one must resign). He asked whether the EC thought we needed to create a rule specifically to address the JUG situation (he thought not). He noted that Oracle itself would not want to be in the situation where one of its employees was at the table representing a JUG. He reiterated that Oracle will not pay expenses for JUG members who are employed by EC member-companies.
Tony Printezis suggested that the best approach would be to treat things on a case by case basis. David Blevens asked whether all EC members could contribute to funding JUG members. Mike Milinkovich responded that he would be glad to do so if the JCP was an independent organization.
Members agreed that there is no need for explicit language in the Process Document and the discussion was closed.
Otavio Santana gave a presentation on a NoSQL standardization initiative (see the presentation for details). Gil Tene asked why the project did not plan to add a fifth (SQL) database type to the list of those supported. Chris Dennis agreed that this would be a good idea. Otavio responded that the NoSQL and SQL database types are so different that this might not be practical. Gil suggested that the name of the project ought not to be NoSQL (which says what it is not) and asked what it is. Mark Little compared the Diana project with Hibernate OGM.
Patrick reminded EC members that Oracle had released the results of their developer survey and revised plans for Java EE 8 late last year (see this blog posting). Gil Tene noted that there was no mention of microservices support. He suggested that Microprofile.io is likely to be widely adopted and unlikely to become a JCP standard, just as Spring was long before CDI or Dependency Injection.
Chris Dennis argued that standards bodies should not innovate and that it would not be a problem if the Microprofile initiative led the way. Gil responded that the initiative is standardizing. David Blevens responded that rather they are trying to find common APIs. He said that they want to innovate faster. In the past standardization sometimes happened prematurely (see CMP for example), and the results could be damaging for the Java ecosystem. CDI, JaxRS, and JPA, in contrast, were standardized only after the technologies had been widely implemented. He said that there is a need for a group to innovate rapidly and then standardize later. The Microprofile initiative is not competing against standardization.
Mike Milinkovich argued that just because a group of companies collaborate to enable interoperability this is not necessarily standardization - just good business practice. Gil responded that Java EE is being left behind. Chris Dennis argued that Oracle urgently needs to deliver a Java EE product that supports microservices and suggested that he was not sure whether the JCP needed to standardize in this area. (The lack of a JPA standard did not prevent people from using Hibernate.) He said that it would be OK for Oracle and others to deliver proprietary implementations. In two or three years one may win in the market or it may become clear what elements are needed. Standardization is not necessary at tis time.
Mike Milinkovich noted that Spring Boot is already successful in this space so there is now a three-way competition in Java: Spring Boot, Microprofile, and Oracle's proprietary implementation.
David Blevens noted that they are not ready to file a JSR yet. They do not yet have broad consensus nor have they developed a great deal of API code. Also, they have no agreement on what configuration features are required. He said that it would be premature to standardize now; instead they should keep innovating. If the EC hopes to see more than 10 active JSRs in the future then innovation is necessary. The low number of active JSRs means that we haven't yet struck an appropriate balance between innovation and standardization.
Hendrik Hoefer said that this discussion reminded him of the OpenJDK complaints that standardization is slow. Gil Tene said that the two situations are different. OpenJDK experiments on technologies that nobody has yet implemented in production whereas in microservices we have diverging productized implementations. There is no guarantee of future stability or of backward compatibility.
Patrick then asked Tim Ellison to present IBM's overview of the Microprofile initiative (see the presentation for details). The discussion then continued.
Scott James said that the discussion on standards and innovation is interesting but for Credit Suisse standards are extremely important; they need standards before they can adopt and incorporate technologies into products. While individual groups within Credit Suisse can adopt "innovations", at the enterprise level standards are an absolute requirement. David Blevens responded that as a vendor he also needs to be able to experiment and innovate. What is different in this case is that they are now experimenting and innovating with others rather than by themselves. He noted that the Apache incubator process encourages innovation while also ensuring that there is still a well-defined process for graduating. If we are going to grow the JCP we must learn how to innovate.
Tim Dinsdale gave an interesting presentation on the use of Java at Goldman Sachs. See the presentation for details (link to be supplied later).
Patrick re-opened the long-standing discussion on OpenJDK and the JCP. Chris Dennis raised the matter of the new proposal for incubator modules, noting that this further blurs the boundary between Oracle's JDK and others' implementations. Volker Simonis agreed. Patrick asked what action they expected the JCP to take. Gil Tene said that they have a right to do what they are doing. Patrick apologized for not setting up the proposed Working Group and promised to do so soon. He said that after discussions with Georges Saab and Brian Goetz it seemed as if most of EC members' concerns could be addressed by making two relatively small changes: formalizing the process of making biweekly "drops" of OpenJDK that include documentation (specifications) as well as code, and ensuring that these drops are licensed in such a way that all of the rights specified in the JSPA - in particular, the right to create independent implementations - are granted. Mike Milinkovich said that he had marked up license agreements that are used by OpenJDK for interim releases and promised to circulate these to EC members.
Gil Tene said that there are two separate topics of concern: the need for more transparency and appropriate licenses, and ensuring that there is no regression from historical practices. He also said that he had concerns about the effect that modularity in Java 9 would affect TCKs and the certification process. Patrick asked him to document these concerns in writing and to circulate to the EC. Gil agreed to do so.
Patrick briefly reviewed the minutes from the April 2016 EC meeting at which the EC discussed the possible issues and theme for another JCP.next JSR. After a brief discussion members agreed that they would like to move ahead with another JSR. We agreed to set up a Working Group to begin working on this.
The EC took up this topic again at the very end of the meeting. For convenience that discussion is minuted here.
David Blevens said that broader access to TCKs was very important to him. Patrick reviewed previous discussions on this topic, noting that Oracle has consistently said that they will not open-source their TCKs. The compromise we reached was to propose that all JSRs provide TCK licenses that (at least) make the TCK available to all those who work on the associated RI implementation project just as (in theory) the Oracle Community TCK License (OCTLA) does for OpenJDK. Gil Tene responded that in practice it takes many months to get this license signed by Oracle, and that no access is provided for the version currently under development. (So, for example, the JCK for Java 9, while available in early access form for licensees, is not available under the OCTLA.) Werner Keil noted that for Java ME even the members of the Expert Group have no access to the TCK - only EC members do upon request.
It was also pointed out that the OCTLA prohibits talking publicly about problems discovered when running the TCK, which seriously limits the usefulness of having access to it. Patrick responded that we ought to be able to specify requirements in the Process Document that correct these problems. Gil argued that we need to codify current practices to ensure against regression in the future.
Other possible TCK-related topics were requirements for TCK quality (Patrick responded that very few EC members currently review TCKs at all, so any such requirement was not likely to be successful) and the possibility of requiring a public issue-tracker to log problems against the TCK. He asked David Blevens to log issues in our JCP.next issue tracker to capture all of his suggestions. Heather pointed out that since Java.net is being decommissioned we will need to move the existing issues over to a new issue-tracker. Gil Tene reminded EC members that we need to be pragmatic when we define requirements on how Expert Groups do their work.
Patrick noted that the 7:00 am (Pacific) starting time for EC teleconferences is difficult for those who live on the West Coast, but pointed out that every time we had discussed the possibility of changing this European members resisted since they did not wish to work into the evening. After a brief discussion members agreed to switch the meeting times to 8:00 - 10:00 Pacific time.
Leonardo Lima led a discussion on the future of Java ME (see his presentation for details). He said Oracle has said nothing about the future of Java ME and that this reminded him of the Java EE situation from last year. Maulin Patel said that Java ME is very important for their Internet of Things (IoT) initiatives. Patrick asked whether Java SE Embedded would not suit their needs since Moore's Law ensures that small devices are getting more and more powerful. Maulin responded that customers want systems to be as small and fast as possible (cost is still a significant concern) and that security is very important to them.
Mike Milinkovich noted that Eclipse is doing a lot of IoT work, and agreed that cost is always important. Millions (and even billions) of devices will be significantly smaller than a Raspberry Pi, and therefore Java SE Embedded will not be suitable for them. He noted that even on larger gateway devices Java SE doesn't really offer a solution due to Field of Use restrictions. Low-level devices are not supported by Java - the sweet spot was Java ME. He argued that Oracle has no corporate culture of selling into the embedded market and suggested that exiting from the embedded market at the precise moment when this is taking off dramatically would be a big mistake.
Simon Ritter asked who would drive the necessary JSRs. Oracle seems not to be investing - why aren't others (Gemalto, for example)? Mike responded that the Process Document effectively specifies that only Oracle can lead a platform or Profile JSR; Oracle should either lead or get out of the way. Patrick confirmed this interpretation of the Process Document.
Hendrik Hoefer suggested that the upcoming module system might help, but noted that it may not be practical to support small devices by scaling down from a big platform. EC members wondered what Oracle would need to do to "get out of the way". Gil Tene responded that they would need to allow others to lead a new Platform JSR. He suggested that the important questions to answer are how small and fast the new platform could be and what capabilities would need to be ported from Java ME to Java SE and conversely from Java SE to Java ME. (For example, he suggested that device IO support would need to be added to Java SE in order to enable code written for Java ME to run on Java SE.
Don Deutsch said that Oracle is unlikely to be willing to "get out of the way", suggesting that perhaps they are unable to figure out how to lead. If EC members could define a direction for Java ME Oracle might be willing to follow.
Hendrik Hoefer said that we should no longer be talking about Java ME - that technology was for cellphones and is dead. We are now talking about constrained devices. Don asked whether there is a demand in this area for Java support. Leonardo Lima said that there is. Write Once Run Anywhere is still an important principle and there are great advantages to writing everything in Java. He also noted that the Java ME application model is very important. If Java ME is dead Oracle should let us know. V2COM would still be willing to help.
Gil Tene said that we should look at all of the capabilities from Java ME that people want. Azul would be willing to work on new features for embedded Java SE. Mike Milinkvich responded that this would help at the gateway level but not on the smaller embedded devices.
Tim Dinsdale asked how different Java ME is internally from Java SE Embedded. EC members responded that a lot of Java SE features are missing. Hendrik said that we should approach the OpenJDK team and persuade them to create a VM for much smaller devices.
The EC agreed to form a Working Group to discuss this further. Mike Milinkovich, V2COM, the London Java Community, MicroDoc, and Werner Keil expressed interest in participating. Patrick suggested that Gemalto (not present at this meeting) would probably also want to participate. Gil suggested that information about what V2COM has already done would make good input.
Ed Burns gave a status update on JavaServer Faces (see the presentation for details). Patrick asked him whether he expected JSF to be included in Java EE 8 since it was not mentioned in the latest blog posting. Ed said that it was. Members thanked Ed for leading such a transparent and open JSR.
Neal Griffin gave a status update on JSR 378 (see the presentation for details).
Heather reminded EC members that the face-to-face meeting in Austin Texas in May would take place on Monday afternoon and Tuesday (all day) rather than the usual Tuesday and Wednesday in order to allow those who wished to attend OSCON which will start on Wednesday of that week in the same city. She said that there will be a group dinner on Monday night and a JUG meeting on Tuesday evening.
Patrick then thanked Goldman Sachs for their hospitality and the meeting adjourned.
February 14 2017, teleconference, 8:00 - 10:00 am PST.