Tuesday, May 8, 2007

CommunityOne comments so far

After JavaOne last year, I told myself I'd attend NetBeans day in 2007. A month or so ago I registered for JavaOne and signed up for NetBeans day (not a very smooth process, I actually had to call someone to register for NB days because I'd already registered for J1) anyway, just after that Sun started to promote CommunityOne Day. So here I am at the first CommunityOne day, the day before JavaOne starts. The reason I wanted to come to NetBeans day (now CommunityOne day) was because it is so small. James Gosling just walked by me and he wasn't mobbed :-) I attended a presentation earlier today where Jonathan Schwartz was speaking and he was standing right behind me before the session started. Where else could you talk to Jonathan Schwartz with only 100+ people in the room? The message today has been pretty clear, Sun is going to open source all of its SW and innovation is the key. Almost every talk I went to today emphasized innovation. The argument goes like this, if Sun isn't trying to control everything, then their engineers are free to think about and work on innovation, it's what will set Sun apart from the others. Jonathan described the market as a really big pie and that there is plenty of room for many players. He also described how Sun will make money with this strategy, pull-through business by selling support, services and hardware. I think for me personally, I'm really excited about what Sun is doing. By making everything open source and freely available, means I can use the SW at home and on my own personal projects and in turn I can use it at work. I can see CommunityOne day being really big in a year or three so if you get a chance, I'd suggest trying to attend next year, before it's as big as JavaOne itself. For me, being able to talk to Jonathan or stop James in the hall is reason enough to come to CommunityOne. The content is somewhat different from J1. Instead of only being about Java (you could argue J1 is also going this way) you get exposure to everything Sun is doing in the open source space.

Java SE: Present and Future

Presented by Danny Coward Java SE Platform Lead, Sun Microsystems (blogs.sun.com/dannycoward) Everything you need to know about what's going on in the Java Platform, Standard Edition (Java SE platform). The goal is to give you an overview of everything that has happened over the last year or so. Danny will talk about things available today and things that will be covered in SE 7 tomorrow. Agenda, it's all about Java SE 6 Platform, the making of Java SE: java speaks in many tongues, breaking up is hard to do, Java SE on the desktop, some important upgrades. Changing the face of java, we are shown a slide with a timeline showing the various Java releases: JDK 1.0 pre 1997, J2SE 1.2 pre '99, J2SE 1.3 around 2000, j2SE 1.4 2002, pre 2005 J2SE 5.0 and just before 07 Java SE 6. Java SE 7 may be available just before 2009. Year in review, JDK 6 adoption, slightly more than half of all downloads of the JDK are SE 6.0. Java 6 JRE was release in April of 07. There are about 50,000,000 JDK downloads a month. The top 10 new features in SE 6, Web Services, Scripting, database, more desktop API's (SwingWorker, JTable sorting and filtering, GroupLayout - the layout manager used by Matisse), monitoring and management, compiler access, pluggable annotations (define your own annotations), desktop deployment, security, the -ilities: quality, compatibility, stability. Tools as part of SE 6: jconsole, jps, jmap, jhat (analyze memory usage), jstack (see BOF-2816), you don't need to start the JVM with any special options to use the probs, they attach dynamically. Java SE 6 is much faster than previous version of Java. Today, Java SE is open sourced, available under GPL. There are a couple of components only available in binary format due to licensing issues. As part of Java SE 6, the team started to do weekly builds and that made the move to open source much easier. Open JDK Community now available at openjdk.java.net. An interim governance board has also been establish (see Opening Session for member names). How Java SE Platform gets developed, the JCP defines API Specifications and OpenJDK implements those specifications. Why go multi-lingual? the Java programming language is the best general purpose language! Many other languages, many other virtues, rapid prototyping and experimentation, particular styles of programming, mixing different types of developers, or just for fun. In Java SE 6, Sun implemented JSR 223, Scripting for the Java Platform, developer APIs to mix script fragments in, Framework APIs for adding script engines, Collecting conforming scripting engines, see scripting.java.net, Sun added a JavaScript technology engine, JavaScript technology works out of the box. Here is a code sample: ScriptEngineManager m = new ScriptEngineManager(); ScriptEngine js = m.getEngineByExtension("js"); js.eval("print('Hello, world!')"); Check out the SE 6 demo directory for examples of how to use the new features. Multiple Languages in JDK Version 7, turbo-charging scripting engines, new bytecode for dynamic method dispatch, 'supporting dynamically typed languages on the Java Platform (JSR 292)', investigate hot swapping. Bundling more dynamic languages and engines, see JSR 274, JRuby, Jython, BeanShell, JavaFX technology script. Java SE is an enabling technology for these new technologies. Changes in Java SE 7 (for a complete list, check out Alex Miller's blog), reading is more important than writing, one language same meaning; everywhere, simplicity matters. Seeking a small number of changes for SE 7. Candidate changes for Java SE 7, superpackages, extensions to the annotation syntax, language support for java technology properties, control abstraction constructs (closures, CICE, first-class methods), operator overloading,rough edges (shorter variable declaration, strings in switch statements, etc. Modularity in Java SE 6, deployment time, interfaces and implementation classes, information hiding, assertions. Deployment time, JAR and Resources framework. One of the problems is with the packaging structure, let's say you have a picture and text package and they in turn use a data package, but the client can access all three package. What if you only want to selectively provide access to packages or classes in the package you can use superpackages. For an indepth discussion see the Strawman Proposal for JSR 294. Packaging, as in ZIP files and later JAR files, was originally put together for applets, but the specification hasn't changed in quite a while. This will allow you to define versions, dependencies, etc. and will likely be called JAM files, JAR file will still be supported however. For modularity see superpackages JSR 294, modularity 277 & 291 OSGi interoperability. They both have open mailing lists. Swing development, swing is a powerful toolkit, some developers are put off, time to make it easier. See JSR 295, 303, and 296 for how Swing will be simplified. However, SE 7 is a ways off, so what can we do for SE 6? How does Java stack-up against Flash? Not well, start-up time is poor, installing the JRE is slow, install tool is not consumer friendly and the size of the JRE keeps getting bigger and bigger (~ 12 MB). To fix these problems, Sun is going to release a consumer JRE release in late 2007 early 2008. Qickstarter, pre-load the cache, before launch, not the same as having a running VM, cooperates with the OS, a radically improved experience. Java Technology-based kernel, modularizing the JRE software, just enough to run "hello world", install the rest in the background: referencing a class, Class.getResource or equivalent, System.loadLibrary() or equivalent, custom JRE version for applications that need it. As a prototype, the team put together some trial, to run "hello world" the JRE was 2 MB, the SwingSet2 demo was just under 4 MB, whereas the whole JRE is 12MB. In SE 7, JMX is going to be revamped, see JSR-255 Java Management Extensions v 2.0 (JMX) and JSR-262 for web services connector for JMX agents. JSR-203, in early draft, a new file system API, java.nio.filesystem.Filesystem, listen for file-system changes. Other Kiri's to note 360 Javadoc Tag Technology Update and JSR 310 Date and Time API. Java SE 6 is available today, Open JDK is being built See planetjdk.org for Java SE blogs.

JavaOne General Session

Well, I managed to almost get a front row seat, I'm in row three, right in front of the main podium, very cool. They have a DJ (Anna, http://www.anon-music.com/ - not sure if this is the right link but I think that's what John said) playing some good trance music (if you like that sort of thing) and now the DJ is being shown on the big screen,she's mixing songs, and she even has a record player she's using (BTW, she's using a mac and a Dell, I think it's a Dell). One interesting thing, all the web browser being shown on giant screens are Safari, the Mac OS browser, I guess the folks at Sun like Apple. Another Apple note, the two laptops on the podium's are MacBook Pro's and there's also a PS 3. Here is a list of some of the pages shown being shown on the screens up front: www.foundmagazine.com, www.mulletsgalore.com/, www.wired.com, www.sciencedaily.com, http://www.zdnet.com/, http://www.abc.go.com/ (showing the Lost page), www.foodnetwork.com, www.justin.tv, www.tv.com, espn.go.com, www.oreillynet.com, the Vine from E! on-line, they are also running some animations on Google earth, and http://www.ff0000.com/. They are also showing videos of folks walking down to the session. It's 8:30, so the session should be starting any minute now... ah, it's starting now, they just asked everyone to take their seats. Okay, I thought it was starting but it seems we are still waiting, I guess everyone hasn't sat down yet. BTW, I just stood up and looked around, the room it completely packed, there are people as far as I can see, looks like there is a good attendance this year. Rich Green is pacing around, getting ready to talk I think. The music just got a lot louder and then faded out. John Gage was just announced and is now on stage. "Welcome to the 12th annual JavaOne Conference", said John Gage. John read from an article in today's NY Times. John held up the SavJe phone and said Sun is going to Open Source all the SW that made up the phone. Sun wants to make the phones so ubiquitous that the cost comes down. We need to remove our dependency on power and create new power sources (e.g. solar). John asked that everyone forget that they are British, Norwegian, etc. and be Brazilian! Then all the Brazilians started to yell and holler, "that's what Brazilians are like, warm and friendly". Don't sit with someone you know, sit with someone you don't know. Next he had everyone stand up and then asked those first-time attendees to sit down, then 2nd, 3rd, 4th, etc. and ended with quite a few 12th time attendees still standing. One of the goals for this year's J1 is to be zero-carbon or carbon-neutral, that is, all carbon expended for travel, catering, toilet flushing, etc. be accounted. They didn't realize just how massive an undertaking this would be, so they are going to work towards being carbon-neutral for next year's JavaOne. One key to being carbon-neutral is having small devices instead of large one's we've used before. We are now shown a video on how Java technology effects all of our lives. Next up is Rich Green, EVP Software, Sun Microsystems, Inc. We are going to have some big name guests on the stage today. Later we will talk about some new things we are going to be doing with Java. Rich is taking about, technology as a catalyst, the network is an unstopable social force. More than 1/2 a billion folks joined the network this year compared to millions (I missed the number) connecting via traditional computers. This is Rich's one year anniversary of returning to Sun. Here are some numbers for Java, 6M Developers, 5.5B Devices, 2.5M GFD downloads, 800M desktops, 1,8B phones, 11M phones. Here is a state of Java summary: GF from Enterprise to Media, V2 is an enterprise ready with scripting source (JRuby), available for Solaris, Windows, Linux and Mac OS X. GF is an enterprise transaction system, but it can do a lot more, so using the GF technology as a server-side technology. Rich asks up Martin Harriman, VP Marketing & Biz Dev from Ericsson to join him to talk about how Ericsson is going to open source (they are not doing a good job of telling us what it is, they mentioned it once and I missed it) multi-media IMS using GF on the server-side. Real time java: Ultimate predictability, finance, telecom, aviation, industrial-control and more, real-time with conventional tools and standard operating system. Given this code: java.lang.Thread can now be replaced with javax.realtime.RealtimeThread The CIO of NASDAQ is coming up Anna Ewing, the NASDAQ has more transaction per day than the next two equity exchanges combined, for a total of 150,378 transactions per second and it's all on Java technology. Anna is really excited about real-time Java and NASDAQ will be using real time Java. Her team is currently working with Rich's at Sun on using this technology. Java is Digital Entertainment, meet millions of consumers where they live - engage, PS 3, Blu-ray Disc, set top boxes. Next up is Tom Hallman, the VP of production operation Digital Authoring Center, Sony. Tom is talking about BDJ (Blu-ray Disc Java) and online connectivity. So this year when you buy S-M 3 at Christmas you'll see trailers relevant to 07, but next year you'll see trailers for '08 (live content). Tom shows us Open Season on BD and how Java technology is being used for animation and Tom said they are looking for Java folks to do something new. NetBeans 6: Unlock you potential, dynamic scripting with Java: JRuby 1.0 and JavaScript, GUI builder further simplifies client apps, robust new editor, modular packs for everything you need (Mobility, C/C++, Web, and more). Announcing today, OpenJDK, Sun is announcing the completion of open sourcing Java. Next, the governing board for Java, Doug Lea (State University of NY), Fabiane Nardo (CTO VIDATIS), Simon Phipps, Mark Reinhold, Dalibor Topic are the board. Also announced today, is the open sourcing of the TCK to ensure compatibility across the OSS community (note: I wonder if Harmony will be happy with this or not). So why did Sun choose GPLv2 as the license for Java? The GPL license forces all the development to be done in the open to keep all versions compatible. Java and NB will be part of the next Ubuntu release all thanks to the GPL licensing of these tools. Using a MacBook Pro, Rich is composing an email to the openjdk.net community, body: Today begins the next phase for Java. I am pleased to announce that we have completed the open source release of Open JDK. It's a great day for innovation - and remember compatibility matters! Rich. The email was sent off to the Open JDK community. We are now done open sourcing Java. Open equals opportunity, so what's next? It's open so what do we do now... Rich said some things could be done better, Java on servers is great, they are on mobile devices and desktops, but there is something else folks want them to do. It's time to reach the rest of the planet, Humankind: the biggest opportunity of all. Everyone want's Java to be faster, faster, faster (download, execution, etc.) The following releases of JDK 6 will all be focused on making all areas faster. But wouldn't it be cool if... let's a new focus on media, a new platform, JavaFX. Introducing JavaFX, consumer focused family of Java technologies, high impact consumer markets, based on Java SE. It's all based on Java SE. The big announcement is: JavaFX. Introducing JavaFX Script, scripting language for rich Internet applications, road map for content authoring tools, designed for content professionals, leverages Java's unmatched reach, stability and security. Rich is going to show us a demo, and is asking up Dr. James Gosling (the father of Java). James things JavaFX script is a really exciting new technology, created by one of the Sun engineers Chris Oliver. The system is all about creating really rich, exciting Java interfaces. Rich said, this is Sun at it's best, an engineer at Sun working on his own. Chris Oliver joins James and Rich on stage. First demo is a rewrite of a Motorola site using JavaFX. Underneath is Java, Swing, and Java 2D. It took Chris three days to reproduce a really cool looking site from Motorola, (see studiomoto for an example of what was reproduced). Next is a partial recreation of Tesla Motors site but all in JavaFX. A demo release is now available. JavaFX script runs on all JavaSE release out there without modification. But, wouldn't it be cooler if we could reach everyone else? Is there a way to take the power of Java on the desktop and make it available to everyone else? JavaFX Mobile, The network in your hand. Complete and fully integrated Java software system for mobile devices. Open, standards-based Java technologies, Supports JavaFX content authoring tools. When Rich went to show the demo it turns out he had the wrong handset. Then he shows a (editor note: iPhone like) phone all written in/with JavaFX. It is an open development platform. Sun wants to separate the OS from the phone much like we would do with a desktop and it's OS. This will be run as a traditional OEM business model. Now Rich is going to show us a showcase application, first Rich asks up Marco Boerries, SVP of Yahoo!, Yahoo! Go. Yahoo! Go, reinvents mobile search, to create a set of search results that are mobile phone friendly. We see flickr, maps, news, etc. Yahoo! Go is an open system, later this year, Yahoo! will let developers get access to the code so they can add their own content. Reaching humankind: now you can. Next up is Jonathan Schwartz, CEO and President Sun. Jonathan thanked Rich for doing what he had hoped Rich would do, drive creativity like JavaFX. Not only does Sun want to reach the largest companies and countries of the world but they also want to reach the smallest companies and countries in the world. While in the US we are used to computers as the gateway to the Internet the rest of the world uses mobile devices. Jonathan welcomes up, Dr. Djibril Diallo, NY Office of Sport for Development and Peace (www.un.org/youthsummit). It is unacceptable that 1.5 B people will go to bed tonight hungry. The UN is fighting for equality between women and men through out the world (no country teats their men and women the same). Sun is going to establish, engineers without boards (like doctors without borders). Sun is going to work with the UN on how to start connecting SW engineers and connect them to other engineers in the world. Jonathan asked Scott McNealy (Chairman and Co-Founder Chairman, Sun Federal, Inc.to join them on the stage to talk about bringing education to the world. Scott said that with Rich Green, Sun now has it's own version of Steve Jobs, everyone laughed. When Scott went to look for free open information for his kids and couldn't find anything, so Sun started curriki.org. The goal is to give the entire world access to a first grade to twelveth grad education. Final slides: Unstoppable growth, java joined world's largest OSS community, rich Internet applications, network in your hand. Imagine the possibilities... java.net the source for Java Technology Collaboration, Get Involved... Contribute... Innovate.

Monday, May 7, 2007

GlassFish: Getting Started and What's New in GlassFish V2

I don't have anything planned till noon, so I thought I'd check out the "GlassFish: Getting Started and What's New in GlassFish V2" talk. Eduardo Pelegri-Llopart of Sun and the GlassFish Team (Karen) are giving an overview of GF V2. I got to see a preview of GF V2 last year, so I'm hoping to see some more cool things this time around. Karen started off, welcoming everyone to the first ever, "GlassFish Day". Since the are looking for user feedback, they've offered everyone who fills out a survey either a T-Shirt, memory stick (with GF v2 preloaded), or a sticker. Karen told us that instead of meeting Jonathan for lunch, he'll join us in this room for a Q&A for about 30 minutes, then it's lunch. Next up is Eduardo to talk about what's new in GF. In order to best answer everyone's questions, the leads for each technology in GF are here to answer questions, after the presentation. For more info on GF, check out http://blogs.sun.com/theaquarium, http://blogs.sun.com/stories/, https://glassfish.dev.java.net/. He is now showing a time-line of Project GlassFish, showing the launch of GF June '05, v1 final JavaOne '06, V2 beta 2 J1 '07. What is Gf? It's the Java EE 5 RI, it's enterprise quality, bases for Sun's AS 9.0 & 9.1. What does RI mean? When you create a JSR, the EG also needs to produce either a proof-of-concept or implementation to prove the technology can be created. Earlier RI of other JSR's were proof-of-concept, but in the case of GF, this RI is actually production ready, not a prototype. It has a dual license, either CDDL or GPL v2, you as the user of the framework get to decide the type of license you want. GF is also a community, like Apache, but not nearly as large - Eduardo's words, not mine :-) In addition, GF is also a collection of other projects, like jMaki, Phobos, BlogApps, JAX-RS, etc. An important note, all GF related discussions, etc. are kept outside of Sun, except for a few instances, GF is it's own project run outside of Sun, outside of the firewall. Next slide, "A Taste of Java EE 5", for those who have not seen it yet... first we are shown an overview of J2EE 1.4, its powerful, a standard, but too difficult to get started, ever simple apps need boring boilerplate, in Java EE 5 we eliminate the boiler plate, and make simple things simple. Java EE 5.0 = (J2EE 1.4).next, the theme of Java EE 5 is "Ease of Development". It's embraces a POJO based programming model. We are shown the standard, here is how it was and here is what it's like now slides for JAX-RPC, of course the Java EE 5 version is about 5 lines of code with no deployment descriptor (compared to the 30 lines of code and 50 lines of XML for the J2EE 1.4 version). Bill Shannon said, "Not your father's J2EE". That's it about Java EE 5, just a taste. Now on to the GF community, the principles of the community are:
  • industry-leading technology, (no secret sauce)
  • want adoption of code base (no secrete sauce for code base
  • this is all of it (editors note: aka not like JBoss)
  • community centered
  • transparency
  • continuous improvements
  • participation
  • integrated
  • open standards - JCP
  • etc.
  • OSI License
  • clear copyright (SCA).
If you contribute code to GF you keep the copyright but you also give the copyright to GF (very similar to what Apache does). Why is Sun doing Open Source? Ubiquity, lower barrier to adoption, better products, more know-how, larger, faster adoption of Java EE 5. Revenue - training, support, consulting, systems (HW). Sun get big portion of pie, as pie gets bigger so does Sun's share. Code donations include Sun Microsystems, Oracle, TmaxSoft, BEA, JBoss, Jetty, etc. etc. GF v1 has been released, last year at J1 '06. GF v2 includes everything that could not make it into GF v1, new WS stack, load balancing, cluster management, some scripting support, community, transparency, adoption. GF v3 better modularization, better scripting, etc. GF would like everyone using Tomcat to start using GF. For memory replication Sun used to use a HADB (High availability DB), here they would store the HTTP session state, EJB's, etc. Now GF also has memory replication, which most customers will likely use. Memory replication of of the box, create a domain, use the cluster admin profile, create cluster and instances deploy your application with availability-enabled=true and that is it. The underlying technology used for memory replication is JXTA, originally developed for peer-to-peer but is good for managing memory replication. JAX-WS and JAXB implementations, considering giving this a new name because of their popularity. JAXB RI is the de-facto industry standard, JAX-WE is much faster than Axis. Next is JBI (Java Business Integration), built in support for JBI (JSR-208), JDB run-time OpenESB. As for GF, there used to be multiple profiles, platform, enterprise, etc. now there is just one download and the developer/administrator choose the profile the time of domain creating. Improve user experience based on the profile chosen, GF v2 will support Developer, Cluster, and Enterprise profiles. There are some security enhancements, JSR-196, ECC (Elliptic Curve Cryptography), JNKS (java key store), support for "assign-groups" in security realm, support for JDBCRealm. One the Web Container, includes JSF, JSP, Grizzly, ARP (Asynchronous Request Processing) and comet, non-blocking SSL, Apache ajp protocol, in-memory JSR 199 style JSP compilations, generic NIO framework Grizzly 1.5) Top Link Essentials/ JPA, oracle contribution, very active community Oracle, Sun, TmaxSoft, independents, Pluggable in GF, JEUS, Jonas, Tomcat, etc. GF V3 will have a modular system, you only load what you need, open, starts in 0.5 seconds on the best PC, 0.7 on Eduardo's laptop

Q & A Session with Jonathan Schwartz and Rich Green

Very cool, Jonathan Schwartz was right behind my seat and I didn't even see him. Steve Olson just joined me, so we are going to listen to Rich and Jonathan together. Jonathan is talking about the the minimal foot print for GlassFish and how it can now run on a phone (GF v3). Jonathan and Rich are doing everything they can to remove all obstructions. There was an old saying at Sun, "Innovation happens elsewhere" and they want to foster innovation. They want to breakdown barriers and foster innovation. Investors keep asking Jonathan why Sun keeps giving away their ideas and an engineer @ Sun said they are not afraid of running out of ideas. Question about convergence, OSGi vs Java Modules, etc. Rich could not really answer the question but he did say, if we use late binding for the implementation, we can then decide on the right solution at deployment and not have to make a decision @ development. Editorial comment: I'm not sure how viable this suggestion really is. Companies that handle really large volumes of data cannot wait till later to chose the technology but I'm many applications will be able to leverage this type of architecture or development style. Jonathan talked about the choice to Open Source their software and how he sees the value Sun provides. If you are self-sufficient (as most are) you shouldn't have to pay for SW, however, if it is important for you to have immediate support when something goes down or you don't want to support it yourself, Sun can provide support and that is where the value is. The more open the more folks can innovate, so Sun is really moving towards the real revenue. Sun isn't Costco, they are not interested in bulk, they are interested in innovation. In a sense, they don't have a plan, that is to day you cannot plan innovation, it happens but you can plan for and create an environment that fosters innovation.