Open Source JavaFX Now!

Steve On Java

Hacking Java, JavaFX, and Flash with Agility
  • rss
  • Home
  • About
  • Contact
    • E-mail Steve
    • SC2 Challenge
  • SvJugFX
  • JavaFX Petition
  • JFXtras
    • JFXtras Individual CLA
    • JFXtras Corporate CLA
  • Freedom From XML

Announcing Visage – The DSL for Writing UIs

steveonjava | September 27, 2010

I am pleased to announce the Visage Language, a domain specific language (DSL) for writing user interfaces.

http://visage-lang.org/

User interface developers have long been neglected and forced to deal with languages and tooling that are a poor fit for their craft.  At times they are asked to write user interfaces in languages originally meant for server-side applications such as C and Java.  In other instances they are required to use a markup language originally meant for representing documents or structured data such as HTML and XML.  These are fine technologies for the applications in which they were originally intended, but a weak substitute for declaring and representing user interfaces.

The goal of Visage is to provide a common language for user interface developers that provides the following benefits:

  1. Model the UI – The code should look like the user interface with a similar structure to how the resulting application will appear.
  2. Data Binding – All user interfaces have a backend model, so it should be easy and painless to hook this up to the UI with bidirectional integration.
  3. Resilient Behavior – The last thing you want to see during a customer demo of your new application is a NullPointerException.  Language constructs should have deterministic, but fault tolerant behavior in all cases.
  4. Rapid Development – Application development should allow rapid, iterative cycles with early feedback starting right at the compilation phase.

The way in which Visage satisfies these requirements is summarized in the following table:

Model the UI Data Binding Resilient Behavior Rapid Development
Object Literals X X
Closures X X X
Data Binding X X X
Bijective Binding X X X
Null-Safe Semantics X X
Strong Type Checking X
Compiled Language X

So what does a Visage application look like?  Here is Hello World in the Visage language:

Stage {
  title: "Hello World"
  Scene {
    Text {
      "Hello World"
    }
  }
}

This code should look familiar to readers of my blog.  It is based on the JavaFX Script language with a few (proposed) syntactic additions.

For those of you who don’t know the history of JavaFX Script, it was originally designed by Christopher Oliver and called F3 for Form Follows Function.  With the acquisition of SeeBeyond by Sun, this technology became the cornerstone of JavaFX and was open sourced in 2007 at JavaOne.  Oracle purchased Sun and just this past week at JavaOne 2010 announced that they are going to continue with the JavaFX Platform, but replace the JavaFX Script language with Java APIs.  We are adopting the JavaFX Compiler for use in the Visage project, and plan to continue evolving it.

Here are some of the goals of the Visage project:

  • Provide a JavaFX Java API Binding – One of the most innovative parts of the JavaFX platform was the language, and it is what all JavaFX applications are written in today.  Our number 1 project goal is to make sure that developers can continue to write declarative code and easily port over their existing applications.
  • Enhance the Visage Language – The language syntax remains largely unchanged since the 1.0 release of JavaFX.  We plan on making numerous improvements that will be beneficial to UI programmers and make common patterns easier to code.
  • Support for Other Platforms – For the Visage language to thrive, it has to be a general purpose UI programming language.  Some other platforms that are in great need of a UI DSL include HTML5, Flex, and Android.
  • Language Standardization – We would like to see the Visage language be made an official standard with possibly multiple implementations.

If you are interested in following the project or helping out, please join the Google Groups:

http://groups.google.com/group/visage-users

http://groups.google.com/group/visage-dev


 
Comments
17 Comments »
Categories
Announcements, JavaFX, Visage
Tags
dsl, JavaFX, language, Visage
Comments rss Comments rss
Trackback Trackback

JavaOne Enterprise JavaFX and JFXtras Presentations

steveonjava | September 26, 2010

Speaking at JavaOne was challenging, but fun this year. With the surprise announcements about JavaFX 2.0 there wasn’t a lot of time to respond, but I managed to refocus all my talks in a very short amount of time.

Pro JavaFX Platform – Building Enterprise Applications with JavaFX

My second talk on Tuesday with Jim Weaver was packed to the brim with folks eager to ask questions about the new direction.  We managed to both hit our original presentation topic about enterprise JavaFX development as well as distill the new JavaFX 2.0 market pitch down to something that makes sense to developers.  As an added bonus we threw in some examples of what the new JavaFX APIs could look like from Scala code.

Download Pro JavaFX Platform Presentation as a PDF

JFXtras – JavaFX Controls, Layout, Services, and More

The JFXtras BOF was standing room only with a lot of very prestigious folks from the desktop community filling the chairs.  We covered the latest JFXtras 0.7 features and updated everyone on the plan for the future of JFXtras in light of the JavaFX 2.0 announcement.  At the end of the presentation we announced a new language project called Visage to fill the gap left by JavaFX Script (more on this in a future post).

Download JFXtras Presentation as a PDF

Even if you couldn’t attend, hopefully you can get a flavor for how the talks went by skimming the above presentations.

See you at JavaOne next year!

 
Comments
6 Comments »
Categories
JavaFX, JFXtras, Presentation, Pro JavaFX, Visage
Tags
JavaFX, javafx 2.0, javaone, JFXtras, Visage
Comments rss Comments rss
Trackback Trackback

JavaFX 2.0 (a.k.a. What Just Happened to JavaFX Script?)

steveonjava | September 21, 2010

There were some huge announcements at JavaOne today for the JavaFX platform.  Overall I think the announcements show some very positive momentum for the future of JavaFX and rich client Java, but there were some casualties…

In this blog I will cover the salient bits, but if you would like an opportunity to hear it directly from the JavaFX leadership team in a free event, we will be hosting a JavaFX 2.0 event with Richard Bair and Jai Suri at our next SvJugFX meeting.  As usual, the event will be streamed live, and questions can be asked remotely via Google Moderator.

.

The Good Parts:

Java and Alternative JVM Languages

JavaFX has a new API face.  All the JavaFX 2.0 APIs will be exposed via Java classes that will make it much easier to integrate Java server and client code.  This also opens up some huge possibilities for JVM language integration with JavaFX that Jonathan Giles and I explored in our JavaOne talk today.  We did a whirlwind tour through four different JVM languages (Ruby, Clojure, Groovy, and Scala) showing what JavaFX 2.0 code may look like when ported to these different languages.

Here is the full presentation deck:

JavaFX Your Way: Building JavaFX Applications with Alternative Languages

Which can also be downloaded as a PDF.

Open Source Controls

Read the rest of this entry »

 
Comments
18 Comments »
Categories
Announcements, JavaFX, JavaFX Mobile, Presentation, SvJugFx
Tags
clojure, groovy, java, JavaFX, javafx 2.0, javaone, ruby, scala
Comments rss Comments rss
Trackback Trackback

JavaOne Expert RIA Track

steveonjava | September 13, 2010

This is going to be a big year for JavaFX and RIA technologies at JavaOne.  What does your JavaOne schedule look like this year?  Are you going to settle for beginner content, or are you ready for the Expert RIA Track.

Here are some suggestions on sessions you won’t want to miss (I even found a way to make the links work thanks to my co-presenter Jonathan Giles): Read the rest of this entry »

 
Comments
4 Comments »
Categories
Events, JavaFX, JFXtras, Presentation
Tags
JavaFX, javaone, ria
Comments rss Comments rss
Trackback Trackback

JavaFX Your Way: Building JavaFX Applications with Alternative Languages

steveonjava | September 7, 2010

If you preregistered for any JavaFX sessions at JavaOne, you probably noticed a bit of churn in the past few weeks.  I actually requested that they drop my talk entitled “Take Control of JavaFX”, because Jonathan and I didn’t think we could do justice to the topic.

However, we came up with an alternative talk, which we believe will be even better and more topical.  Here are the talk details:

JavaFX Your Way: Building JavaFX Applications with Alternative Languages
Abstract: JavaFX is more than a language. It is also a platform for building immersive applications with graphics, animation, and rich media. In this session, you will see how you can leverage JavaFX from a host of different JVM languages, including Java, JRuby, Groovy, Scala, and Clojure.

The talk is on Monday at 4PM in Hilton San Francisco, Golden Gate 8.  Hope to see you there!

 
Comments
3 Comments »
Categories
Announcements, Events, JavaFX, Presentation
Tags
clojure, groovy, JavaFX, javaone, jruby, scala
Comments rss Comments rss
Trackback Trackback

Publications

   

Upcoming Talks

JavaOne 2011

Android Open
Use code "WIDGETFX"
for 20% off!

JavaOne 2011

Steve On…

  • Everything
  • Agile
  • Flash
  • JavaFX

Archives

Affiliations

Awards

2009 JavaOne Rock Star!

rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox