Fixing the jcp – the server side java symposium

The official title of this session is “The Java Community Process – What’s broken and how to fix it”.  The panel is James Gosling, Patrick Curran (head of the jcp) and Reza Rahman (member of jcp expert groups and author of EJB in action)

What’s wrong

  • Some inherent because so many priorities and agendas. these predated Oracle
  • Apache Harmony TCK issue (Apache Geronomo doesn’t pay for TCK because non profit open source. The problem with Harmony is that it has restrictions). Reza would like to see it free, no strings attached after the lawsuit.
  • Patrick said Oracle is more forceful than Sun in that they make a stand rather than bicker forever
  • Reza said James is too bright but not practical enough :). He views Oracle as being more practical. Reza noted leading is hard and getting people to agree is hard. He views Oracle leading as a necessity because they have the resources to be a JSR lead.   James noted being a spec lead is a full time job even if things go smoothly.
  • In 2007, Oracle tried to create an organization so sun would have less power. Now that they are in charge, they want to retain ownership. Logical position at least.
  • Process issues -greater transparency so don’t have to be a JCP member for read only view
  • Reza views a big problem as lack of individual participation in the JCP. Reas the proceedings, blog, be spec leads, etc. Democracy is participatory [yes, but this isn’t a democracy, right after i wrote this Cameron noted SpringSource and Google are leading by example. Reza said that sounds like Microsoft. and it does.  Except that Sun copied from Spring extensively. James noted that innovation in the String class would be dangerous]

What could be better

  • Reza recognized it is hard to have an independent JCP. It requires resources, a way to move forward without veto bpower, etc
  • Patrick noted that all standards groups have these political obstacles because companies or countries have different interests. The fact that they are trying to work together is a good thing.
  • Patrick noted things are better than they look. Some groups have mailing lists that be read.  Oracle is looking at making things more open and expect to mandate transparency via an open mailing list. Similarly for formally tracking comments. The executive committee has been publishing minutes for several years.
  • Patrick noted they are looking at making it easier to join. In particular, creating a simpler legal agreement for non-spec lead roles
  • Patrick pointed out standards take time. It is more important to get it right than fast. It is avoiding unnecessary waste that matters

audience questions

  • Role of spec evangelist separate from spec lead?  Reza said don’t need formal role. Independents on JCP should blog and do this
  • More people shipping products dependent on platform?  oracle working on balance. Also looking at letting java user groups join so members can contribute
  • What can someone do to help without spending a lot of time?  Follow JSR interested in. Read the spec and comment without joining group. Mny JSRS are open source comments. Reza listed following jee articles on theserverside and javalobby and leave comments for actual jcp members to read and convey. Similarly for the comment period. [this was my question, a lot of the answers sound quite time consuming to me. Reza did list a short one which I appreciate]
  • Developers wait until something is stable to try it because working our own problems. By then it is late in the game to comment. Everyone agreed the proposed final draft and reference implementation IS that

java in flux – the server side java symposium

Oh look.  The ten line Oracle disclaimer is back.  At least this talk contains some forward looking statements where it makes sense to have the disclaimer.

Communication
Oracle recognizes they have issues with communicating late/poorly.  They have a culture of saying little and sticking to it.  Whereas Sun had more dialog.  They acknowledge it; will be interesting to see what happens.

Priority

Want to keep Java vibrant to keep making money.  Said will continue move to Open JDK.  Moving JRockit features to OpenJDK.

Other topics

  • Looking at support for multiple cores at the CPU level.  Think parallel collections and lambda/closures will be good candidates for paralleilization
  • Let ideas mature in more experimental languages
  • Reiterated pledge to backward compatibility
  • Covered what’s new in Java 7 at a high level – most I had heard before – the more lightweight garbage collector was new to me
  • Java 8 – more modularization, project lambda(closures), annotations on Java types and more small language enhancements
  • Java 9 – really speculative – forces on platform independence with hardware virtualization, better interoperatibility with non Java languages, improved data integration, improved device support
  • Looking to expand Java FX [surprised]

JEE

  • Want JEE 7 done before Java 8 comes out which is end of 2012
  • Looking at what can do for modularity in JEE 7 before “real” modularity comes out in Java 8
  • Compared Java to .NET.Azure including areas like Cloud and multiple language support where Microsoft doing better
  • Covered the problems it was designed to solve and how it got so big that it isn’t simple anymore. Going back to POJOs, dependency injection. [again making it sound like this stuff just sprung up from developer complaints]
  • Showed timeline from 1998 and J2EE 1.2.
  • Recognized innovation is occurring on the outside and the platform stewards/Oracle need to reuse that to avoid becoming irrelevant
  • Customers win when there is interoperability and vendor choice
  • Companies want to build internal clouds – solutions starting to be built on Java Also noted cloud gives new JEE roles of data center and tenant roles. (in addition to things like deployer) In addition, noted the existing JEE APIs need to become tenant aware. Such as how to discriminate within a table what rows are associated with what tenant in a JPA entity. Maybe in JEE 8

Live from TSS-JS – Mobile Development with Mark

Currently attending “Comparing, Contrasting, and Differentiating Between Mobile Platforms” by Mark Spritzler, a fellow CodeRanch moderator.  The presentation is in part an open discussion with the audience of what people have tried and works well in the Mobile environment.

1.  What is out there?

  • Android OS (Java)
  • Apple iOS for iPhone/iPod/iPad
  • Web applications with custom UI for mobile applications.  CodeRanch currently offers a mobile web version of the website
  • J2ME (not common)
  • BlackBerry (custom Java)
  • SymbianOS (C)

2.  Android OS Review
Built by Google and uses Java and can run Flash.  UI built with declarative UIs using XML primarily and supports visual tools such as Droid Draw and/or Interface Builder.  MVC-like architecture with view as XML, and control/model as Java classes.  The API is quite open so there’s a lot of ability to customize for developers.

There is currently a large variety of Android devices so splintering of the code base could be in the future.  Some devices cannot upgrade the Android OS, leading to permanent branching of code base.

Also, Android requires a lot of manual work to integrate with a database, such as SQL Lite, whereas Apple iOS has this built in.

3.  Apple iOS Review
Built by Apple and uses Objective-C, and cannot run Flash.  Developers must manage memory manually.  The API is completely proprietary and there are limit tools for developers.  For example, the developer must have a Mac and use an xCode.  Closed APIs but Apple promises stability (although it did change in iPad with split/view feature).

Dicussion on Apple’s strigent application approval process followed.  One participant commented that they waited 1-2 months for Apple to approve it.  Apple has also stopped approving ‘pointless’ apps.  I asked Mark if he thinks the delays are worth the improvement in quality, to which he replied that it does lead to better applications.  He also informed the audience that Apple wants you to use certain visual controls in particular manners to help build a consistent UI, and may reject applications based on improper usage.  Apple sometimes comments on why applications are rejected but not always.

4.  J2ME Failure Review
Idea was to develop using Java and runs on a variety of devices.  One of the major problems is Sun certified J2ME mobile phones that didn’t properly or fully implement the spec.  Also, lead to splintering of code base and very inconsistent results across devices.

5.  Native vs Web applications
Web applications have greater reach since they can run on many devices, but have weaker performance and require the developer to self-promote them.

6.  App Generating Frameworks
Build mobile applications from predefined templates using a CMS system often entered in a web browser, such as MobileRoadie, but it is a paid service.  Builder frameworks (often open source) that generate mobile applications based on existing code including Appcelector, Rhomobile, PhoneGap.

Write once and run on many devices through generation.  They may have limited functionality since they use a subset of features available in the language.  Multi-touch is also very limited in Android over iOS.  HTML5 does support location-aware so it can help in application generation.

Conclusion
Mark ended the presentation with an open discussion asking people to share their own mobile development experience.  He pointed out that there a lot of pros and cons to using different mobile platforms and mobile devices, and you should consider the resources on hand when deciding how to proceed in development.