Yesterday afternoon I had the chance to do a final pass on the Merapi code that Adam Flater has been working so hard to wrap up, and after a "thumbs up", was able to post it to the Merapi Project Web site and finally approve/enable the 300 or so alpha users that we selected to participate in the program.
This is a pretty great milestone for the Merapi Project team, and (as we see it) the RIA development community as a whole. By bridging Java and Flex/AIR we are enabling developers to connect the two, allowing them to build more experiential user interfaces for their Java Applications and by allowing them to access the power of Java and Java libraries in thier Flex/AIR applications.
Much thanks to the rest of the folks on the Merapi Project team, especially Adam Flater. Without Adam's hard work, bright mind and determination Merapi would not exist... so thanks man!
While Merapi was created to help extend the functionality of Adobe AIR applications, it is the hope of the Merapi Project team (and the community as a whole) that future versions of Adobe AIR will not need Merapi to build more robust AIR applications.
You can sign up for the Merapi Alpha and download the code at the Merapi Project Web site.
July 15, 2008
Merapi is Live!!!
June 16, 2008
Adobe Flex Architecture & Frameworks Overview plus Merapi Preview at Chicago Flex / AIR Developers Group
Last week I teamed up with Rhazes Spell to give a talk to the Chicago Flex and Adobe AIR Developers Group. First off, it is great to finally see a user group in Chicago dedicated to Adobe-based RIA technology... It's been a long time in the coming!
I've been involved in the Adobe RIA community for quite some time, and have always been a little dissapointed in my own fair city's lack of organization around an RIA development community (and I suppose by saying that, I am equally at fault!) Granted Chicago isn't a total Flex community virgin... I do recognize the unparalleled efforts of Igor Ilyinsky who's been running the Chicago Cold Fusion and Flex User Group for several years. It probably makes a lot of sense for these guys to gang up and unify in some way, as there is strength in numbers and a solid community of developers should have as much representation as possible.
Anyway, I was asked to give a presentation to the Flex & AIR Group at an event that was hosted at our Roundarch offices. The week leading up to this presentation was pretty jam packed with client obligations and a trip to our New York office, so to get a little help, I asked Rhazes to join me and contribute his thoughts.
Because the Chicago group is quite new, and we anticipated there to be a wide array of folks in the audience, we decided to generalize our presentation and cover some basics on Flex RIA application architecture and an overview of Flex frameworks. After all, when you are new to a technology, getting started on the right foot makes all the difference in the world, and we thought this topic would help the group adopt Flex with fewer introductory frustrations and development dead-ends.
Borrowing some insight from Ali Mills and Luke Bayes's great presentation (and research) on the various Flex frameworks floating around the Internet, Rhazes and I broke things down and gave a "What are frameworks 101" along with an overview of items to consider when defining the architecture your Adobe Flex application(s).
We wrapped up the presentation in about 40 minutes and then I took about 10 minutes to talk about The Merapi Project. It was also great to have some of our friends from Digital Primates at the event, including Louie Penafor who is also on the Merapi team. Louie's created the coolest AIR/Merapi example (I think) to date, which is an AIR application that allows you to acquire images from a scanner using TWAIN. Good stuff, big brain, and a really nice guy at that.
It was also nice to see Mike Nimer, who I consider to be one of the longest-standing members of the Flex community and now one of the primary brains over at Digital Primates.
I gave an overview of Merapi, showed off our pretty nifty MacBook Pro "Gyro" example, also known as "Merapi and Physics". People were interested in the project, and it looks like some of the attendees will come and sign up for the Alpha program for Merapi.
It was great to be able to talk about pretty deep technology with this group, and finish up making the point that all of the bits and bytes would be for nothing if it weren't for the user's that we need to design for.
I can't help but to share my enthusiasm for creative technology and my thoughts around design thinking as it applies to technology and how "we" use technology in our daily lives.
It is the people that make up these local community groups that are going to be the ones that build the applications of the future, and it really is important to help foster the community so that it incubates innovation benefits all of us.
June 02, 2008
RIAPalooza Recap - Thoughts, Photos & My Presentation Slides
The inaugural RIAPalooza event turned out to be quite successful and interesting for everyone who attended. For photos, check out the stream on Flickr and also view the Twitter stream.
I find that a lot of conferences become clouded with sales pitches disguised as presentations and force-fed information that is designed to push agendas of one form or another. This is why RIAPalooza was such a refreshing difference.
As an event that was conceived, planned, and put on by members of the Chicago development community, RIAPalooza was really focused on honest expert opinions and group discussions about the various platforms available for RIA design and development.
I was honored to be able to give the conference opening presentation on Friday evening. As usual, I couldn't help but to talk abou the
importance of user experience and about how the technologies that we now have as part of our design and development toolkits are much less about technology and more about enabling people to take creative ideas and bring them to fruition.
In my presentation, I gave an overview of the last 13 years of user interface technologies that we've had at our disposal and how they've evolved to the fantastic tools that we have today. In addition, I shared some concepts with the audience that I believe will be instrumental in the next 3 or so years as we continue to work as creative problem solvers with a flair for digital end-products and both online and off-line user experiences.
- What business factors go into deciding which RIA platform would be best for me?
- How can I convince my upper management that user experience matters and that we need to build more experiential software?
- How do you convince large corporations to adopt new creative technologies? What is the justification?
- Are plugins an issue? Whether it be Adobe Flex or Microsoft Silverlight, users need a plugin. How do we justify this?
- How is the process of designing and building a Rich Internet Application different than the Web sites or software that we have been building?
As you can imagine, the panel of experts had a lot to say! The information that was shared with the audience was spot on and extremely useful and I am sure that the panel discussion added a lot of value for those in attendance. The panel, which was supposed to only run for a bit and end prior to 9:00 PM went over and we were still taking questions when the facility started turning off lights and kicking us all out. That doesn't happen often, and was a sign for me that the presentations for this conference were going to be really valuable and interesting.
The rest of the conference (on Saturday) was filled with back-to-back knowledge sharing and expert insight into RIA design and development and because of the mix of presenters, covered the range of tools and technologies available in the market.
I spent the majority of my time speaking with Josh Holmes and Mike Labriola. Josh is a new Silverlight/RIA evangelist from Microsoft and Mike is a friend, fellow Chicagoan and perhaps one of the most wicked Adobe Flex architects on the planet. Mike is the founder of Digital Primates and works with Jeff Tapper and Mike Nimer... some of the brightest minds in the Adobe enterprise development community.
Josh and Mike teamed up to give a co-presentation on RIA best practices from both a MS and Adobe technology perspective and didn't only provide some great information, were great together and highly entertaining. I really hope to do some more talks with these guys and would love to seem them tag-team again at some larger events.Personally, I found that the information presented by the handful of Microsoft staffers at the conference to be really valuable. As the guy who manages Roundarch's relationship inside Microsoft's "Mercury Agency Professional Program" I am often more focused on strategy and creative idea generation than "how to build" things. For someone who is generally a bit further away from the code than I sometimes should be, the information that was presented was worthwhile to say the least.
I learned a lot from Corey Miller and Anthony Hendley, clearly experts in MS Silverlight, WPF and XAML and was blown away by the expertise that both Corrina Barber and Tim Heuer showed (and shared) regarding Silverlight development and designer-developer collaboration and workflow. Very valuable and eye-opening stuff, and critical to anyone that is going to embark on a Silverlight-based project.
I was also really pleased to hear some of the ideas that have been brewed in my fair city of Chicago as Ka Wai Cheung (From We Are Mammoth) talked about his project that combines .NET with Flex and is essentially an online application built in .NET that builds Adobe Flex applications. It is innovation like this that really inspires me (and should inspire everyone!)
Lastly, Geoff Cubitt, President of Roundarch, showed off some of the applications that we've built in both AJAX and Adobe Flex and talked about how application development changes when moving from non-rich to "richer" to "very rich" UI technologies. People really "got it" when he showed off the demo application that we've developed for Fast (enterprise search) with an Adobe Flex UI. Fast was just purchased by Microsoft so it was great to show another example where technology from both Adobe and Microsoft have been leveraged to create a killer user experience.All in all, it was a great experience and I was fortunate to have met some of the interesting people that I did and have such great conversations. It is a real testament to the will of the "community" that events like this are taking shape across the country (and world). It is thrilling to see that a lot of the ideas that I've been harping on for years becoming accepted by the masses and that the community as a whole is now focusing on technology as a means to create better user experiences.

March 31, 2008
Adobe AIR on Linux! More Cross-Platform Goodness...
For years, one of the decisions every team embarking on a mission to create desktop software has been faced with a common challenge: Determining which operating system(s) should be targeted for their application.
Remember the early promise of Java?: "Write once, deploy cross platform". The thought at the time was that applications written in Java, including Java Applets would be the holy grail of software deployment, finally eliminating the need for businesses to choose Mac or Windows or Unix/Linux. In theory, Java is a solution to this problem, however time has shown that Java applications are far better suited to run cross-platform "on the back end" than as end-user GUI applications.
A lot of software designers and user experience professionals would probably agree that Java for cross-platform GUIs failed, in part, due to the cumbersome process that end-users had to go through to ensure that their installed Java runtime would allow the application to run. Also, java applications of this nature just didn't, couldn't, wouldn't perform as well as required and weren't stable enough for a real takeover in the consumer market. The latter is most often blamed directly on the decisions made by the folks at Microsoft in their effort to combat the threat posed by Sun and the possibility of a Java-based operating system.
A lot has changed since back then! While Windows is still the dominant operating system for both business and personal users, there has been a huge gain in market share by Apple, as well as with Linux. While it used to be a satisfactory decision to "just make an application for Windows", more and more companies are now thinking about "cross-platform" as a necessity and no longer just a "nice to have".
Today, Adobe jammed their flag in the ground, staking claim to next generation cross-platform desktop applications. They Announced Adobe AIR (Alpha) for Linux!
This announcement means that countless Linux (Ubuntu, Debian, SuSe, etc) users are now able to play along in the "Rich Desktop Client" reindeer games enjoyed by both Mac and PC users since the public release of Adobe AIR.
In addition to the release of the AIR runtime, Adobe also announced that the Adobe Flex Builder IDE was also available for Linux!
So, it seems as if Adobe has defined the first stable, freely available, and truly cross-platform solution for desktop application development. Why is this really a big deal?
(I do realize that technologies like Python also run cross-platform, but we are talking about something much more adoptable by end-users with AIR).
In my opinion, this is interesting for three primary reasons. Reason number one is that this means that software development teams (and business folks that pay them) no longer need to cut Linux users out when bringing applications to market.
Secondly, and less obvious, Adobe's acknowledgement of Linux moves the operating system one step closer to being the preferred OS for many folks that were disappointed by the range of desktop software available that has traditionally been available.
Hardcore Linux users will disagree with me on this point. I am sure that it wouldn't be too hard to find people who'd passionately debate this and stand strong in their belief that Linux is, and has been, the greatest thing since sliced bread (or inkjet printers). I don't disagree with the fact that Linux is a powerhouse of an operating system.
I must point out, however, that after many attempts by different companies pushing Linux distributions (Redhat, SuSe, Mandrake, etc, etc) as well as hardware vendors and retailers trying to sell Linux-based desktops or laptops, that the general public has shied away from the platform.
It isn't only the common everyday users that have found Linux to be less optimal than Windows or Mac's OS X. Even industry insiders and RIA thought leaders like Adobe's Ryan Stuart admit that the reason they haven't made the full-time switch to Linux is due to the lack of quality software applications or choice of applications that they have.
Let's face it, Linux is a wonderful system, however for the untrained user, can be unwieldy to say the least.
I suspect with the newfound popularity of the Ubuntu Linux distribution, and with the new ability for AIR applications to run on the platform, more and more folks will be stimulated to give Linux another shot as their OS of choice.
Now that Adobe is releasing Flex Builder for Linux, is it possible that they will follow suit with their other software tools (Dreamweaver, Flash, CS3, etc?) If that is the case (total speculation), it only adds support to software/web design professionals' desire to take Linux more seriously.
Lastly, having been involved in the strategy, design and development of many different software projects, I can attest how unrealistic it really is to try to develop different instances of a software product to run on different operating systems, while still maintaining quality and brand identity (not to mention plain old usability). The primary OS always gets the funding, and the secondary platform (usually Mac OS) typically suffers.
Need an example? Have you used Microsoft Office on a Mac lately?
Moving on...
One major challenge to this entire argument (and one I am sure I will hear!) is the fact that Adobe AIR still runs inside it's own security sandbox, and that applications developed to run on the AIR platform still don't have the "real power" of traditional desktop applications. In short, to prevent the ability for AIR applications to take over your computer or execute malicious code, they are limited in what they can or can not do.
The primary limitations of AIR applications is that they don't have system-wide file access, can't connect natively to external devices, and rely on the Adobe framework to do what they need to do. Having talked to the folks on the AIR team about this, it is clear to me that they realize this deficiency and leave me with the assumption that down the road, the AIR platform may become more robust, enabling more and more integration directly with the end-user's operating system.
Until then, there is Merapi. As a member of the Merapi project, the release of AIR for Linux is terribly exciting. We've created Merapi in anticipation of this, and because it is developed in Java, Merapi is designed to run cross-platform, alongside the Adobe AIR framework.
The concept is that developers could create their application using the Adobe AIR runtime, and package it up with Merapi, utilizing the Merapi API and plugin architecture to do things that AIR isn't able to do by itself. For more information on Merapi, check out this recent post or hop on over to Adam Flater's blog where he's been making updates until we get the Merapi Web site and SVN repository online.
All in all, it is going to be one very exciting year in the world of next-generation thin-client applications, cross-platform software design and development and the adoption of Linux by users who were previously scared away by its lack of support from major software manufacturers like Adobe.
For more information on this announcement and Adobe AIR/Flex on Linux, check out the following:
March 28, 2008
Searchme = Thrill Me! A quick review of the searchme.com RIA experience
Last weekend I received an email from a good friend, long-time business associate, regarding the launch of a new Web application that he and the team at Adobe Consulting have helped to produce.
This new Web property is called "Searchme". As described on their Web site, "Searchme lets you see what you're searching for. As you start typing, categories appear that relate to your query. Choose a category, and you'll see pictures of web pages that answer your search. You can review these pages quickly to find just the information you're looking for, before you click through."
Clearly this email email stimulated some interest in me, and after reading Searchme's self-description, I was rather interested. After signing up for the public beta, I ended up getting fast-tracked with a user account. Having played with the tool for a week now, I am quite impressed with Searchme's overall experience.
Let's break the Beta down:
When thinking about why I liked the searchme.com experience so much, I decided to break things down into the following high-level categories. I suppose these also apply to "search" in general.
- Quality of Results
- Efficiency
- Enjoyability
Quality of Results
We all know that Google climbed to the top of the search engine mountain because they learned how to return rock-solid results to users on each and every search. This is no trivial task, and Searchme seems to be doing a fairly good job at it also. There is, however, a difference between Searchme.com's search user scenario and that of Google.
Searchme is visual, playful and enjoyable. Searchme allows the user to type a query, and upon doing so, returns a list of category matches. The user then clicks a the category that most closely relates to the concept that they were searching for, and then the results load on the screen.
This secondary search step could potentially be a very bad experience, however because of the "rich" nature of the user interface and the elegant way in which it is delivered, the potential for annoyance is reduced to a minimum. The fact that this pre-filtering happens means that your actual search results are generally right in line with the type of information you are seeking out.
Efficiency
Even if an online search application were to provide perfect results, I doubt it would gain wide acceptance by the online community if it wasn't fast. For today's search user, speed is almost as important as accuracy.
Searchme.com is blazing fast. This might be what impressed me the most. This thing is speedy!
So fast, in fact, that even with the heavier (than HTML) Flex user interface (Flash player), the application performed search queries and returned results in a split second. This is especially impressive when considering the graphical nature of the user interface.
Without knowing the system's architecture, I can only make assumptions as to what contributes to the speed at which it performs. I have to believe that we are talking about a highly optimized back-end, and a very, very, very tweaked Flex GUI.
I love Flex, but I also know that something that is this sophisticated has had to have gone through a lot of iterations of performance tuning to make it perform this well.
Kudos to both Adobe Labs and Searchme's engineering folks. The reason nobody has been able to launch a search engine with an interface this clever before is most likely due to performance.
Who cares how "cool" the UI is. If it drags your computer down or performs so slowly it is just annoying to use, all of the eye candy associated with the look and feel becomes secondary.
Enjoyability
I know. I know. It's a weird and subjective term. I use it though, and personally that the enjoyability factor behind digital experiences summarizes the overall value that they bring to users. If people "like it", they will use it, they will connect with it, and they will recommend it to others.
Searchme.com is enjoyable. Of course the speed of use and quality of search results lend to the overall enjoyability rating. Searchme, however, takes search to a new level by presenting the search results in a rich, visual and playful way.
Similar to, but not a direct copy of Apple's "Coverflow", this application shows results as page thumbnails and allows the user to page through them.
This was a risky approach, but it paid off.
The challenge from a technology perspective is to make the flipping action as fast and fluid as possible. Dare I say that this needs to exceed the expectations of the user in order to become a real winner. The 3-d pages fly through the interface, and are loaded in batches so the user can immediately begin exploring search results while the entire list of results loads in the background.
It isn't a new concept, but the team at Adobe really pulled it off in the most perfect of ways. It is smooth, fluid, quick, and works better than expected. I can't say that I envy the developer(s) that had to work on this, because it is apparent that a lot of time went into iterating through this until it was perfect.
Let's take a look

Secondary Action: Select Category
The "rich" experience gets underway! As soon as you type your query into the search box, a list of matching potential category matches is displayed. For this example, I typed in "Roundarch" as the search query. As soon as I did, the following category icons appeared: "software, architecture, work & career, web development, advertising & marketing". In this example, I chose "web development".
Once the user clicks on a category, the user inteface changes to what you see here. It is expanded by default, and provides a very nice, clean and visual way for the end-user to view screen shots of the pages in the search result collection. This initial display shows off the 3-d perspective view of the search results pages, where a user can "flip" through them, much like the ever popular Apple Coverflow UI.
In this view, all I've done is grab the "scrubber" below the screen shot and pulled it towards the top of the screen. This shrinks the search result thumbnails and reveals a text-based search result panel that directly correlates to the visual results at the top of the UI.
This screen shot shows the UI after the user scrolls into the search results. The UI now displays the screen shots on both the left and right of the selected search result item, along with the corresponding text-based results below. As you move the top of the screen left or right, the bottom area scrolls through results creating a 1-to-1 match between the visual results and the text results.
Finally, now that the user has chosen an item that looks right to them, they click the captured image of the Web page, or they can click the hyperlink in the text-based list of search results. This loads the new page in the same browser window, bringing the user to the content that they've selected for viewing.Watch the Searchme.com Demo
User Experience Highlights
Lastly, I wanted to just recap some of the things that Searchme.com has incorporated into the experience that I feel make it such a refined rich internet application:
- Capturing the "back" and "forward" buttons within the browser so users can use them to control the experience. Many RIAs forget this, leading to a potentially annoying experience.
- Displays search results in both visual and textual forms.
- The visual nature of the display allows users to easily seek out, identify and confirm that a "page" in the results contains the content that they are seeking. While not 100% accurate, a user can visually relate the page layout, etc to what they were after when typing the search query.
- The screen captures actually display the highlighted search term on top of the image itself. this is fascinating and I don't know how they've accomplished this, but it works.
Here are a handful of other articles and information resources regarding the Searchme.com application:
- http://biz.yahoo.com/prnews/080311/aqtu068.html?.v=37
- http://www.cbsnews.com/stories/2008/03/11/paidcontent/main3926431.shtml
- http://www.betanews.com/article/Searchme_launches_private_beta_with_help_from_Adobe/1205254500
- http://www.news.com/8301-10784_3-9890911-7.html?part=rss&subj=news&tag=2547-1_3-0-20
- http://www.searchme.com/press/releases/Searchme_Launches_Private_Beta_of_New_Visual_Search_Engine.php
- http://kara.allthingsd.com/20080311/searchme-a-new-visual-search-engine/
March 26, 2008
Adobe Flex... What and Why? (And What About AJAX)
This posting started as a response to a post on the iXda mailing list regarding the benefits of prototyping out applications using Adobe's much anticipated "Thermo" software tool.
While I've cleaned up the "email" nature of this, it is still a little rough. At least I hope to express some key ideas as related to Adobe Flex, why it is good, why it is sometimes a better tool than non-flash solutions (Ajax), etc.
If you have questions related to the topic, I'd love to hear them. I've been using Flex since its inception and have been working with Flash-based RIA's since day one. It's my thing, and I love to talk about it :)
"Do people use Flex for real projects?"
Absolutely. A lot of "real projects" have been built using Flex. Before going any further, I think there needs to be some demystification of what flex is. People seem to treat Flex as if it is some unknown product on the far reaching corners of the web galaxy.
Flex is just a way to create RIAs or other "Flash" content without using the Adobe "Flash" IDE. Flex has Flex Builder, the tool created by Adobe to write Flex apps, but in reality, Flex is just a framework to build RIAs that play in the Flash player (or AIR now that we have it).
"I have yet to see any web app/site that really uses Flex for an RIA.. most apps still use (and will use IMHO) web standard technologies like html, css, javascript, etc..."
I spoke at the Adobe MAX conference last year in Chicago on "Next Generation User Experiences" and how you can develop them in Flex.
Here are some examples of Sites that are built on Flex, and these projects have been worked on by myself, someone I know or have met in one capacity or another. I am just stating that so you can understand that this is first-hand information as opposed to "that could have been built in Flex".
Out of the giant list of Flex apps that have been launched to the public, here is a handful that you might recognize:
- www.scion.com - Full Flex application with Flash assets being loaded.
- Ebay Desktop - AIR Application that my old crew at EffectiveUI built using Flex
- anywhere.fm - online media player replacement for iTunes.
- Picnik - Online image editor application
- Mixbook.com - Book creation and sharing
- Snapfish - http://www.snapfish.com/
- Mastercard - http://www.mastercard.com/us
/business/en/smallbiz/findacard /findacard.html - Finetune Desktop - http://www.finetune.com
/desktop/
One amazing new application that is built on Flex was built by the folks at Adobe Consulting: www.searchme.com. Also, most of the applications that you find Adobe putting out (labs.adobe.com) are built on Flex.
If you have Adobe CS3, you've seen the Adobe "Video Workshop"... which was shipped with CS3 on DVD and is also hosted online at www.adobe.com/designcenter/video_workshop
This application was built by my team for Adobe using Flex and also packaged up using the Adobe Flash standalone player to run on DVD, etc.
"So... What's Up with Adobe Flex?"
I could go on for ages on this topic. (But I will try not to!)
Flex: First, it isn't the perfect tool for everyone.
It is, however, a great choice for a platform if you are building an RIA or online application where the user experience could see significnat benefits from a "rich" interface. (all applications?)
Flex is going to be quite daunting for someone who knows the Flash IDE, but is not familiar with OO programming, design patterns, MVC, etc.
Flex was intended for "programmers". As the market has created demand for better user experiences and RIAs, there just aren't enough Flash developers out there to meet the demand. Flex allows non-visual developers (i.e Java developers) to jump into RIA development by giving them a tool that let's them build apps using the skills that they have as opposed to trying to learn Flash itself.
"So why Flex? Could you list out some reasons?
You need to answer that relative to other platforms."
Sure. I can tackle this one.
Flex isn't perfect for everyone. I've seen a lot of people with solid Flash chops try to use Flex and just get frustrated. (Nobody said Flex was "easy") :)
There has been a ton of improvement in the product since the early days. Flex 1.5 was rough to say the least. Flex 2.0 was a ton better, and Flex 3 is proof positive that Adobe has been listening to the community to make the tool more robust and more integrated with the CS3 line of tools.
"Why Flex over Flash?"
I think the case for Flex over flash has to do with the type of application you are building, and who is building it.
If you've got a very robust "application", Flex is probably the right tool. If you've got a team of "developers" as opposed to "Flash developers", Flex is probably the right tool.
If you've got a project that requires heavy use of data, data visualization, or needs to utilize some more advanced back-end systems ... Flex is the right tool.
This is especially the case when thinking about applications that might utilize LiveCycle Data Services or the OpenSource Blaze Data Services.
Flex isn't better than flash... it is just a different tool to accomplish the same end goal. You have to use a tool that works best for you and your team.
"Why is Flex better than AJAX?"
So, instead of saying "Why Flex over AJAX", I will instead say "Why the Flash player over AJAX".
Both Adobe Flash and Flex output Flash player content. Whatever you use to develop your application, there are significant benefits to using Flex over AJAX... again it depends on your specific project!
I will say that in recent months, I've done several evaluations of technology for client projects, and have had to compare Flex to AJAX for each.
In my opinion, the biggest advantages of using the Flash player as a runtime for your RIA as opposed to using AJAX:
- Write once, deploy cross platform
- You can turn your Flex application into a desktop application without much code refactoring (using AIR).
- With the evolution of browsers, you can be less concerned about how to migrate your code to keep up with changes in the Document Object Model in AJAX, as the Flash player is backwards compatible.
- The Flash player now has hardware acceleration... so you can build UI's that look and feel the way YOU want them to, and not forced into having limitations by your development technology
- 3-d integration (using papervision or another framework)
- Handles LOTS of data much, much, much better (data grids with tons of rows, etc)
To help you understand what other benefits flex can offer, check out www.flex.org.
"So, how is Flex perfect when these java/rails/jango/foobar developers need to learn yap (yet another platform). Given the transition/learning time - what are the net benefits that make it better than sticking with the tried and true?"
It isn't. It should be a primary rule of building software: Use the Tools that you Know.
I will say that the ramp-up time for experienced Java or C# developers to move to Flex is nominal. ActionScript 3.0 is a lot like Java or C#.
The benefits aren't from a technology point of view. I really think that the benefits are around the user experience that you can get from a Flex application as opposed to something else.
If you know Java and that's your thing, then Flex isn't too far off from your comfort level.
Again, I wouldn't recommend anyone use a new technology on a critical project Especially a technology that is completely unfamiliar.
One thing I will say about developing in Flex is that to make "killer" flex apps, you need to really know the framework and be able to proof-of-concept your way from the initial idea to a working application.
You can build a flex application that "looks right" but has performance issues due to the way it was coded. There have been several projects we've worked on in the past where we were called in to help "save' a project that was built in Flex, but wasn't built properly. It was all there, but in order to make it launch-ready, needed a bit of refactoring, etc in order to be optimized for a great user experience.
All in all, Flex has been a really good tool in my experiences... But I preface that by saying I've been fortunate enough to work with some extremely talented software engineers that really know the framework and how to make it sing.
"Ok, so leave me with something..."
Flex, Flash, AJAX... whatever..... You have to build apps using tools you are comfortable with, and don't pick a technology simply because it's the latest thing :)
There really is no right answer to the whole Flex vs other technologies question. It really just depends on the specifics of the situation.
One thing I will say though: If you don't know ActionScript 3, and/or your team isn't being led up by someone with an actual software development background... take caution in jumping into a Flex project.
Thankfully, there are folks out there (to whom I could refer you) that could jump in and help out on a project to get a team up to speed, etc.

