Lively FX

In case you hadn't noticed, Sun yesterday announced Java FX. Its pretty cool stuff, no doubt, but I'd like to direct your attention to a little piece of this system that comes from Sun Labs.

 Projects Lively Lively-Screenshot-SmallThere is a project in labs called the Lively Kernel which is blazing new trails in dynamic web programming. Its a really cool jaunt into self reference and meta-circularity. The entire system runs in a web page. That web page includes a complete development environment which is used to create everything you see on the web page, including the tools used to create/modify itself. In other words, when you bring up the web page, it includes tools like browsers and editors that allow you to change what is on the page... like the browsers and editors etc etc etc. Lots of fun, but mostly incredibly flexible. For the old school among you, think of this as the SmallTalk style of web programming (this may be because Dan Ingalls helped invent both SmallTalk and this). It really makes you think about web programming differently. The project description says:

The Lively Kernel supports desktop-style applications with rich graphics and direct manipulation capabilities, but without the installation or upgrade hassles that conventional desktop applications have. The system is written entirely in the JavaScript programming language, a language supported by all the web browsers, with the intent that the system can run in commercial web browsers without installation or any plug-in components. The system leverages the dynamic characteristics of the JavaScript language to make it possible to create, modify and deploy applications on the fly, using tools built into the system itself. In addition to its application execution capabilities, the Lively Kernel can also function as an integrated development environment (IDE), making the whole system self-sufficient and able to improve and extend itself dynamically.

Those of you who are paying attention will notice that I started out talking about JavaFX, but Lively Kernel is based on JavaScript. OK, so what does this have to do with JavaFX? It just happens that they have taken the entire system and integrated it with JavaFX. This means that from this flexible, "lively" environment, you can manipulate JavaFX programs. Pretty cool stuff.

200812051337200812051337-1

As far as I know, the JavaFX version is not yet available outside of labs, however, the JavaScript version is. For those of you with very recent versions of Safari, IE or Firefox, you can try a this link to check it out live.

Comments:

"you can manipulate JavaFX programs."
What does that mean? Develop them? Change them? Debug them? Interpret them?
Profile them? Call JavaScript from FX? Call FX from JavaScript?

A bit of more info would be nice...

Posted by Ludo on December 05, 2008 at 06:00 AM PST #

Sorry... shows what happens when you blog a little too fast.
At the very least they are calling JavaFX from JavaScript. This allows a developer to use all the agile parts of Lively Kernel with the cool media capabilities of JavaFX. The middle screen shot shows one of the sample Java FX applications running as JFX Script (on the left), together with the same app written entirely in JavaScript (running in the Rhino interpreter on the JavaFX scene graph). They run identically (although the Lively one only implements one of the sample effects - read quick demo) except that in Lively, of course, you can take the app apart and rearrange the various components (the slider has been moved in the screen shot).

The last screen shot show a full blown Lively application running on the FX scene graph. Fun stuff.

The truth is that I haven't caught up with Dan to find out exactly how the FX integration has gone, so I don't have too much more information than that.

Posted by Roger Meike on December 05, 2008 at 06:54 AM PST #

Post a Comment:
Comments are closed for this entry.
About

Roger Meike, Senior Director of Area 51 and Director of Operations Sun Labs

Search

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