Joine Music

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Wednesday, 14 March 2007

Sun Tech Days (London): Day 2, Report 1 - Gosling Keynote and Sun and Darkstar demo

Posted on 03:30 by Unknown
Pre keynote
Waiting for the keynote to start I see guys demoing an SL based (WRONG! It's Darkstar based - I should have known. Less lag ;-) (?) collaborative working env. called MPK20 (Project "Wonderland"). I'd never heard of it before but it looks very cool. I need to find out more. They showed how you can take your screen and share it in the virtual world and there are also noticeboards and common areas where you can paste up shared information. Each developer has their own office. Cool

Then they show Project Glassfish. There is a good crowd round the demo. Comparisons to Vista and the usual MSFT dig (shame). Otherwise exciting.

... the keynote is starting (video from Jonathan Schwarz). You get the distinct feeling that here under the dome the voice of god has spoken ... A little scary.

The next guy comes out. He's RL and more worryingly he's Californian. It gets worse. He has a beach ball. Everyone recoils in horror but then the mention of James Gosling gets a spontaneous round of applause. Now there is an announcement that there is going to be an unconference at the end of the day. Interesting to see if this catches on in the UK. Only ~10 put their hands when asked if they'd heard of the format...

Simon Ritter is up now. (Apparently the previous guy was called "Ricky"). Apparently 11,000 developers came to the developer days in Hyderabad (2.1% of the GDP in India is attributable to Java we are told). Unfortunately after Ricky, it now feels slightly like the Sun has gone in... Can I feel the wind start to pick up?..

James Gosling - "The Future is Open"
The Java landscape still has a great deal of innovation even though the VM and language has been stable for a long time.

We're on the road to ubiquitous computing. The network is spreading out to some really interesting edges and feeding on itself. 4 "Anywhere's" (Enterprise, Standard, Embedded and Card- interesting to see card up there still). The embedded world is tracking Moore's law pretty tightly. Its putting lots of stress and evolution in the APIs.

Java's Role: Conceptual framework which spans the network. It enables a homogeneous view of a heterogeneous reality; an ecological view. It's "learn once work anywhere". Its a realitively small step from Java on the desktop to Java on a coke machine, or in the enterprise. All the core learning carries forward.

It's used everywhere: Brazilian NHS (tracks every patient in one LDAP database and tracks every patient interaction across the entire country), giant telescopes, JPL, protein folding, eBay, Orbitz (Jini gets first mention ), FedEx (more Java developers than Sun), financial, web apps, games (e.g. A.I. engines)... It is now on > 1 billion handsets. There were 54 million JRE downloads in January ('07)

Web2.0 is now but what were the generations of technology? Early on it was rocket scientists (NASA) with bare metal and floating point operations. This hasn't gone away but it has morphed and grown. Thick client comes alon and now common within enterprises. Then Web apps. But what is "Web2.0"? Personally Gosling would delete the phrase from the vocabulary. It is a composite label for a bunch of underying ideas. What is in and what is not in the bundle depends on who is talking. The big thing is it's a lifestyle. (pic w. iTunes, Gmail, Yahoo,Google Maps, SalesForce, Rails, Basecamp). It's not the pure push models. Now the community is involved (Flickr, YouTube). In these sites they have produced almost othing. The content is generated by the community by their interactions with the services. They (Flickr and YouTube) provide the framework. You do the (s)mashing up.

It's a development model. It is very community oriented. People talk about Open Source (again it means so many things to so many people - forJames it's not the source it's the community. It's about collaborative development. People all around the world working to make stuff.) Then standard elements become important i.e. identity. What does your user look like?

A big thing has been AJAX. ("Gee you guys just realised you could do this? The browser has been capable of this for 10 years. Duh it's been sitting there"). What is important is not JScript and XML, it's the realisation that HTML alone does not give you a very good UI. Enhanced interfaces are possible. If you're doing forms use HTML, otherwise, it becomes difficult.

The JVM. It;s the integration hub. Most people forget about it. There are about >100 languages running on it. Many are not for all (Jmes wrote a Fortran 77 translator a few years ago for it "because he's stupid"). However the JVM is a mediator.

Weaving thrOUgh all these pieces is secuity. It's woven into the JVM. You don't go to the shop for anti virus software for Java. It doesn't need it. People have built all kinds of security sstems on it (banking, healthcare)

But this becomes inherantly complex. One of the jobs of the community is to battle it. The focus has been Java EE. 5,0 dealt with complexity via common scenarios by exploiting annotations and generics.

Historically people focussed on the API and the languages. Now it's also handled by the tools. Tools like Netbeans. It has a tremendous amount of work gone into it to simplify things. The app servers have also done the same (glassfish). All these pieces are developed in a very communal way. Sun showed the Java source since 1995. The only thing which changed was the licence.

Tying all the seperate dev.processes together is the JCP. Kind of like a standards organisation but kind of not. The big thing happening at the moment at the JCP is how to open up the process itself. List of JSR's. Mine (JSR 310) hasn't been mentioned yet but the point is that they are about simplifying things such as JSR-277 - the modular system.

JCP components are three fold:
  1. Specification - what is it for?
  2. Reference Implementation - can it be built?
  3. Compatability Test Suite - is my implementation complete?
Netbeans! (announces the slide). One of the big things for Sun is the tools. A lof of complexity can be addressed by the tools. E.g. GUI development. "Swing is the most powerful UI toolkit on the planet." But we want to make not only everything possible but easy too. A lot of work has gone into Matisse - it has an A.I. constraint based model to guess your alignments. It is trying to avoid absolute positioning so that it scales and internationalises properly.

NB also has a lot of support for enterprise dev. EJB, WS, debugging on the app server is greatly simplified.

Also refactoring, version control. More and more is being covered all the time.

[Aside: he's using a Mac for his presentation. He also seems to have written the slide presenation program he's using... Envy! Update: I'm told this is Huckster]

The desktop world has been changing. AJAX has driven the realisation that HTML does not produce a compelling user experience. THere is more than one desktop platform that people care about now. not just Windows but also Linux and OS X. (James refers to the perso app he's using and how it runs on any platform). The court cases with MSFT have been settled now and the JVM is ubiquitous. Web Start gives you a web-like way to find an application and download, install and run it. It does all the caching and version management. Plus if there is a new version of the system then it will do auto upgrades.

GWT - an interesting thing developing from AJAX. You write in Java but compile to Java script. The problem with JS is that there is so many different versions of it out there. When you use the GWT you can run on a pretty seerious spectrum of browsers. It's using Java to easy JS development.

Aligning the edge. So we have all these things on the edge, from the desktop, to cable TV, BlueRay, IPTV and mobile. They have all grown up somewhat independently. They all have APIs which are not too aligned. Aligning the APIs, E.g. mobile are growing up - they are converging towards Java SE. There is coming the MSA (Mobile Services Architecture) which declares standard functionality sets which different mobile devices support. There is also always the need for tools, tools, tools. To hide complexity and make development for multiple platforms easy. Not everyone is a developer and not all developers write code.

Macinac - real time code. JSR1: Realtime specification for Java. Originally desingned for extreme real time control in real world systems with complex sensor control feedback loops and a lot of scheduling.

What happens when you run an app server on a real time VM? It's damn quick per request almost always. On non realtime every now and then there are "excursions" while the system does a GC or a recompile. You just don't see it on realtime. SO why not all use the real time VM? There is a trade off betwen determinism and numbers. To get the max no of requests processed / per sec? Use the normal system. It exploits the common occurances and can gain much that way. You can't do that on real time.

Moore's Law. Moore's law was about # transistors, not clock rate. They aren't really getting that much faster not. Now it's a shift from clock rate to #'s of cores. Years ago, poor performance was OK because "whe things speed up on teh hardware we'll be cool". Now you must think about it. Java has a lot of support for multi threading. If you're lucky enough to do EE dev. you're protected. Otherwise...

The myth of Java performance... Dynamic compilation beats static (e.g. processor specialisation). Hotspot knows what silicon it is sitting on and will optimise accordingly. AMD can get stuff in and out of memory much much faster and better than Intel can even after Intel's recent speed bump. One cache miss means your app can slow down a lot.

Open Source. "Yes we really are going full open source". There are three reactions "hooray", "huh" and "no don;t you do that". There will be no compromise on quality. Just becasue there is a GPL licence on it does not mean anyone cancheck it put, change and commit. To become a committer the hurdles will be pretty strenuous. Most people who submit patches have broken 5 other things. There needs to be some policy for submitting so that they won't be looked at unless they pass the whole test suite.

[They hope to have moved to a new VCS by May.]

Which version of the GPL? GPL2 (+ the classpath exception) now but Sun are working with the GPL 3 folks.

So what comes next? Java is driven by the community. There is no way I (James) could have come up with all the wored and wonderful things that have been created by the community. Sign up to the community. Comment, create, debate participate. Do as much as you can to create something "really quite special". Enjoy your time. Thankyou.

Then rubber Duke's get thrown... Apparently we're (i.e. the British) harder to crack a smile on than even the Japanese.

Disclosure: I used to work for Sun between 1998 and 2005.
Email ThisBlogThis!Share to XShare to Facebook
Posted in james gosling sun java open source tech days second life SL | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • (no title)
    The Significance and Importance of Quotes in JSTL EL I just spent a few hours debuggung a null pointer in a Portlet JSP I'm writing. It...
  • (no title)
    Agile Development Ramblings: Part I Introduction I've just completed my first Agile development project. We developed a fully functiona...
  • EJB 3.0 Outside the Container, Inside the JVM - Part 2: Configuring JPA Declaratively
    Welcome to part two of this blog entry introducing using EJB3.0 inside the JVM. Click here to view the first part. As we've seen, JPA ...
  • Reuse (ii): Definition of Done
    As I said in my previous post , our project has suddenly taken a new path. There are two bits of collateral which I'd recently produced...
  • Notes from the FindBugs BOF9231 at JavaOne 2007
    NOTE: These are my incomplete notes from the FindBugs BOF at JavaOne 2007. I got in late due to the crush outside so missed the start of th...
  • Writing Unit Tests to Ensure Your "@Transactional ... rollbackFor" Annotations are Honoured
    Thanks to Russ Hart for providing the info on how to get this to work.  I just cut and paste, and then blogged it. It's nice to write un...
  • (no title)
    Can Your Own Demo I found something great on t'internet the other day. I had been asked to do a demo of our new ystem to some users but...
  • JavaOne Bred Over-Enthusiasm...
    I want to build and fiddle with Wonderland , and my own JDK ! The problem is my graphics card sucks (I need acceleration) and I'm runnin...
  • Booting Apache Derby ("JavaDB") with your Java App's Startup
    If you're embedding the Derby RDBMS with your java desktop application and want it to start when you start your app, you need to make th...
  • STS and RTC – Getting them to Play Nice
    We’re developing our new app using Spring 3.0 RC1 and we want the best tools available. We’ve picked the following: SpringSource Tools ...

Categories

  • 0
  • 2008
  • ant maven pimp build javaone 2008
  • apple ipod touch
  • asm
  • blog new ruby
  • blogtag list
  • bond casinoroyale mashup mi6 film movie
  • build
  • bytecode
  • CI
  • cobertura
  • communityone 2008 nutter jvm scala jruby groovy davinci
  • communityone 2008 opensocial socialsite
  • communityone javaone keynote oreilly
  • configuration
  • cowley
  • css div layout column ie firefox safari example
  • custom
  • darkstar mpk20 wonderland java3d commaboration SL
  • dashboard rss communication news development
  • db2 database SQL max min howto tip
  • db2 database ibm lessons tips
  • db2 database load batch howto example
  • db2 import upload data howto command
  • debt technical java annotation
  • debugging tips javaone 2008
  • development web2.0
  • findbugs JavaOne 2008 pugh
  • findbugs JavaOne BOF notes
  • gafter closures java javaone notes
  • google trouble patriarchal patriarchy
  • groovy metaprogramming javaone 2008
  • grubby oss data generation project announce
  • guice javaone 2008
  • gwt maven howto example simple
  • howto
  • hudson
  • hudson CI javaone 2008
  • ibm
  • invokeDynamic jvm dynamic ruby javaone
  • itinerant web2.0 portable desktop
  • jacl was websphere wsadmin trace logging
  • james gosling sun java open source tech days second life SL
  • jar java manifest properties config howto tip
  • java
  • java applet javaone 2008 reloaded jnlp
  • java javafxscript javaone 2008 fxscript
  • java javaone 2007 07
  • java javaone 2008 bytecode cobertura asm singleton testability
  • javaone
  • javaone keynote gage schwarz javafx
  • javaone semantic web bof notes web3
  • jazz
  • jruby rails javaone charlesnutter thomasenebo
  • jruby ruby netbeans development
  • kill dead laptop computer rebuild restore
  • lessonslearned
  • mac osx java gui shellscript classpath problem solution
  • maven plugin unittest test packager
  • mylin mylar javaone eclipse 2008
  • netbeans development ide
  • netbeans development ide RC
  • netbeans maven2 profiling
  • netbeans ruby sun tech days visual web pack roman strobl
  • ola bini java javaone 2008 thoughtworks ruby jruby
  • openjdk java javaone javafx wonderland
  • overheard
  • pojo ejb3.0 jpa orm java example howto
  • rant
  • rest restful jsr311 java web2.0 javaone ts-6411
  • rome rss feed blog rss atom propono java javaone
  • rsa uml profile plugin howto
  • ruby inheritance example
  • ruby jruby rss xml hpricot
  • ruby unless example
  • scm
  • setup
  • subversion svn xp windows cleanup
  • sun java soa web2.0 netbeans opensource javacaps
  • sun tech days java derby database rdbms london
  • sun tech days london impressions
  • terracotta java javaone 2008 android gwt
  • tip
  • tips
  • vwp netbeans JPA howto
  • was jython scripting nfr ibm pmi jvm
  • was tpv jython scripting nfr ibm pmi
  • webrick ruby jruby actadiurna investigation code howto
  • workitem

Blog Archive

  • ►  2012 (1)
    • ►  October (1)
  • ►  2010 (8)
    • ►  November (1)
    • ►  October (3)
    • ►  June (1)
    • ►  May (1)
    • ►  February (1)
    • ►  January (1)
  • ►  2009 (9)
    • ►  December (1)
    • ►  November (5)
    • ►  March (2)
    • ►  February (1)
  • ►  2008 (22)
    • ►  December (1)
    • ►  November (3)
    • ►  May (15)
    • ►  March (1)
    • ►  January (2)
  • ▼  2007 (53)
    • ►  December (1)
    • ►  November (3)
    • ►  September (3)
    • ►  August (2)
    • ►  July (3)
    • ►  June (1)
    • ►  May (12)
    • ►  April (5)
    • ▼  March (13)
      • Project Acta Diurna - Harnessing RSS Goodness for ...
      • Sun Tech Days (London), Day 2, Report 4 - Extreme ...
      • Sun Tech Days (London): Day 2, Report 3 - Impressions
      • Sun Tech Days (London): Day 2, Report 2 - Derby DB
      • Sun Tech Days (London): Day 2, Report 1 - Gosling ...
      • Sun Tech Days (London): Day 1, Report 1 - First Im...
      • Running JRuby built from the trunk with Netbeans 6.0
      • Placing your config.properties outside your applic...
      • DB2: Show the schema version
      • Ruby with Foxes...
      • Truncating tables in DB2
      • DB2: Finding the maximum / minimum / average valu...
      • Showing a Table's Foreign Keys with DB2 Control Ce...
    • ►  February (7)
    • ►  January (3)
  • ►  2006 (35)
    • ►  December (8)
    • ►  October (1)
    • ►  August (1)
    • ►  July (5)
    • ►  June (8)
    • ►  May (3)
    • ►  April (7)
    • ►  March (2)
Powered by Blogger.

About Me

Unknown
View my complete profile