Latest Publications

New screenshots of the JavaFX Design Tool

jfx_design_tool_preview2

The screenshot above is from Anthony Rogers’ blog (UI designer for the tool), and the next one is from Chris Oliver’s blog, who successfully managed to hide away from most of the geek crowds at JavaOne.

jfx_design_tool_preview1

The design of the tool is looking really nice and clean, the timeline reminds me a bit of the Adobe Premiere CS4 one. But unlike Premiere or Flash CS4, one interesting design choice is the lack of row headers to identify the different elements or categories for the rows in the timeline. This makes it look a bit cleaner and less cluttered, but it would be interesting to see if this doesn’t make it more difficult to track just what it is you are supposed to be controlling in that part of the timeline. Hard to tell without trying the tool of course (hint, hint, Sun … available for alpha/beta testing!).

I haven’t seen a single bit of code in any of the screenshots/demos so far. I wouldn’t be surprised that there was some script text area somewhere, or maybe the expectation is that for code you go to a tool like Netbeans?

Tor Norbye also provides some additional information about the tool, it will be available as a webstart application that will let you save data in the “cloud” (like Google Docs) or locally, as well as run the tool online/offline.

Chris calls it the JavaFX Design tool, others the JavaFX Authoring tool, for sure neither of these is the final name for the product but I’m still a bit surprised it doesn’t seem to have any sort of funky codename at this point.

You can watch some short videos of the tool in action here.

Classpath hell just froze over

Classpath Hell

The classpath is dead … that’s what Mark Reinhold (Principal Engineer @ Sun) said at a general session during JavaOne 2009. It’s the type of statement that should resonate with any of us who have been victims of classpath/jar hell. Mark announced this in the context of reviewing the new language features due to be released in JDK 7 (ETA 2010) or more specifically the new Java module system codenamed Jigsaw.

Module Systems and Jigsaw

Jigsaw is a low level implementation of a module system, which also includes some language and VM changes that are specified in JSR 294 (note that Jigsaw is being done outside of any JSR and is not a reference implementation of 294). Another implementation of a module system most Java developers are likely more familiar with is OSGi. But what is a module system and why do we need one?

Depencies on multiple versions (of module B in this example)

Depencies on multiple versions (of module B in this example)

A module system enables modular programming, it allows developers to separate code into clearly defined modules that can specify what other modules they depend on and their versions, can be internally modified without breaking other modules that depend on it and can hide its own internals from external modules.

A module system can solve the classpath/jar hell problem by leveraging the previously mentioned features in order to allow an application to use the right versions of the set of libraries it requires. In the diagram shown here, we have an APP module that depends on the A, B and C modules. But module C also depends on B, however this dependency is to a different version of B than the one APP needs. A useful module system would then allow us to have 2 versions of the B module, with the compatible version and implementation visible to the appropriate modules (in this case APP and C).

Also, by clearly expressing module dependencies, we no longer have to look at random lib folders or hidden documentation when using a 3rd party library, just so we can guess what the corresponding jar files are needed to run it. With the system implemented by Jigsaw, we can simply introspect the module and let it tell us what those dependencies are. It takes the guesswork and the dark magic completely out of the equation.

But back to Mark’s presentation at the general session. The main reasons to introduce Jigsaw into JDK 7 are the following:

  • Eliminate classpath complexity (classpath/jar hell problem already discussed).
  • Increase performance. The VM download size can be made smaller, and startup time should improve because for small programs (say HelloWorld) unnecessary classes don’t have to be loaded at all. Mark showed how he could run HelloWorld by only using 2 modules listed by the new jmod command; jdk.base@7-ea and jdk.boot@7-ea.
  • Enable native integration for installing modules.

(more…)

JavaFX Authoring tool demo at JavaOne 2009 (with video) - updated

javafx_authoring_tool

During this morning’s JavaOne general session, the “James Gosling’s Toy Show”, Tor Norbye gave another preview of the “JavaFX Authoring Tool” (TODO: Needs a cool codename!!!).

In 2007 when I blogged about the original JavaFX announcement at that year’s JavaOne, one of my first questions was about the tooling. At first we basically just had JFXPad to play around, then came more integration with Netbeans. However, these are not designer tools, and a RIA application needs more access points of people who are not software developers. This was partially answered with the JavaFX plugins for tools like Adobe Photoshop and Illustrator, but what was really missing was a visual place to bring content together interactively and created animated content.

(more…)

Is this the last JavaOne ever?

jonathan_javaone

I’ve heard this question asked quite a few times around the hallways of the Moscone Center this week.

There are no guarantees or definite answers, even Ellison didn’t really provide many details when asked (he probably can’t) but I think the answer is a definite no.

It is well known that Java is a big part of why Oracle is buying Sun. Ellison’s address to the attendees last Tuesday served to reassure the Java community that Oracle is not here to tear Java apart piece by piece. Quite the contrary, he seems willing to continue to invest in the platform.

But let’s remember that buying Java means more than making Sun employees your employees, or buying widgets. What Oracle is also getting in the deal is the Java community … no small incentive for a technology company. Removing JavaOne from the landscape wouldn’t make sense for Oracle since that could threaten goodwill and slowly erode the community and enthusiasm for the Java platform.

From the many college students attending this year, learning about Java for the first time (I’ve met 2 that say their Universities only teach C/C++) to the sometimes heated discussions about technologies and new language features (like the Modularity Q&A, oh boy, stay tuned for my blog post on that one!). A lot of these interactions are hard to do effectively without an event like this, where people can freely and dynamically regroup and discuss their ideas about the Java platform.

So no, I don’t think Oracle will “deprecate” JavaOne. Expect it to change of course, but don’t expect it to disappear and be merged with OpenWorld anytime soon.

BTW, this is likely the last JavaOne conference Scott McNealy will ever attend and he acknowledged that during his keynote. In a very emotional moment, McNealy said his last goodbye to the community at the conference … and from what I could tell even choked up a bit.

When he was done presenting, he was greeted with a standing ovation from the audience. Afterward, he hung around and took pictures with many of the participants.

I thought this was a nice moment, and I think the gesture from the audience was very kind. Whatever you say about McNealy, nobody can deny his passion and the trust he always put on his team, especially to his engineers.

with_scott_mcnealy

From left to right; Dan Salt, Scott McNealy, some guys with his eyse closed and me

So where is Oracle?

oracle1

Visiting the JavaOne pavillion yesterday at CommunityOne, one thing that stood out was the absence of Oracle. This year there is no Oracle booth, which is very unusual, and a lot of people are wondering what is going on with the Sun/Oracle merger which nobody from Sun is really talking about.

My guess is that due to SEC regulations they’re not allowed to talk about it. But I’m not an expert in that area so I’m wondering if anybody knows what the rules are. However, Larry Ellison just walked in front of us a few minutes ago so we might yet see an official announcement about Sun/Oracle this morning. My guess is we wouldn’t hear about it, but then why would Ellison be here if he’s not going to speak at the podium?

larry_ellison_at_javaone_201

(Sorry for the crappy picture, but there was no light, no flash and he zoomed by … most people in the audience don’t know he’s here … yet)

Update: As soon as I hit “publish” McNeilly stars talking about Sun/Oracle. Joking about rumors of course.

Update 2: “Don’t expect a lot of changes, just increased investment”, Ellison tries to reasure developers at this morning’s keynote. Ellison mentioned how Oracle pretty much uses Java everywhere for their products and he mentioned JavaFX a lot, plus interest in OpenOffice and mobile. For those wondering if Oracle was interested in the client side, I think Ellison has pretty much answered that very clearly.

Live blogging from CommunityOne

communityone

JavaOne officially starts tomorrow but today Sun has kicked off CommunityOne. Which is a more open source focused and free conference that precedes the bigger event.

The main theme this year is cloud computing. The presentation today has been about showing several vendor solutions in the areas of virtualization and large scale application deployment that is very easy to use (and graphical). To be completely honest, I think “cloud computing” is a big buzzword approaching marketroid levels, but there is some interesting technology here. I’ll be attending a few cloud computing sessions to see if I become one of the converted.

communityone_cloud

Currently, we’re listening to some of the folks from OpenSolaris and JavaFX in a setup that seems like a nerd version of David Letterman from an alternate reality.

BTW we got a small announcement that JavaFX is now officially released for OpenSolaris. Although I’m not sure there’s a large community of OpenSolaris users looking forward to that :-)

WolframAlpha is dumb

wolfram_alpha_is_dumb

Maybe I’m being a bit unfair, but the way the press is hyping it as a potential “Google/Wikipedia Killer” really doesn’t do it any favors. The site itself doesn’t say it’s a search engine, it describes itself as a “computational knowledge engine”. You’re supposed to enter a question or calculation and it will give you a result in the areas of mathematics, engineering, physics, places & geography, etc.

So first test is, can WolframAlpha tell us what a “computational knowledge engine” is?

Question: What is a computational knowledge engine?

WolframAlpha: Wolfram|Alpha isn’t sure what to do with  your input.
Google: Top link is a blog entry titled “So what exactly IS a computational knowledge engine?

Hum … not a good start. Also, Google’s second link is a link to WolframAlpha itself. Well, it says Wolfram Alpha is also good for business queries. Let’s find out information about a company.

Question: Who is the CEO of Apple?

WolframAlpha: Wolfram “assumes” I’m talking about CNOOC Limited, whose stock symbol is CEO. So the result is some financial information about CNOOC and Apple. Not what I was looking for.
Google: First link is Apple’s bio page on Steve Jobs.

Google wins again. Let’s look at historical figures. (more…)

Oracle buys Sun (not THE Sun)!

"Do It" - Rorschach from Watchmen

At one point it was Apple, then IBM was supposed to be it more than a couple of times, well the buyer of Sun ends up being Oracle and I think this is a good thing.

First of all (and related to that panel from Watchmen), I was getting a little anxious about all this merger talk and wished it was done with. It’s difficult for a company to be under merger talks for too long, and as a user of a lot of Sun technologies it makes you nervous. So I’m glad this seems to be over with.

Anyways, I think ithis is better than the IBM-Sun (BlueSun) merger because it just didn’t make much sense for IBM to buy Sun. They overlap too much on hardware and software, and I was afraid IBM was just going to buy it to finally kill off a hardware competitor and just take ownership of Java. With Oracle, you still have IBM as a strong Java player and Sun actually brings a lot of new things to Oracle.

Yes, there are overlaps, but there’s a bigger chance for projects like Netbeans to survive under this environment than in a company with IBM which would rather keep putting money on Eclipse.

What I wonder about is these products:

JavaFX - Does Oracle really have the stomach to compete in the client space? I’m hoping they have the guts to keep at it and not settle only on the server side. Client side Java is still important, and makes sense when you want to have very well integrated tools that go from end to end. As for mobile, who knows, maybe Oracle wants to expand.

Glassfish - Can Glassfish survive in a company that uses WebLogic. I think so, at least initially or for the short term. Glassfish can still be used as the “JEE” reference implementation, so there is a chance Glassfish can still continue being a supported project.

MySQL - I’m not really sure Oracle wil want to keep spending money on this for obvious reasons. But who knows. Anyways, MySQL is open source so it can’t really be killed in a sense.

So I’m glad the speculation is over, good luck to all the Sun employees during this transition. This year should prove to be a very interesting and surreal JavaOne!

Bjork teaches us how a TV works

Hey kids, don’t forget, when you open up a CRT display you can electrocute yourself if you don’t know what you are doing. So please don’t do what Bjork just did in the video above, specially if all you are doing is showing us how the electronics inside are like a “little model city … with houses and streets … and this elevator …”.

Do pay attention to her warning, “don’t let poets lie to you”. They don’t know anything about electronics!

JavaFX is here …

I thought it was going to be a bit later, but JavaFX is ready for download. The site has also been redesigned, and to the relief of many (I’m sure) it actually uses the technology it’s advertising (at least for the video).

I’m downloading the Netbeans bundle as I write this, so we’ll see what this package brings but from the JavaFX blog here are a list of features available in this release;

Here are just a few of the features in JavaFX 1.0:

  • KeyFrame animation
  • XML & JSON web services
  • Fast and easy to use 2D graphics
  • PerspectiveTransform for 3D effects
  • Pixel-filters and visual effects with GPU hardware acceleration
  • Video and Audio support using both native and cross-platform codecs
  • Swing Integration
  • CSS styling (more on that later)
  • Windows XP+ and Mac 10.4+ support with Linux & Solaris in the works (more on that later too)
  • The new JavaFX Script language with binding and animation built in, running 10->20x faster than Javascript
  • Visually rich applets that you can drag to your desktop and save for later
  • Integration with Photoshop and Illustrator
  • Access to the world’s huge library of Java code and APIs
  • A new website with docs, tutorials, and tons of BSD licensed sample code
  • A sneak-peek beta of JavaFX on mobile devices

Also, I’m interested to hear if anybody else is having some problems with the JFX enabled video. I’m seeing some weird errors in my Java console, and I don’t think it’s starting fast enough for me as intended. I see this error (but the video still plays at the end).

network: Wrote URL http://dl.javafx.com/emptyJarFile-1228403636122__V1.0.0.jar to File D:\somepath\javaws\temp\6.0\47\a6b8bef-751ceabc-temp
java.util.zip.ZipException: ZIP file must have at least one entry
at java.util.zip.ZipOutputStream.finish(Unknown Source)

Well the file is called “empty jar file”, I wonder what it’s trying to do.

BTW congrats to the JFX team, the release surely took a lot of hard work and sleepless nights.