Showing posts with label ria. Show all posts
Showing posts with label ria. Show all posts

June 17, 2009

JavaFX, Flex and Silverlight are looking at the wrong enemy

HTML and JavaScript were never seen as a real competitor in the RIA space given it's current limitations, but with the new featureset for HTML5: canvas (2D drawing), sockets (P2P communication), multithreading (background processing), audio/video, local storage... it might very well become the RIA platform of choice given today's huge developer base.
HTML5 won't be released for a couple more years, but Google and Apple are betting heavily on it so SunOracle, Adobe and MS better keep an eye on it as well.
Link: http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9134422

June 10, 2009

JavaOne 2009

Last week I attended JavaOne 2009, this time only as attendee, so no stressy last minute demo and slide editing. Like last year it was awesome, having all the people from the Java community in one place is just amazing, especially the hallway conversations and afterparties are my favorite part of the conference.

As expected JavaFX was big news again, with finally the unveiling of the "designer tool", Tor Norbye did a few entertaining demos of this very promising tool. Next to that it was impressive to finally see JavaFX running on a few mobile devices (HTC Touch Diamond and a device from SonyEricsson) and a flatscreen TV by LG with more than acceptable performance. Although many speculated on JavaFX's future, Larry Ellison made a clear statement during the show that he likes JavaFX so much that he wants to continue the investment and even do a rewrite of OpenOffice with JavaFX. I'm not sure if that's a good idea, but these statements took some pressure off of the shoulders of our friends at the JavaFX team.
Not very surprising was the unveiling of the Java Store, think Apple App Store for iPhone and iTouch, but then for any type of Java application. It seems like we are finally getting a component marketplace for us Java developers.
Last but not least a couple of days before JavaOne the next release of JavaFX 1.2 was released, with as biggest improvements: performance, documentation and API cleanup, new components (codename Caspian) and charting. For more info about what's new in 1.2 check out Stephen Chin's blog. JavaFX engineers Richard Bair and Jasper Potts annouced a new blog: FXExperience where they'll teach us some neat JavaFX tips and tricks.
It hasn't been communicated much publicly, Tor Norbye mentionned it briefly during the JavaPosse BOF, that a new graphic subsystem is in the works to replace good old AWT and Swing. This will give us an even faster startup time for JavaFX applets and better performance by directly interacting with the hardware of your platform. The ETA for all these JavaFX goodies is 'end of the year', so will we get a release at Devoxx as they did with JavaFX 1.0 last year? Hopefully they realize Devoxx is 1 month earlier this year ;-)
This year cloud is also big news. First we had Amazon AWS (EC2), then Google App Engine and now Sun is joining the party. Java developers will get an API to interact with Sun's cloud infrastructure and get access to virtualized hardware just like EC2 and with a similar pricing model. Very exciting times for startups!

Like every year I try to improve my book collection... So this year I picked up Clean Code by Robert C. Martin, an excellent book that teaches you best practices in writing clean (Java) code and how to keep it that way. Alhough you're probably already aware of most of the best practices described in the book, it reminds you why we're putting up with this effort. It's also usefull to have these arguments at hand when you need to convince your boss or client that unit testing and refactoring is so important. Next to Joshua Bloch's Effective Java 2nd edition, my choice for book of the year.

May 28, 2009

BeJUG: JavaFX in Practice

Yesterday I presented a 2 hour session: JavaFX in practice for the Belgium Java Users Group. Download the demos here, and here are the slides:




It's been a very busy year for me: founding my consultancy company, looking for projects and partners, preparing talks for Devoxx and BeJUG and some very long working days completing the first project for Pursuit Consulting. Finally the rush is over and I'll have more time to spend contributing to the community. I'm back... enjoy the slides!

May 26, 2008

JavaOne 2008 was great

I finally found the time to sit down and write about my first JavaOne. I had to catch up a lot of work that piled up during the last few weeks before JavaOne while I was rushing to get the JavaFX version of Parleys.com out for the Technical Keynote of Bob Brewin. If you weren't there you can watch it again, it's around 1:09 when Stephan Janssen (founder or Parleys.com / JavaPolis) presents the application.

I know I promised code samples during my technical session, but I haven't had the time to write about them. This will happen over the next few weekends, so stay tuned! In the mean time, people interested in the slides from my session can watch them below.

First of all I'd like to thank all the people I met at JavaOne for the interesting conversations and invites to cool after parties. I had a great time, learned a lot and met some awesome people. I'd also like to thank Sun for the opportunity to show my work during the keynote, it was a pleasure to see it on the big stage and to work closely with the people behind the scenes of the JavaFX Compiler, Runtime and GUI library to get it done in time.

I went to an interesting presentation on "Distributed client-server persistence with JPA" by Alexander Snaps, another Belgian guy I met at the Sun BeLux party. With his framework he tries to solve a huge need in desktop Java, transparant online/offline data persistence. I'd like to see this evolve into a full featured framework, and maybe even contribute to this if I can find the time. Having developped a similar mechanism for a client, a flexible framework for this seems like a huge timesaver for new client-server projects. Although some people believe everyone is online all the time, this is unfortunately not true in practice.
Jasper Potts and Richard Bair of the Nimbus and SwingLabs teams showed their latest work on the "Nimbus L&F". It not only looks better out of the box, it's designed to be flexible for us and the designers. Hottest item of their show was the designer tool, I'm anxiously waiting to try it out. It's basically a vector drawing tool that generates Java2D painter code to feed directly into Nimbus.
Ben Galbraith filled in for Shannon Hickey and Chris Campbell for "Extreme GUI Makeover" and he did a great job. He rewrote the GUI for a mainframe textbased financial application, with nice gradients, animations and rich usability improvements. All the sourcecode can be found here
. Thumbs up!
Finally I attended "Filthy Rich Clients, Filthier Richer Clientier" by our friends Romain Guy and Chet Haase. Although the technical content wasn't so surprising to me, it was a hilarious session. They floored me when they pulled off the Flex book trick, gotta give it to 'm, they have a huge sense of humor.

The JavaPosse BOF was great also, lotsa loughs and beer, it was fun!



Bottom line my first JavaOne was a great success, hope to see you all next year!

October 23, 2007

Flex vs GWT vs Echo2

Past 2 weeks I needed to investigate the best framework to port the front-end of a Java/Swing framework to a rich web UI environment.
The contenders:
  • Adobe Flex2
  • GWT (Google Web Toolkit)
  • NextApp Echo2
The idea was to have a rich UI similar to the existing Swing framework running inside the web browser, that seamlessly integrates with existing Struts webapps. Applets / WebStart was out of the question, because of fear for deployment and decompilation issues.

So with these constraints in mind I started looking for the best framework amongst our 3 contenders. The odd one in the list is obviously Flex, but although not based on DHTML and JS it offers a lot of richness, and the deployment and security risks where less of a concern to the client.

Echo2 soon failed one of the main constraints: to seamlessly integrate within other webapps, maybe there are good solutions but I didn't seem to come across those. Because the API was very similar to Swing it was very easy to port some of the basic functionality for my proof of concept, too bad. Another concern is that Echo2 maintains the view-state server side, which could become an issue when scaling up to many concurrent users.

Flex also failed in favor of GWT. The main concern was the difficulty to integrate it with a J2EE or JEE backend, you need to use WebServices or REST. There is a free version of LiveCycleDataServices which takes care of this but it's limited to single CPU systems. Licenses for the enterprise edition however are pricey. Another concern was the lack of quality opensource plugins for Eclipse, requiring a FlexBuilder license at 500€ per developer to have a comfortable productive development environment. And another inconvenience is that it's not Java, rather annoying to migrate all developers to this new language (ActionScript). Flex still has to prove itself as a technology ready for enterprise adoption, and you still need a browser plugin and it can be decompiled.

GWT on the other hand doesn't require all those changes of habit, you can keep developing and debugging in Java, with your preferred and well known tooling, JUnit testing, refactoring, you name it. Now a year after the first release there's already a large community adopting and extending the framework. Numerous enterprise applications have been built with it and it seems like a platform that improves productivity for rich internet application development. GWT shields all HTML, CSS, DHTML, JS and browser incompatibility issues from the developer. And as bonus you get free client side code compression and obfuscation. It's a pure WIN WIN situation.

A first implementation of the web port of the Swing based framework has begun with GWT 1.4.60 as platform and GWT-EXT (wrapper around EXT-JS) for some richer UI widgets. Everything gets built by Maven2, is developed in Eclipse and tested and debugged in the GWT Development Shell.

With the inception of GWT, Google gave JavaScript based applications a second life. IMHO if it wasn't for GWT, JavaScript would be dropped rather sooner than later in favor of Swing / JavaFX / Silverlight or Flex-like solutions for enterprise applications because of project maintainability issues.

Be sure to tune in later when I post my GWT / Maven2 project setup for Eclipse...