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.

Podcast
Format
Topics
Length & Frequency
My likes
Subscribe
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



.

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 :)


Tuesday Aug 19, 2008

Some of my favorite things about the JavaFX SDK Preview



I'm sure you all saw that our JavaFX team released a preview of the SDK at the end of July. I've been happily tinkering with it for the last few days. If you are hacking with AJAX, moonlighting with Silverlight, or fumbling with Flex, I think you should get up close and personal with it too, and see what its all about.

We've been talking about JavaFX in various ways for some time now, so you probably already know that its for building rich client applications, that it itself is built using Java, and that it will span multiple devices - from small mobile phones through TV settop boxes to the PC desktop and browser. Most importantly, if you are a traditional Java programmer (I include myself), you will notice there's a paradigm shift. A shift moving from the Java programming environment, whose generality spans quite an astonishing range of applications, to a programming environment specially designed for those amongst us with more developed visual design skills than technical ones (sadly, I cannot include myself). Those who are focused on one kind of application: interactive and fabulous looking.

Looking ahead a little, the plan here is to release the final version of the SDK for the desktop at the end of this year and a preview of the mobile version next March or so. I say or so, not just because schedules are schedules, but because we are ready to adjust based on the feedback we get from this preview release.

Anyhow, some of my favorite things about this preview release are:-

The Language: JavaFX Script

Described in full in the language guide included in the SDK, this new language is highly declarative (i.e. it says what its going to do, rather than saying how to do it), with features like data binding to let you to bind one variable to another variable. Like,

let oneVariable = bind anotherVariable;

(I did say it was declarative). Or like the triggers feature, so that when the value of one variable is replaced, you can have something else happen at the same time.

attribute oneVariable
    on replace doSomethingElse();

To a Java programmer its going to be an easy new language to pick up because it shares much of its syntax with the Java language. To a designer, its going to be an easy new language to pick up because its clean, straightforward and does on the screen what it says in the code. And it has no baggage to carry.

The APIs

Neatly divided into two profiles (which you can see here) - the common profile for all the APIs that will be available on every device, and the desktop profile for all the APIs that make sense only for applications on a desktop. There's a mobile profile to come of course in the mobile release next year, which will have the common profile plus APIs that make sense on mobile devices.

As part of the common profile, you have the scene graph and the media JavaFX APIs. The GUI of an application is modeled as a graph of visual nodes, (each node being a shape, line, piece of text, GUI widget or embedded media), that moves, twists, rearranges as the user interacts with it. The scene graph API in JavaFX is especially well suited to the transition effects and animations that make all the difference between a user experience and a captivating user experience. The media supported in the scene graph includes a player control and support for OS native formats. You'll remember we inked a deal with On2 to provide cross device media support in May. Well that will have to wait a little longer before we can put that in. But we're all crossing our scene graph nodes that it will be soon.

The desktop profile includes the common profile, plus some desktop specific extras like...many of the tried and tested Swing widgets we know and love: buttons, combo boxes, lists and so on. So no shortage of the basics you need there.

And of course, being built in Java and on Java, you can always reach down into the underlying Java APIs for your favorite Java API if you would like to use that in your application too.

NetBeans integration and Project Nile Plugins

Naturally, the SDK is available pre-integrated with NetBeans 6.1 which is how I've been looking at it, as have others. The language and APIs are supported in the IDE with all the things you would expect like syntax coloring and checking, debugging and so on. Together a tutorial and a range of samples. The samples are generally short and to the point. Want to see how to draw polygons ? There's a sample just for that. Want to see how to use keyframe animation to bring life to randomly moving particles ? There's a sample just for that. Transparency, color gradients, bounce a ball ? Check, check, check.

Also included in the SDK is a collection of plugins (codenamed Project Nile) to Adobe Photoshop and Illustrator so you can keep working on the art there, and use Project Nile to export it into your JavaFX application and bring some life to it.


My other favorite thing is that this is all running on Java SE. So applications created in JavaFX aren't just running on any old VM, its running on a supremely stable, scalable and high performing runtime. But I don't have time to tell you about all that just now.


There's more to the SDK than just my favorite things. If you've been curious about JavaFX, now is a good time to take a look for yourself.


Tuesday Jul 08, 2008

Ask us about the 'Consumer JRE'....all week !


Ken, Richard and I are doing a special event this week over at the SDN, and its your chance to ask us anything you feel like about the upcoming Java SE 6 Update 10 release, aka the 'Consumer JRE'.

Each day we answer as many of the questions people send in, and they all get published online. Its like a slow motion chat !

Have you tried out the beta yet ? (nearly a million people already have)

About

dannycoward

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today