Wednesday Sep 10, 2008

The Planetarium

Each morning I check the news wires, blogs and get the podcasts downloading to try to stay on top of what's going on in the world of Java for client devices from smartcards to desktops and everything inbetween.

What I really need is one blog that pulls it all together each day.

So I made one. Its called The Planetarium.

Friday Sep 05, 2008

Java Podcastapalooza !

Staying on top of what's going on in the Java world is a part of my job I really enjoy. I have a big list of feeds for my favorite bloggers, news sites, and forums. But I tend to skim so I can rush to the next thing. And my emails, IM buddies, everyone's I know's tweets and facebook statuses are just a click away, ready to distract me at any moment.

Sound familiar ?

So I enjoy the times when I am restricted from this skittish behavior: in the car, at the airport, walking to the coffee shop. I enjoy them because I can focus in, without interruption, on some of my favorite technology podcasts.

For those of you who are interested and are looking for something new to tune into in the area of Java and client technologies, I put together a little survey of the ones I subscribe to. And if you feel like it, let me know if you have a top podcast in a comment below.

Length & Frequency
My likes
The Java Posse
A quartet of hosts collectively dissect Java news, new products and get in group conversation with movers and shakers from the Java universe.
Java SE, Java EE product and technology developments.
Anywhere between 45 and 90 mins, most weeks.
Tor, Dick, Carl and Joe's expert and merry banter

Great supporting website

Java Mobility Podcast
Double act covering Java news and products around the mobile and embedded community, plus a featured expert guest each cast.
Java ME, mobile and embedded technologies.
15-30 mins, two to 4 times a month,
On site (e.g. from conference floor) interviews.

Focus on adoption of technology in products, not just technology alone

JavaWorld Technology Insider
One on one interviews with technology leaders and creators in the Java community and beyond. Java SE, Java EE, Web Services, tools. 30-45 mins, two or three times a month. Expert guests

Interviews that dig deep - e.g. Ted Neward on Scala

This Ain't Your Dad's Java Click and Clack style news and interviews from the product marketing team for Java with some stellar technical guests. JavaFX, Java SE, Java ME 30 to 75 mins, weekly. Ubergeeks turned product marketeers go wild and occasionally say a few things they shouldn't.

Swampcast In depth interviews with software luminaries, webmasters and CTOs of popular services. And the occasional actress. General software, programming languages but often Java of various SE and EE flavors.
Anywhere between 20 and 75 mins, frequency highly variable Quality guests who roll up their sleeves during the day
Sheer variety of topics


Spot the difference

I'll probably get struck by lightning for asking this, but, can you spot the difference in the acting style ?

Friday Aug 29, 2008

I touched a PC, and I liked it !

I was going to blog today in anticipation of the Microsoft Vista ad campaign starting next Thursday featuring Jerry Seinfeld. I was prepared to note the irony of hiring an eye wateringly expensive shill, whose show remains a icon of the 90s, for Windows, a product that is in danger of eye wateringly expensive icon of the 90s.

At least Beverly Hills 90210 is attempting a comeback.

But no.

A rumor that HP is reinventing its corporate branding led me to notice its campaign for its line of Touchscreen PCs. Not that ATMs, kiosks, cash registers, phones (and soon car dashboards ?) aren't already on top of this game. But the HP Touchscreen PC is sleek, big, black, and, well, you may never go back. More importantly, its expensive. So I think the TV ads get it about right for something innovative, targeted at affluent people, or at least those who think they are.

But check out the Learning Videos. These are the product demos for Touchscreen PCs. If any of you have worked on a product and had to show it to an uninitiated crowd, you know that ads, marketing literature and 20 bullet point slideware aside, the demo is the single most important proof point to your audience of the value of your work. Its the elevator pitch, the turning point, the denouement, the inflexion point all in one pivotal moment. I remember feeling this most strongly having to demo a proof of concept website for online banking way back in early 1996 (the zenith of the Seinfeld era!) to a London bank's great and glorious. The demo included an animated Java applet that showed a credit card gracefully flipping over as the user logged in. Ot at least that's what it did 7 times out of 10. The other times it ungracefully hung the browser. Nailbiting times.

(By the way, even the worst behaved applets will no longer be able hang the browser, as I may have mentioned before.)

Great examples, for me, of online product demos include the iPhone product demos (simple and clear, though I do think the black turtleneck's best work as garment-symbolizing-cutting-edge is behind it now). Also Microsoft's excellent demo videos for its Surface technology (except for the moment at the end of the meal where the otherwise happy group of diners is able, using Surface Technology on the very table from which they ate, to split the bill down to the last penny (and in v2, beyond ?), based on exactly what each one ordered. Rather than, in my opinion, the more civilized non-technological approach of splitting the bill equally. Microsoft products could finally, I suppose, silence the age old cries of 'But I only had the soup !').

But back to HP and the TouchScreen PC demos.

Genre-wise, here, we are close to Home Shopping Network territory. The presenters are perky and fluid. The repartee, though inevitably forced at times, is continuous and engaging. But they battle with a panoply of low production values. No industrial or minimalist backdrops here, presenters and TouchScreen PC alike battle unsuccessfully for visual spectrum with a 50s diner cum aquarium backdrop themed with a range of shades of the new (?) corporate blue and an inexplicable red, both jacked up to persiprational levels of hue. Two cameras ought to be enough to allow the viewer to engage honestly with both the product and the presenter. This would require eye contact with the presenters and a clear shot of the product for a large proportion of the time. But sadly we get neither. Instead we cut away too quickly from the product only to find ourselves watching the speaker talking to the other camera. This kind of style can work in addition to traditional full frontal face shots in order to create a more rounded, dimensional view of the speaker. But here the salespeople are never allowed quite to meet your eye. I add to my litany of complaints patchy sound quality and the total is an exposition that, rather than let it shine, just gets in the way of the product. The worst crime in the book, as all of us who have ever had to do a demo know.

Demo presentations in need of much more than a touch up.

Wednesday Aug 27, 2008

Firing up the engines for multiple languages

Have you seen the latest update from John on our efforts to make the JVM run multiple languages ? (I'm in a staff meeting writing this, but don't tell anyone :) ).

From one to many languages

For those of you who would like a little context around International Invokedynamic Day, for the last few years we've been on a path towards first class support for other languages on the JVM. No small feat this, since the Java Platform was originally designed with one language in mind. Now, we still believe that Java is the best language for robust, long lived code. But we know that developers like to mix in other languages that for special reasons: for particular applications, for particular styles of development. Just as important, we've spent 13 years creating an incredibly scalable and high performing runtime across a variety of operating systems. So for developers who create applications with other languages (and we hope there will be many who like JavaFX Script), we figure they would like to run those apps on the best runtime around.

So, as a matter of fact, do the creators of the engines for other languages like Ruby, Python, Groovy, Scala - they started creating the engines to run on the Java Platform.

Lining up the engines

So for Java SE 6, we provided a framework by which those interpreters could plug easily into the Java Platform. And the developer APIs by which the code from those other languages can be asked to execute. We even bundled a JavaScript engine into our own JDK. At the same time, more and more developers created the engines to run other languages on the Java platform.

Firing up the engines

Now, many of the languages that are attracting the buzz that have been invented since the Java language have a feature in common with each other, but not with Java: they are dynamically rather than statically typed. So the types of the variables, method parameters, return variables and so on are not known at development time, unlike in Java where you are required to declare them. All very nice for rapid prototyping and a more informal style of programming, but a big problem for compiling it down to the Java bytecode because the Java bytecode needs that type information filled out. So engines for dynamic languages have to create artificial interfaces or classes just to do the form filling. Making them brittle, difficult to maintain and slower than they could be. But not if we modify the bytecode to remove the need to fill out all the type information.

So back to the update: John has prototyped support for the modified bytecode in the HotSpot JVM !

What this means is that implementors of dynamic language engines are now free to try this out and prove the theory. I'm predicting that Charlie will be one of the first with his JRuby project, but the race is on.

Some of the newer languages have other features in common, like closures for example. There may well be other features we will build into the Java runtime to support such features better like tail call recursions, continuations and lightweight method handles. But we'll see how it goes with new bytecode and get some real data and decide how much further we need to go.

If, say, Ruby, Python and Scala run faster on the JVM than anywhere else, we may just be done. For now :)




« June 2016