Ibm’s enterprise java for the future – the server side jack symposium

Enterprise java for the next decade – IBM’s take on one possibility for the future
Facts/industry trends

  • hitting the limit of Moore’s law, can add more CPUs , but not make existing ones significantly faster [surprised they didn’t bring up threading here]
  • Memory still rapidly increasing, disk capacity is growing, but not as fast
  • Hardware is getting smaller, cell phones/smart phones are now real computers, they aren’t special purpose operating systems anymore
  • Projects are becoming more complex
  • Data transformations more complex, new formats
  • Amount of information and # devices dealing with data rapidly growing – ip v4 full, RFID, gps, etc

speculation

  • More software will mean more jobs. But jobs I’ll require new skills for enterprise software
  • Need to simplify the enterprise platform with focus on making easy things easy and hard things possible
  • Class loader system to complex/ambiguous for the future
  • Number of technologies for a beginning JEE developer is too overwhelming and we keep adding to it
  • Don’t need two packages with same name for metadata [how balance backward compatibility without blowing up complexity?]. Eventually will have single definition with ONE XML file that controls metadata, similarly for annotations
  • Don’t think one injection model will be enough, but still need to collapse from what we have now
  • Expect concurrency and async workflows to change so defining at higher level
  • Brought up getting rid of the stuff that has been deprecated for a long time like BMP [sun never reveled anything, will Oracle?]

At this point I stopped taking detailed notes on the APIs. The gist of it is that the IBM speaker organized the APIs into groups and called the higher level one simpler. It is if you can get rid of what is there today and replace it with a general API. Of course 10 years is a long time so it isn’t out of the question
Ok back to hardware, it’s getting interesting again

  • Think laptops sill become peripherals to our phones. [interesting concept, Mac is already on the way] Like a monitor and keyboard for the same environment other phone, but with more processing power.
  • Data analytics will be more important. More parallelization and more devices yields more crosstalk and more data to sift through
  • Cloud will take care of non functional requirements
  • Apps are going to be about code, dependencies and binding rather than a self contained unit. The shared modular environment will handle the rest

future known facts

  • JEE 8 is going to attempt a modular programming environment [how does this make it less complex?]

JQuery breakout – the server side java symposium

Jquery – do more with less. The talk is a scenario that helps a developer be more efficient.

Unlike Lasse Koskela, Bear Bibeault doesn’t speak like he writes  A great presentation though.  Bear is dynamic in a different way on a stage than when he’s in writing or even in person outside a formal presentation. Almost like the stage gets him in teaching mode with a large emphasis on keeping people engaged and entertained. And fast moving without being overwhelming.  The content almost gets snuck in without you noticing you are learning, which is awesome!

Covered good practices like unobtrusive JavaScript. Noted similarity to HTML 5 where tags are becoming more document centric.

I really like how all the AJAX code malls to one line of jQuery. And it’s not a contrived example either.  [when i train people on jQuery at work, I show how common idioms we use can be expressed in one line as well]  Noted the JQuery code doesn’t require a global variable to keep track of the request.

Things I learned that I didn’t already know

  • JQuery css 3 style selectors work even if you are using a browser that doesn’t properly support then.
  • You can bind event handlers to elements that don’t exist yet (I’ve used this but never really though about what was going on)
  • How to use Ajax functions beyond the bare minimum, for example specifying the target on the page for the response
  • There is a validation plugin where you can configure your own rules

Other important points that jquery users might not realize

  • Document ready handler executes before window.unload because it doesn’t wait for images to load.   It also lets you run multiple initialization functions in the order defined.

I also liked seeing jquery functions with a dozen lines to see how to do it well and in a readable manner. It requires more thinking in chaining than I’m used to, a good skill to get better at.

I didn’t write about the jQuery syntax parts. For that see the query website (docs.query.com) or read Bear’s book jquery in Action.

Glass fish and JEE 6 keynote at the server side java symposium

Oracle’s first slide is a TEN LINE disclaimer from their legal department.  Which must be standard because nothing was forward looking.

JEE 6

  • Split  sub platforms so less large
  • JEE web profile
  • New: managed beans, bean validation, CDI (dependency injection)
  • ejb 3.1 lite lets you use ejb in a war file
  • Ear files are now for backward compatibility
  • Encouraged use of setting up everything in annotations instead of web.xmk [I think somethings belong eternalized]
  • Putting a web-fragment.xml file inside your meta-inf directory lets jars contribute content to the web.xml
  • Can promote a managed bean to a “real ejb” to take advantage of transactions
  • Showed response builders for web services. Nice concise way if setting status, content type, result, etc.
  • Ejb 3.1 supports singleton and start up beans. Can set scheduled tasks and asynchronous tasks in annotations as well.
  • Going to great lengths to avoid mentioning Spring,  Guice was cited as the comparison/example of dependency injection. Speaking of Spring, this is the first time I’ve seen this much JEE 6 code. It looks a lot like Spring.

Glassfish

  • Web profile ships with REST
  • Glassfish is wonderful because Oracle says so. Not taking further notes on this. Do people really use Glassfish in production?