JavaFX RIA Test Added to Bubblemark RIA Benchmarks (Flex/Silverlight/Javascript)

Bubblemark has added a JavaFX version of his bubble animation test that spans now all of the RIA technologies out there. Bubblemark is a great site and has been a great site for comparing animation in the browser. Alexey Gavrilov has kept the site up to date on all versions of Silverlight since when it was WPF/E and it is a nice quick baseline test to check FPS performance across these new vector toolkits and scripting.

My results are very similar to Bubblemarks tests:

JavaFX — 14 fps
Firefox + Silverlight (JavaScript) — 56 fps
Firefox + Flex — 62 fps
Adobe AIR — 62 fps
Firefox + Silverlight (CLR) — 99 fps

Silverlight is not final and is quite light compared to Flex (I wonder if a vanilla Flash9/AS3 export has been done or if it would perform any different), but if Silverlight has a lead on FPS, where FPS is really success of any kit in RIA or vector, then it could be a rough battle. Flash/Flex is really far far ahead due to the browser penetration and the development community but the better performance is always a good indicator of possible success. Plus, Microsoft controls the desktop market and any “benefits” it might give their own kit which includes distribution and performance in preloading or caching.

JavaFX and JavaFX Script – the Java RIA Kit

Photo Sharing and Video Hosting at PhotobucketSun has launched JavaFX using JavaFX Script which is a RIA kit for Java.  I will have to look further into this for a few specifics like 3d support but there is another great Java library for effects called processing.  But an RIA tool using Java applets may seem mid-ninties-ish but Java applets have been having some success online including many 3d viewers, games like runescape, mini apps, financial tools and ftp toolkits on their limited desktop and web usage. 

Market Direction?

This seems to confirm that the market is currently headed towards RIA applications with the three big development companies introducing new toolkits for RIA and interactive web apps (Microsoft Silverlight, Flash9/AS3, now Sun JavaFX).

This RIA kit is Open (Source) for Business

There is an open source community for this development at  This could be one of the first results of the open sourcing of Java recently.

Additional Competition Possibly

I like this because its open source and because it will put pressure on the competition of Adobe vs. Microsoft possibly.  Adobe will be launching Flashlite 3 soon with FLV video support which is quite a race on the mobile side.  Most importantly, Java has a full consistent package now which may help its adoption since it spans mobile, tv, web, desktop. Historically Java kits have been all over the place.  Adobe may eventually be pressured into opening up Flash at some point if this gains traction and advances quickly.  Or this could be a dying flare thrown up in Java’s demise.  Personally now that it is open, I think that Java has only just started and gaining a second wind.

Duke is open for business. via Shaver as silly season continues

Programming Design Patterns

If you are not familiar with the Gang of Four (GoF) patterns, there are many books and sites on the subject. These patterns are a set of logical designs that have been successful and provide a bit of arichtectural building blocks when considering the design of a framework or class library in .NET, Java, etc.  They are largely influenced by OO and Java especially. Although these patterns you can see in many frameworks of today.  These allow a communication of design so that understanding can be embedded into certain modules of a system.

Here is the list of (GoF site):

Creational Patterns
  Abstract Factory   Creates an instance of several families of classes
  Builder   Separates object construction from its representation
  Factory Method   Creates an instance of several derived classes
  Prototype   A fully initialized instance to be copied or cloned
  Singleton   A class of which only a single instance can exist
  Structural Patterns
  Adapter   Match interfaces of different classes
  Bridge   Separates an object’s interface from its implementation
  Composite   A tree structure of simple and composite objects
  Decorator   Add responsibilities to objects dynamically
  Facade   A single class that represents an entire subsystem
  Flyweight   A fine-grained instance used for efficient sharing
  Proxy   An object representing another object
  Behavioral Patterns
  Chain of Resp.   A way of passing a request between a chain of objects
  Command   Encapsulate a command request as an object
  Interpreter   A way to include language elements in a program
  Iterator   Sequentially access the elements of a collection
  Mediator   Defines simplified communication between classes
  Memento   Capture and restore an object’s internal state
  Observer   A way of notifying change to a number of classes
  State   Alter an object’s behavior when its state changes
  Strategy   Encapsulates an algorithm inside a class
  Template Method   Defer the exact steps of an algorithm to a subclass
  Visitor   Defines a new operation to a class without change

We will be writing samples of each pattern and real world usage.  In actuality patterns are great and will make you understand programming architecture.  However patters at times can be overkill and more deep than necessary and possibly cutting off junior level understanding.  The dofactory rates patterns and their frequency of usage or usability. I think that patterns are very important but also a low entry point into code libraries is very important.  Simple interfaces to the logical blocks like patterns is common in frameworks like the .NET framework or Java runtime.