Macromedia Flex 1.0 Released

Discussions

News: Macromedia Flex 1.0 Released

  1. Macromedia Flex 1.0 Released (61 messages)

    Macromedia has released version 1.0 of their presentation server and application framework, Flex. Flex offers a rendering platform for Flash clients in which enterprise developers can program using a familiar model.

    Macromedia gave TheServerSide a demo of the technology, and it was very impressive.

    As a developer you build your model and controllers as usual, and then create your flash view via Macromedia's XML format: MXML. At this point you can choose to manually edit the XML to build up the client, or you can use Brady, a new tool which is "Dreamweaver for XML/Flex". There is also a plugin for IBM's WSAD for visual development.

    The framework and your application is deployed as a standard WAR, and when a user hits the MXML file, Flex compiles it (first time) and returns back a .swf.

    On the client side you use ActionScript (which looks more and more like Java) to navigate the model that is returned, and the client can now offer rich interactions without going back to the server. There was mention of tying in Java to the client-side too, which would be fantastic.

    Visit the Macromedia Flex home page

    View the press release: Macromedia Flex Now Available

    NOTE: Macromedia will be discussing rich clients at TheServerSide Symposium

    Threaded Messages (61)

  2. Macromedia Flex 1.0 Released[ Go to top ]

    Cool technology !

    But their business model is a kind of outdated, IMHO :

    "Flex is an enterprise server product. Pricing starts at $12,000 for a dual-CPU license. Special pricing is available for ISVs and discounts are available to government and educational organizations in certain regions. If you are interested in additional information about Flex, please visit the Flex Product Home, Flex Developer Center, FAQ, or System Requirements page."

    Even top J2EE app servers doesn´t cost $ 12,000 these days...
  3. Can somebody point me to an explanation how Flex/Laszlo/Altio are different from a simple Applet (or complex one) that accesses server side with using Hessian or Burlap protocol (http://www.caucho.com/burlap/ and http://www.caucho.com/hessian/ ) ?
  4. Did anyone try out the beta?[ Go to top ]

    They had a beta out for sometime now, has anyone tried it out yet? Curious how it went and most interested in is how (from a UI perspective) would you use Flash to integrate with Java? I guess I have mainly see too many Flash cartoons and corporate intros that now I have a one way perspective of Flash and its uses. Maybe a Flash menu with Java running it?
  5. Did anyone try out the beta?[ Go to top ]

    They had a beta out for sometime now, has anyone tried it out yet? Curious how it went and most interested in is how (from a UI perspective) would you use Flash to integrate with Java? I guess I have mainly see too many Flash cartoons and corporate intros that now I have a one way perspective of Flash and its uses. Maybe a Flash menu with Java running it?
    A 60 day trial is supposed to be available in my DevNet subscription, so I may try it out just to see what its all about. Way I use Flash Remoting is to use a Flash app, accessing web services or EJB's (or even just regular java objects)
  6. Macromedia Flex 1.0 Released[ Go to top ]

    Yay!! Now if we can just do something about that $12k price tag. I was so stoked about this coming out. When I saw how much a “dual-CPU license” costs I almost ran away. Maybe I am naive but why do you have to either 1) be a company that can afford this just to use it or 2) be independently wealthy enough to make your own web site/small (tiny) business “flashy”? Is there really a point to learning this if I can never afford to put it to use in my web app? What a let down. I presume open source software, for which this is designed to enhance, is being used by enough companies that can really afford to use very expensive software. I am confused.

    Peace,
    Michael
  7. Perhaps Macromedia is not targeting small business. Flex can be really powerful in enterprise applications. Small business may need to wait till some open source enthusiast puts efforts in making the same.

    Imagine the deployment situation where you have more than hundreds of applications which are to be used by half a millions users. The worst scenario will be when, html/script is not sufficient to server your purpose. What will you do then? You can’t make a thick client for each application. Even if you do that, it will be very difficult to maintain that.

    Flex enable us to make system which is very easy to deploy and maintain but have the same power of any thick/rich client. In the ASP world, rich client is the future. They are efficient, effective and easy to maintain - If you are dealing with enterprise world 12K is nothing pal ;-)
  8. This is a joke right?[ Go to top ]

    I commend Macromedia for trying to appeal to enterprise developers like myself (working for a Fortune 100 company) but if I went to my boss today and asked for $12K for this he would laugh in my face.
  9. This is a joke right?[ Go to top ]

    If FLEX will provide a productivity boost and streamline development than $12k price is a bargain, but it is not clear if it would.

    The biggest problem with Flash API: it does not provide liquid layout. I am sick of tiny non-resizable interfaces on my 1400x1050 screen, they are barely usable and they hurt health of my eyes! I do not want to be blind!
     
    Dear UI developers please visit http://www.useit.com/alertbox/20031110.html and listen to expert advices.
  10. This is a joke right?[ Go to top ]

    The biggest problem with Flash API: it does not provide liquid layout. I am sick of tiny non-resizable interfaces on my 1400x1050 screen, they are barely usable and they hurt health of my eyes!<<<
    Actually flash can do flexible, resizable layouts. The core flash developer tends to be a designer who wants to tightly control the experience so they haven't embraced these features. I'm working on a site right now that lets you resize your browser however you want, some area stay consistant and others resize to keep the window filled.
  11. This is a joke right?[ Go to top ]

    Hmm, what do you suggest one should use in order to build a real intuitive and richt webenabled/thin client? Since Java/J2EE's weakness is clearly on the client side, which .Net is using to its advantage to catch up, I believe these types of products (like Flex) and technologies should be welcomed and studied more carefully.
  12. Macromedia Flex 1.0 Released[ Go to top ]

    Add the ability to program the client in java and I would be sold.
  13. Add the ability to program the client in java and I would be sold.

    You can. Just try a XUL (XML UI Language) toolkit such as SwiXML, Thinlet, Luxor, Ibex (formerly XWT), and so on. No vendor lock-in. No US$12.000 price tag. See http://www.swixml.org or http://luxor-xul.sourceforge.net or for details.

      - Gerald

    PS: If you're looking for a Brady-like designer "Lite" for XUL check out Theodore online @ http://www.carlsbadcubes.com/theodore
  14. Add the ability to program the client in java and I would be sold.
    Jim,

    ActionScript 2.0 - the client-side technology for Flex - is an ECMAScript 4.0 implementation (not a full implementation) that is as near to Java as you're going to get without it being Java. We've been working with Flash MX 2004 Professional and ActionScript 2.0 for the last 18 months or so, and have been using Flex for long enough to write a book for Macromedia Press, and I can promise you that our J2EE developers (we started life as a typical J2EE shop, with JSP, Swing and Applet front-ends for financial services apps) take to ActionScript 2.0 like a duck to water.

    To address another concern - the ability to make scalable/liquid UIs - this is a core feature in Flex, using the MXML markup language.

    Something as simple as:

    <mx:Application width="100%" height="100%">
      <mx:HBox>
        <mx:Tree widthFlex="1" heightFlex="1">
        <mx:DataGrid widthFlex="3" heightFlex="1">
      </mx:HBox>
    </mx:Application>

    gives me an application that will resize to fit the screen; the heightFlex attributes ensure that my Tree and DataGrid expand to fill the given height, and the proportions of my widthFlex attributes ensure that for any given screen real-estate given to my Application, my Tree will occupy 25% of the screen, with my DataGrid occupying the other 75%.

    Gerald - you posted just before I managed to get odds from the bookmakers on "there will be a XUL response to this thread" :) but if you examine MXML closely, you'll see that it more than tips it's hat to XUL, as does XAML from Microsoft. The fact of the matter is however, that MXML enhances XUL - I don't want to be drawn into debate, but Flex is a superset of capabilities that you would achieve with XUL alone (though not XUL plus a myriad of other technologies).

    We've been building Rich Client apps with Flex, and I can attest to the speed of development, especially with regards to integrating with existing J2EE infrastructure - the ability to invoke methods on POJOs (eg a Business Delegate or Facade), or should you wish upon Session and Entity Beans directly (though I'd recommend against that from an architectural standpoint). Value Objects/DTOs passed over the wire between server and client can be transparently mapped to an equivalent object model on the client, so you can code your front-end business logic on the client, in ActionScript 2.0, and invoke methods on your Java business-tier with the exact same method signatures as if you were calling from a Java client. We have a design pattern based architecture that mimics our J2EE architecture above the business delegate (commands, view helpers, service locators, etc) that serves us well on RIA developments.

    Think of the Flash Player as a "virtual machine" with near-ubiquity in browsers, capable of rendering interactive user interfaces quickly, in a cross-platform manner, and stop thinking of Flash as a "cartoon engine", then Flex offers an incredibly viable UI with which richer user experiences can be delivered upon J2EE (and dare I say it, also .NET) infrastructures.

    It's a compelling solution; I'd warn against dismissing it too quickly, I don't believe there's a better solution in the marketplace right now, including XUL I'm afraid.

    The developer edition is *free* - though I think it's going to be an $8.99 CD purchase for the 1.0 release, but for the manuals alone, it's worth that price. The fact is, for the development community, there is effectively zero cost of ownership of Flex -- the cost is passed onto the businesses that you are able to deliver enhanced solutions for. And we're certainly able to justify the price tag clients, based on a number of factors, which I can discuss separately if the thread goes that way.

    Best,

    Steven

    --
    Steven Webster
    Technical Director
    iteration::two
  15. Add the ability to program the client in java and I would be sold.
    I would guess that Jin actually meant ability to use tools like Intellij-IDEA/Eclipse to program client in Java and not language itself.

    Steven, thank you for explaining liquid layout implementation in Flex, because all examples emphasize absolute positioning and because I never met a scalable flash I assumed lack of scalability in Flash itself.


    I still do not understand how Flash/Flex is better than just Swing Applet? My logic:
    Flash requires java on client right? As java is there so does Swing. To create Java UI we have numerous options and tools to build UI (NetBeans, IDEA etc.) Why do we need Active Script? Flash? Flex? etc. to build RIA?
  16. It doens't need Java on the client. Just the Flash player plug-in, which has a far bigger install base than the JRE.
  17. It doens't need Java on the client. Just the Flash player plug-in,
    My fault, I had an impression that it does require java.

    >>which has a far bigger install base than the JRE.

    Macromedia states 98% for Flash and 90% for Java, not much of a difference, huh?

    http://www.macromedia.com/software/player_census/flashplayer/
  18. Macromedia states 98% for Flash and 90% for Java, not much of a difference, huh?http://www.macromedia.com/software/player_census/flashplayer/
    I guess a big chunk of that 90% is using the old Microsoft JVM, which is useless for modern Java clients.
  19. Applet vs Flash[ Go to top ]

    >> It doens't need Java on the client. Just the Flash player plug-in, My fault, I had an impression that it does require java.>>which has a far bigger install base than the JRE.Macromedia states 98% for Flash and 90% for Java, not much of a difference, huh?http://www.macromedia.com/software/player_census/flashplayer/
    It's not install base it's that you must code to Java 1.1 and not 1.5 since the plugins are old. Plus the load time is longer. I think both applets and flash have their place.

    Here is my crystal ball view of websites in 2010:

    88% HTTP with DHTML
    5% OpenSource SWF
    4% Flash
    1% Open or Closed SVG
    1% MS
    1% Applet

    DHTML will still rule.

    Here is my crystal ball view of websites in 2020:

    30% HTTP with DHTML
    20% Open or Closed SVG
    20% MS
    20% Flash
    5% OpenSource SWF
    5% Applet

    DHTML still rules.

    Here is my crystal ball view of websites in 2030:

    Machines take over the planet and humans are hardwired into the net through a cerebral interface owned by MSUSA. MSUSA is a machine controlled Corporacy where MS and the US government are integrated. The humans hide in the mountains and use DHTML. :)
  20. Hmm, predictions..[ Go to top ]

    Here is mine for 2010. For business sites only (our domain here at TSS),

    30% HTTP with DHTML
    30% MS XAML
    30% Open Source XAML
    4% Flash
    3% OpenSource SWF
    3% Java Applets

    Regards
    Rolf Tollerud
  21. Hmm, predictions..[ Go to top ]

    Here is mine for 2010. For business sites only (our domain here at TSS),30% HTTP with DHTML30% MS XAML30% Open Source XAML4% Flash3% OpenSource SWF3% Java AppletsRegardsRolf Tollerud
    I imagine for high end business sites you will see a multi client flavor.

    For example: DHTML and Java Web Start

    Kind of like how many companies like eBay offer other apis to access there data. Then end result will be multiple client interfaces for different types of users. While DHTML over HTTP will be the first interface a customer will probably see, but may only see it once.

    The result would be something like:

    88% DHTML
    10% OpenSource SWF
    10% Flash
    10% Open or Closed SVG
    10% MS
    10% Applet

    Where about half of large business sites will have multiple clients.
  22. It appears that there is some innocence here.

    Longhorn with XAML is going to finish Flash, Flex and all the other RIA products, do not for a second think otherwise.

    To get a taste of what is waiting go to
    http://www.mobiform.com/

    And Open Source will be copying of course or "reimplementing" as they call it.

    _____________________

    About what is possible or not with 3rd party WebService from Flash 7 remains to be seen until I get my own copy. No big deal really, I can easily make my own proxy in two minutes on the server with Java Axis or VS.NET. The thing is, and IMO the reason the Macromedia is so quite on this matter, is that with Webservices you do not need any of Macromedia's expensive server products! (and you get a better solution too).

    Regards
    Rolf Tollerud
  23. Java-Flash Client[ Go to top ]

    I am interested in a rich client that takes advantages of both worlds, java and flash. I want to use java to do, among other things, some data manipulation, but I want flash on top of java to do the data presentation to the user. Does any one know how to make java and flash to cumunicate?
    I think sockets could let me do this but, I wonder if anyone has a different idea.
  24. Java-Flash Client[ Go to top ]

    Remoting and Flex allow you to do that. You can even write your SOAP client code in ActiveScript on a Flash client to call web services on a J2EE server over the web, without Remoting or Flex.

    Remoting/Flex use a proprietary format on top of HTTP (not SOAP) to communicate between the Flash cleint and the server.
  25. Java-Flash Client[ Go to top ]

    Remoting and Flex allow you to do that. You can even write your SOAP client code in ActiveScript on a Flash client to call web services on a J2EE server over the web, without Remoting or Flex.Remoting/Flex use a proprietary format on top of HTTP (not SOAP) to communicate between the Flash cleint and the server.
    Flex offers the developer to choose whether client/server communication is using AMF (Binary data over HTTP) or using SOAP. If, in my previous example, you wanted to use SOAP instead of AMF, you'd simply add the attribute protocol="soap" to the <mx:RemoteObject ... /> definition.

    To pick up your other point - Flash client can call SOAP WebServices directly without Remoting/Flex, but be aware that it can only call WebServices on the same server from which the Flash movie was served; if you wanted your client to aggregate services (eg call amazon web service) you'd have to write your own Proxy to the Remote Web Service. The server-side component of Flex includes a proxy-server which will proxy these 3rd party Web Service calls for you - you simply add the URL of the Web Service to a whitelist in the deployment descriptor that lives in your Flex webapps WEB-INF directory.
  26. Java-Flash Client[ Go to top ]

    Hi there,
    I am interested in a rich client that takes advantages of both worlds, java and flash. I want to use java to do, among other things, some data manipulation, but I want flash on top of java to do the data presentation to the user. Does any one know how to make java and flash to cumunicate?I think sockets could let me do this but, I wonder if anyone has a different idea.
    For simple Flash/J2EE Integration, you can use Flash Remoting, which
    is a commercial Macromedia technology, with a commercial alternative
    (FlashORB) and with an open-source alternative (OpenAMF).

    I'd also recommend that you use ASTranslator and FlashGatekeeper,
    which you'll find at http://carbonfive.sourceforge.net/ to make
    your Flash/Java integration even more transparent (so you can pass
    VO/DTOs between client and server) and to make it even more
    secure (by adding a Whitelist for service security).

    I wrote about Flash Remoting and Flash/Java integration in quite
    some depth a few years ago, in
    Reality J2EE - Architecting for Flash MX

    You'll have to build your client in the Flash IDE; I've discussed in
    another post here the problems that might face you with, but if you're
    the only developer, or you already have a GUI to integrate with, then
    this can be a compelling option.

    If you have to build the GUI from scratch, on an enterprise product
    (ie multiple collaborative developers, need for SCCS, etc) then Flex
    becomes a candidate for your UI development. Flash Remoting, ASTranslator and FlashGateway is all kinda rolled into one with Flex, so that declaring a Java service from Flex is no more difficult than:

    <RemoteObject id="reservationService"
                  source="com.iterationtwo.business.ReservationDelegate">
      <mx:method name="checkAvailability" />
      <mx:method name="placeBooking" />
    </RemoteObject>

    and then invoking the method in an ActionScript class no more
    difficult than:

    // The following is ActionScript2.0 code
    class com.iteration.business.ReservationDelegate
    {
      public function ReservationDelegate() : Void
      {
      }

      public function checkAvailability( arrive:Date, depart:Date, guests:Number )
      {
        var call = reservationService.checkAvailability( arrive, depart, guests );
        call.checkAvailabilityResultHandler = bookingHandler();
      }

      public function bookingHandler( result ) : Void
      {
        // result now contains our Java method call result, saying
        // whether there is availability or not
      }
    }

    So with Flex, a lot of the heavy-lifting with regards to method-invocation, object mapping (it'll map deeply nested graphs of custom objects across the wire in both directions) and asynchronous result handling (allowing your UI
    to return immediately to the user, without the "wait" associated with an
    HTTP POST/GET) is all done for you.

    XML Sockets is a viable way of hooking up Flash and Java, but you'll run
    into firewall issues, and parsing XML on the Flash client is expensive
    compared to the method above in Flex, and Flash Remoting (which use a
    binary data transfer over HTTP(S) ).

    If you insist on doing XML over HTTP, replace the words RemoteObject
    in my tag declaration above with HTTPService, and replace the class
    name in the source attribute to the URL of an XML file, or a JSP
    or Servlet that spews back JSP, and you can pass XML data over HTTP
    and HTTPS that way.

    Lots of options - don't hesitate to ask if I can help more.

    Best wishes,

    Steven

    --
    Steven Webster
    Technical Director
    iteration::two
  27. SOAP- the free way is superior[ Go to top ]

    Steven: "The ability to invoke methods on POJOs (eg a Business Delegate or Facade), or should you wish upon Session and Entity Beans directly...Value Objects/DTOs passed over the wire between server and client can be transparently mapped to an equivalent object model on the client, so you can code your front-end business logic on the client, in ActionScript 2.0, and invoke methods on your Java business-tier with the exact same method signatures as if you were calling from a Java client"

    This is very old fashioned if I may say so.

    Why should I want to do complicate things like that that when I can call SOAP Web Services directly from Flash? Much more modern in this today’s modern way of loose coupled networks.

    Steven: "but be aware that it can only call Web Services on the same server from which the Flash movie was served; if you wanted your client to aggregate services (eg call amazon web service) you'd have to write your own Proxy to the Remote Web Service.."

    Why do I need to write my own proxy? Nothing could be easier than send an asyncron SOAP XML message with XMLHttp- just a string! And secure too (in WSE for example you obtain a ticket.. And faster..

    Please explain.

    Of course I understand that Macromedia wants to sell expensive server software but it is completely unnecessary to buy anything. Or am I wrong? :)

    Regards
    Rolf Tollerud
  28. Nothing could be easier than send an asyncron SOAP XML message

    Hessian, Burlap, RMI, CORBA are all simpler and easier with 0(zero) worrying about string parameter we send, etc. etc.

    >>Why do I need to write my own proxy?
     Read books and articles on static vs. dynamic, exactness vs. flexibility etc.
    It is possible to live with just one proxy, but inconvenient: just imagine objects with all methods without signatures or even no separate methods at all, just one method: call(...)

    As for SOAP, even MS itself discourages using SOAP in favor of binary Remoting “if developer wants to create a performant and usable solution”
  29. Konstantin: "Hessian, Burlap, RMI, CORBA are all simpler and easier with 0(zero) worrying about string parameter we send, etc. etc.

    And even CORBA too! :)

    Konstantin: "Read books and articles on static vs. dynamic, exactness vs. flexibility etc"

    Maybe I do that some day.. I only hope it is not the same authors that wrote about entity beans for ca 2 years ago or something...

    Konstantin: "It is possible to live with just one proxy"

    I think you have misunderstood me, IMO you do not need a proxy ay all.

    Konstantin: "As for SOAP, even MS itself discourages using SOAP in favor of binary Remoting “if developer wants to create a performant and usable solution"

    Now you are really upon thin ice.

    Ingo Rammer is the ultimate guru on Remoting in the .NET world.
    His advices mirror exactly Microsoft own best practice, look it up,

    "Remoting vs. ASP.NET performance"
    http://www.ingorammer.com/Articles/REMOTINGVS.ASP.NETWEBSERV.html

    "I also did some comparisons between ASP.NET Web Services and .NET Remoting components hosted in IIS using the SoapFormatter. The short story: don't do it! ASP.NET is always faster (by a magnitude) with SOAP.."

    Im fact the only scenario he recommends Remoting is between two different Web-applications on the same machine.

    ".NET Remoting Use-Cases and Best Practices"
    http://www.ingorammer.com/RemotingFAQ/RemotingUseCases.html

    With 20 Linux computers in a grid on the server and with Flash clients you should be able to server "the whole world" simultaneously" (slight exaggeration).

    Regards
    Rolf Tollerud
  30. "I also did some comparisons between ASP.NET Web Services and .NET Remoting components hosted in IIS using the SoapFormatter. The short story: don't do it! ASP.NET is always faster (by a magnitude) with SOAP.."
    Looks like Ingo has issues with grammar: instead of "with" SOAP he meant to say "than" SOAP. In the end of that article he says: "If you are going to go cross-platform or you have the requirment of supporting SOAP via HTTP, you should definitely go for ASP.NET web services as .NET Remoting's SOAP performance isn't quite the best (not shown here, but it is a little slower than ASP.NET)."

    >>I think you have misunderstood me, IMO you do not need a proxy ay all.

    If you do not have to create one it does not mean it is not there.
  31. As for SOAP, even MS itself discourages using SOAP in favor of binary Remoting “if developer wants to create a performant and usable solution”
    Performance Comparison: .NET Remoting vs. ASP.NET Web Services
    http://msdn.microsoft.com/library/en-us/dnbda/html/bdadotnetarch14.asp

    .NET Web services vs. remoting: Which one will work best for your app?
    http://builder.com.com/5100-6389-5034970.html

    .NET Remoting versus .NET Web Services
    http://dotnetjunkies.com/WebLog/chris.taylor/archive/2004/01/31/6385.aspx
  32. Hi there,
    Add the ability to program the client in java and I would be sold.
    I would guess that Jin actually meant ability to use tools like Intellij-IDEA/Eclipse to program client in Java and not language itself.Steven, thank you for explaining liquid layout implementation in Flex, because all examples emphasize absolute positioning and because I never met a scalable flash I assumed lack of scalability in Flash itself.I still do not understand how Flash/Flex is better than just Swing Applet? My logic:Flash requires java on client right? As java is there so does Swing. To create Java UI we have numerous options and tools to build UI (NetBeans, IDEA etc.) Why do we need Active Script? Flash? Flex? etc. to build RIA?
    To put this into context; I've worked with JSP, Swing, XML/XSLT, Applets as client-tier technologies. I'm a strong advocate of Java and of J2EE technologies, however my clients don't care much for technology, they care for the business problems that are solved. That's the context within which I first considered the Flash Player as a technology capable of rendering the user-interfaces my clients required.

    For anyone that says "Flash is Bad", "Flash is Slow", "Flash is just for animations". Let's not forget that the same was once said about Java, before it gained a new found ubiquity as the server-infrastructure of choice.

    Flash *has* been misused and misapplied on the client, for the infamous "skip intro" and superfluous animations; let's try and step outside that box, and recognise the Flash Player as a technology platform that is ubiquitous, cross-browser and cross-platform, low-footprint and incredibly fast at rendering the kind of UI that we're talking about building with rich-client apps.

    To come back to your point about why use Flex instead of Swing; essentially, I think they solve different business problems in many instances. The web has failed in many places, in delivering the online promise - of simple, easy and ubiquitous access to businesses online. I'll not deliver the RIA pitch here - but forcing people through a request/response page-based metaphor to book an airline ticket, check a bank statement and make a bill payment, check hotel availability, etc, is frustrating for users. The RIA proposition has emerged from the belief that there can be another way to deliver "the best of the desktop" mixed with "the best of the web". That is to say, to deliver that which was previously rendered as JSP, using a richer-client technology.

    I've worked with teams delivering online banking projects as Java Applets; the result was a slick looking user-interface, but it was plagued with problems of it's own. The separation of UI Designer, Graphic Designer and Java developers, was difficult - we had XML/XSLT going on to render the UI, but still it was a tough split. The download speeds proved unacceptable to customers in the end - they voted with their feet, and chose to instead use JSP/HTML based banking solutions. There were browser compatibility problems - subtle differences in the browser implementations of the JVM - and ultimately, a large number of users ( I think it was about 22% ) didn't have the Java capability in their browser.

    Flash as a client solves these problems to a fashion; the problems of delivering a ubiquitous user-experience, that is cross platform, cross-browser, that is fast to download, and that is highly interactive. However, the flip side, has been that we've been forced to use the Flash metaphors of Timelines, Movieclips, Libraries of Symbols, to build our UIs. These binary flash movies have been a nightmare for collaborative development, they bloat source-code repositories and can't be merged, and a highly skilled Flash developer who could create optimised components, who had a hard-to-find mix of creative and development skills, proved a real bottleneck in the projects.

    Flex responds to this, and MXML and ActionScript 2.0 respond to this. Rather than rely on the Flash developer, the UI can now be defined using an XML like syntax, that is immediately familiar to someone that has worked with JSP, ASP.NET, or has looked forward to technologies like XUL or XAML. Using a traditional workflow for JSP development, we can now deliver MXML instead (or as well) upon our existing J2EE infrastructure - hive off your Struts Actions or Command Classes, and build an declarative XML UI upon your business tier/delegate. If you really want to dip your toe in the water, and replace JSP by JSP with MXML files (not to be recommended, but a good starting point) then you can keep your Struts actions as well (Christophe Coenraets has a good article somewhere on the Macromedia site about this).

    With MXML and ActionScript 2.0, we can achieve the same separation of concerns that we achieve with JSP; our designers, creative developers, software engineers, etc, can all work with exactly the same roles and responsibilities. The UI no longer becomes a binary bottleneck, but is a living, breathing text-based file that can be kept under source control, worked on in a non-exclusive checkout model, for merging under CVS/etc. Furthermore, the rich class library that Flex exposes means that the need for a Flash developer capable of building data grids, drop downs, menus, implementing drag and drop behavior, scripting effects on rollover, etc, are all reduced to <mx:DataGrid/>, <mx:Menu/> <mx:Tree onDrop=""/> and <myApp:FinancialStatement hideEffect="FadeIn"/>

    If you're building Swing Apps, then I don't necessarily see a compelling
    reason to jump-ship and build with Flex.

    If you're building Rich Internet Applications, but have all the Flash bottlenecks, I've discussed above, then trust me, Flex is a godsend in
    the market today.

    And if you're happily building JSP/HTML based applications, but aware that the user-experience being delivered to users could be better if you could break free of the request/response page-based metaphor, and implement more "in-page" behaviour on the client-side, while keeping the cross-browser, cross-platform, ubiquitous client benefits of a webapp, then you might consider taking a look at Flex development.

    Oh - and there's a JSP taglib in there as well, so you can easily embed rich-client apps within the body of a JSP page, if you simply want to provide some in-page Rich Internet Application (such as a stock quote, that needn't refresh the whole page to invoke a webservice, and display the results returned as a graph). Embed the RIA, let people request a stock quote (a simple example, but one that often resonates) and let the embedded RIA update in-browser, when the results are returned.

    I don't think Flex is a magic bullet. I do think it is a compelling technology where delivering a better user experience across the web, and into the browser, to the maximum audience, has bottom line benefits.

    I hope that provides some balance to "Flash sux so Flex sux"

    Best,

    Steven

    --
    Steven Webster
    Technical Director
    iteration::two
  33. but it was plagued with problems of it's own. The separation of UI Designer, Graphic Designer and Java developers, was difficult - we had XML/XSLT going on to render the UI, but still it was a tough split. The download speeds proved unacceptable to customers in the end - they voted with their feet, and chose to instead use JSP/HTML based banking solutions.
    I am not sure how you implemented your solution, but one of my hobby projects is a chatbox http://ip3e83566f.speed.planet.nl/clone/ that uses a similar scheme, an applet passing xml to the webpage which applies an xsl sheet to it and places the result in the page. and I have totally different experiences. It proofed extremely easy for designers to modify. Even a friend who just started learning html managed to give it a total makeover fairly effortlessly
    Loading times are fair I think.
    There were browser compatibility problems - subtle differences in the browser implementations of the JVM
    There are also a lot of issues with different versions of flash, I remember their flash petstore didn't run on mozilla when the serverside reported on it
    If you're building Swing Apps, then I don't necessarily see a compelling
    reason to jump-ship and build with Flex.
    And for people using asp.net?

    or people using stuff like http://www.bindows.net/bindows/samples/applauncher/ wrapped inside a couple of jsp tags?

    what does it offer over these kind of solutions?
  34. Re: Myths Exploded[ Go to top ]

    I can attest to the speed of development, especially with regards to integrating with existing J2EE infrastructure - the ability to invoke methods on POJOs (eg a Business Delegate or Facade), or should you wish upon Session and Entity Beans directly (though I'd recommend against that from an architectural standpoint). Value Objects/DTOs passed over the wire between server and client can be transparently mapped to an equivalent object model on the client, so you can code your front-end business logic on the client, in ActionScript 2.0, and invoke methods on your Java business-tier with the exact same method signatures as if you were calling from a Java client. We have a design pattern based architecture that mimics our J2EE architecture above the business delegate (commands, view helpers, service locators, etc) that serves us well on RIA developments.
    But can't you do the same with Remoting? My concern is that Flex adds a hefty price tag and doesn't add much to Remoting beyond the ability to build the client on the fly from your server-side view code instead of precoding it.

    In many situations, especially when you have separate, dedicated web/graphics developers for the UI part, precoding the client might be the best way to go, especially if having an aesthetic value is a business requirement (e.g., a makeup/accessory store).
  35. vs. Flash Remoting?[ Go to top ]

    I'm curious how this is different from Flash Remoting...

    I know the front end is written in an XML languaage (MXML), which describes the interface. The server then "compiles" the MXML into a flash client.

    I only spent under $1000 and can do similar. Albiet, I have to create my flash application using Flash MX Pro 2004, instead of MXML...

    And I use the standard version of FlashOrb as my flash remoting part.

    Does that warrent a cost of $12k? Just to write the interface in XML as opposed to using Flash?
  36. Flex resources...[ Go to top ]

    http://livedocs.macromedia.com/flex/

    http://www.markme.com/mxna/index.cfm?category=Flex

    http://www.flexcoders.org/

    Flex Plug-in for Websphere Studio
    http://www.alphaworks.ibm.com/tech/wsadflex
  37. Hello,

      If you want to build your Swing UIs or Eclipse UIs using XML I suggest stoping by at the XUL Alliance site that lists more than a dozen free open source alternatives to Macromedia Flex such as SwiXML, Ibex, Luxor, Thinlet, and so on.

      See http://xul.sourceforge.net for details.

     - Gerald
  38. Missing A Big Point[ Go to top ]

    I think some people are missing a big point. XUL et al are cool technologies, but Flash has a huge install base that the others can't compete with. I'm not a fan of Flash development - it is clunky for application developers. However, with the Flex environment and the install base for Flash, it is no wonder Macromedia is charging a hefty price tag.
  39. 99% bad[ Go to top ]

    Flash was described as 99% bad since its birth and is still is. I will consider using Flash using dif IDE and working with more mature ActionScript
    or may be I should wait for microsoft longhorn's version of their rich client. It is ok for a banner nothing more unless u are an amateur developer!
    Faisal
  40. Hello,

      for some insight why Macromedia Flash is a dead-end allow me to quote from my JUG Austria talk titled "Scalable Vector Graphics (SVG): Creating High-End 2D Graphics Using XML".

     SVG vs. Flash - What's wrong with Flash?

      * both require browser plug-in; SVG will get built-in browser support (e.g. Mozilla)
      * open, royality-free, multi-vendor vs. closed, single-vendor
      * Free World Wide Web Standard vs. Macromedia Inc.
      * easy-readable plain-text vs. binary format
      * $50.000 Flash Generator license for creating large-scale dynamic graphics vs. inexpensive packages such as PHP, XSLT, JSP and others
      * both allow embedding of typefaces (fonts); SVG allows multiple SVG documents to reference same SVG font file; SVG applies typographic handling to original text to ensure your text is searchable and selectable
      * SVG supports Photoshop-like filter effects on vector graphics; Flash doesn't support filter effects
      * SVG is a truly open and extensible format; anyone is welcome to add functionality; Flash is controlled by Macromedia; you can't extend the format without violating their patents/copyright

    Summary: + Flash: well suited for animation; large plug-in install base on Windows (> 90%); ActiceX browser-plug-in is a small download (< 400 k); popular animation authoring tool for designers


    Why SVG? Isn't Flash or Java2D enough?

    Web Architecture - The Big Picture

    XML Syntax - mixes easily with established and emerging XML standards such as: XHTML, XUL, MathML, XForms; XML is the lingua franca because it's simple, extensible, royality-free; operating system or programming language independent and much more

    Web Services - mixes easily with Web Services; send SVG diagrams or animations via SOAP messages or create rich graphical user interfaces for Web Services

    Styling with CSS - use a single style language for XHTML, XUL and SVG

    Animation with SMIL - use SVG docs in multimedia SMIL presentations to mix vector graphics with audio and video

    Modul-Mania - use SVG Tiny or SVG Basic on mobile-devices (cell phones, palms, etc.)
  41. Both XUL and Flex ( and scripting in general in this regard):
    - require knowing many different things and typing them correctly;
    - no assistance from tool to explore server objects ( at least with EJB I can see variety of methods available and choose a proper one );
    - compiler will not complain if object on server has changed and method is not available or signature has changed;


    With SVG/XUL/Flex RIA battle it might make sense just say: lets use good old X-Window for RIA.

    XUL/Flex/SVG use exact the same idea as X-Window does but handicap it (with exclusion of SVG probably).
  42. Gerald,

    With all due respect, I think you should spend some time checking
    out the Flex feature-set before you write it off as a dead-end.
    Without question, each of your arguments against Flex are
    simply propagation of misconceptions, and misinformation.

    Requiring a browser plug-in; the marketing stats from Macromedia
    are 98% penetration of Flash, sure it's less for Player 7, but I
    bet those stats are up there before long. XUL in Mozilla by
    default - well, Flash Plugin is now part of Windows update.
    Ubiquity is not an argument here. What's the browser penetration
    stats for Mozilla right now, and do you think GlobalAirline.com are
    going to accept that as the number of online users to whom they
    are happy to restrict selling online flights to ?

    Easily-readable format; that's the ENTIRE argument for Flex, and
    for MXML, so it's a bit harsh to bring that up in this context
    here. MXML is a reaction to bringing Flash rendered UIs into
    a traditional development workflow, using a text-based format
    that will also be easily generated by visual design tools suited
    for UI design (like Motif/Swing App Builders from Widget Sets).
    There's already a plug-in for IBM WebSphere Studio, and discussion
    of integration with a LOT of Java IDE vendors.

    $50k generator license --- again I fail to see the relevance to
    this discussion with regards to Flex...?!?!

    Embedding fonts, CSS...well, Flex has support for CSS-2 for
    styling everything you'd expect, and more (such as effects
    and behaviors), and from within CSS, or from within MXML itself,
    you can embed *any* font that is registered with the OS font
    manager, eg @Embed('Tahoma') and you're done. So that's a bit
    of an unfair argument as well...it's all in the Flex docs
    available free online, in the chapter on Embedding Fonts.

    SVG - Flex has support for SVG; not full support (yet) but
    support all the same. So if SVG is important to you, you can
    use SVG as part of your Flex development.

    And we've already covered the simple WebService, RemoteObject
    and HTTPService integration, so again, I think it's a bit
    harsh to throw up Web Service integration as an argument
    against either Flex, Flash or Flash Remoting.

    Flex isn't hear to kick XULs ass. Nor is it hear to drive a
    stake through the heart of Swing. Different business problems,
    different solutions, and Flex offers a compelling solution (and
    it may not be, or may not always be, but it is right now) for
    solving these business problems within the comfort zone of
    traditional J2EE developers, and traditional software engineering
    workflows. In many cases, "which tool is right for the job" will
    come down to what tool the developer responsible is happiest and
    quickest using. However, for enterprise apps, maintenance is
    an issue, so we also have to consider "what tools and technologies
    will the team that maintain this code in 7-10 years time be
    comforable about using".

    If your business problem can be solved faster, or better,
    using Swing, XUL, or any other rich-client technology, then
    go for your life.

    I don't want to feel compelled to take the "Flex is the saviour"
    stance on this thread; I don't believe it is, I just believe it
    to be a fantastic tool for the job I require of it. But, if you
    are going to spread a little Fear, Uncertainty and Doubt about
    Flex's capabilities, probably worth spending a little time getting
    into the depths of what it can and can't do.

    Flex doesn't herald the death of XUL, it simply marks an
    investment and committment to a richer experience delivered
    over the web. Surely that's to everyone's advantage, pet or
    favourite technologies aside ?

    Respectfully,

    Steven
  43. SVG - Flex has support for SVG; not full support (yet) but
    support all the same. So if SVG is important to you, you can
    use SVG as part of your Flex development.
    Just to qualify Steven's quote, Flex will parse SVG.
    A few details here: http://www.artima.com/weblogs/viewpost.jsp?thread=22035

    Talk about turning the SVG vs Flash argument inside out. :)
  44. Thanks for the reply. It cleared some doubts.
    I have some basic questions -
    1. Can anyone talk a bit about all different "flashy" UI tools/scripts/technology solutions available. I get confused by flash, then remoting, then flex and then other SVG, XUL etc etc etc. The industry is already on the verge of confusing some beginners like me.

    2. Can anyone comment on the complexity it will intorduce in developing a jsp - servlet application - as in posting data to a servlet or showing data thru beans on a jsp which also contains a mmx/flex/remoting etc.

    3. what about the speed ? I have seen most slow ass applications from flash. They can compete with SWING to some extent in terms of refresh rates etc. Whats being done to make these UI tools faster and easy to use ( and not as unpredicatble as a repaint or pack confusion in swing. )

    Thanks.
  45. With all due respect, I think you should spend some time checking
    > out the Flex feature-set before you write it off as a dead-end.

    Well, it's not so much about your feature-set, it's more about your Microsoft-style/Sun-style we-are-the-world approach. Do you really think anyone buys into your 10000 % Macromedia only offering for enterprise applications? Why would anyone go back in time and use a Micromedia-only browser (Flash), a Micromedia-only web toolkit (Flex), a Micromedia-only markup language (MXML), a Micromedia-only design tool (Brady) and so on when you can use browsers, web toolkits, markup languages and so on that build on open royality-free standards?

    > Requiring a browser plug-in; the marketing stats from Macromedia
    > are 98% penetration of Flash, sure it's less for Player 7, but I
    > bet those stats are up there before long.

    Well, my point is that a browser plug-in is not good enough. To succeed you need to build a next-gen browser on open royality-free standards such as XUL, SVG, etc.

    Also I doubt that there's a 98% penetration of Flash 7 for Linux desktops.

    > Easily-readable format; that's the ENTIRE argument for Flex, and
    > for MXML, so it's a bit harsh to bring that up in this context
    > here.

      Not really. To succeed you need a easily-readable format *on the client-side* otherwise your toolkit is a dead-end such as Sun's upcoming Java Server Follies (JSF) offering.

    > $50k generator license --- again I fail to see the relevance to
    > this discussion with regards to Flex...?!?!

      Well, charging US $12.000 for a Flex license when you can use free alternatives doesn't look like a winning strategy. See how far Curl has got so far with the licensing policy for a case study.

    > well, Flex has support for CSS-2 for
    > styling everything you'd expect, and more

      Sure but it's on the wrong side, that is, server-side vs. client-side.

    > However, for enterprise apps, maintenance is
    > an issue, so we also have to consider "what tools and technologies
    > will the team that maintain this code in 7-10 years time be
    > comforable about using".

      Well said and only open royality-free standards avoid vendor lockin and will still thrive in 7-10 years. Macromedia Flash is great for eye candy and throwaway gimmicks but hardly a foundation for a next-gen browser and the rich internet for everyone.

      - Gerald


     - Gerald
  46. There seem to be two definitions of "Rich Client" implied in these posts. Some posters seem to think of a Swing-like toolkit of GUI widgets for quickly building highly-functional interfaces that go beyond the limits of current Web pages. For example, drop-down menus, slider bars, etc. Other posters seem to see it as an "anything you can imagine" interface tool.

    Most development reqires the former, not the latter. Flex will probably find a place in design shops looking to ease development, however, I doubt that many corporate intranet applications will adopt it.
  47. I spent four months evaluated Flex and a couple other solutions in the Rich Internet App space. First of all, I am personally an early adopter of Flex and tried to introduce it to my company. I got my company to participate Flex Beta (sorry, I can not reveal my company name otherwise i'll be fired). I particularly liked Flex for its integration with Flash (which means I can add a lot of sexy stuff, if i would like to. Of course, I don't have to use Flash) and powerful ActionScript(Yeah, Baby!). I thought less of using XML itself because almost everyone else in the RIA space uses XML for decalarative UI programming. Unfortunately, management team decided against it. It was not the best experience i've hoped. Anyway here we go:

    1.Client Ubiquity
    Cliet platform coverage is obviously important because many companies prohibit installing anything from the Web. Macromedia did "brilliant" marketing saying "Flash is available at 97% desktops". This is VERY misleading. This was the BIG problem for me that my credibility was shot. The truth is "Flash 4 capability covers 97% desktops, Flash 5 covers 95%, Flash 6 covers 50%-70% desktops, Flash 7 is only available on 10%-30% deskops". Flex requires Flash 7. My company was very disappointed that we were misled by Macromedia's marketing on this. This is such an important issue that Macromedia should be honest up front, because the result is that we were thrown out of our customer account when they realize our proposed approach of using Flex would require their users to install a new ActiveX control from the Web, even though it is Flash.

    On the other side, Java covers 95% desktops on the client side. Yes, a lot of these are old MSFT JVM (JDK 1.1.8). However, some other companies have built products similar to Flex that require only JDK1.1.4, such as Altio and Nexaweb. We ended up going with one of them because their solution actually gives better client platform coverage in a zero-install fashion. We even tested Mac OS X, Redhat and Sun Java Desktop System. The vendor's solution works well. Flex didn't support Redhat even if we were willing to install Flash 7.

    2. Flash as a Virtual Machine vs .NET CLR and JVM
    Which virtual machine would your boss bet on, the .NET CLR or JVM, for important applications? A good question. I persoally believe they are all fine (actually Flash is better because I can do ActionScript). But here is where i was shot by another smart ass in my company: If a pure Java solution does what Flex does and requires only JDK1.1.4 (which covers not only desktops but also J2ME) and requires no dowload/install, has no performance issue and normal Java client-side issues, what would you say? This has been a hot debate at my company. Our management decided to select the other vendor in the end, partially because:
    a>Management perfers a solution that's built around VMs from big vendors like MSFT or IBM/SUN. I tried to explain Flash is a good VM. They just couldn't get it. This is very frustrating for me. They refused to listen to my argument, and simply want M$FT or big blue for no apparent reason.
    b>On the other side, (I have to confess)The other vendor does provide a good solution: it does everything Flex does in pure Java or .NET environment(I mean literally everything: XML UI, XML layout, animation, SVG, plus a lot additional goodies) and perform a LOT better. It defines UI using XML and JSP/Servlet, and client-side logic can be Macro defined using XML or straight Java (works similar to ActioScript, but they compile Java into bytecode and download the bytecode on the fly to the client, which is why it performs a lot better than ActionScript). The charting support is amazing. It requires only JDK1.1.2 and runs on IPaq devices as well. The thing i have against it is that it does not support sexy animations and the other cool stuff that you can do with Flash. The other thing I have against it is that it is easy for Java/C/C++/C# developers but not easy for my fellow Flash developers.

    3. Development Tools/Skills/IDEs
    We have a development team of 150 developers(most of the Java,with 20 or so HTML/DHTML/Flash developers). Some of the use IntelliJ(about 25%), 20% use JBuilder, 10% use Eclipse, quite a few (about 30 people at one site) actually use NetBeans (surprise, huh), some use Emacs and the rest use Dreamweaver etc. We honestly had a terrible time trying to get Flex to fit into these different development environments, source control, and different development habits. This is actually the No.1 I personally bought into our management's oppinion of selecting the other vendor instead of Flex. Man. Imagine teaching the 150 people to use ActionScript and integrating the scripts into the Java development environments! Imagine that you have to manage and maintain many differet scripts. It is the nightmare of DHTML/Javascript again. The development tool/skills/IDEs issue became such a disaster that my usually outspoken voice has to be literally muted for a few weeks because some developers will kill me if they hear me walking by.

    My overall thoughts: RIA is a great and is gaining a lot of momentum. Our customers are thrilled when we showed them the RIA apps. However, choosing an RIA technology is not easy. Be careful and do your homework. DO NOT TRUST the marketing bullshit. CHECK THE FACTS OUT before you go to your boss to sell him the next big thing!

    Thoughts? guys?
  48. Hi Thomas,

    There are not many like you that really have tried out the different choises!

    I am happy to see that RIA finally is not only getting traction but proliferating like wildfire. IMO, current web products from a user interface looks like a throwback to the mainframe era.

    Macromedia Flex, Altio, Nexaweb, Curl, Laszlo, Mobiform and a slew of others, no doubt many of these new products will be combined with Web Services!

    “Web services will become the dominant distributed computing architecture in the next 10 years and will eventually define the fabric of computing... Web services will drive a total software, services and hardware opportunity in the U.S. of $21 billion by 2007 and will peak at $27 billion in 2010.” — IDC Research

    Personally I find Flex, and all Flash-based solution lacking in the department of snappiness- even after the initial download.

    Thomas: "Flash 7 is only available on 10%-30% desktops".
    Hmm, IE is installed on over 90% of the desktops, what about ActiveX?

    Salesforce (successful online CRM vendor) has chosen DreamFactory (an ActiveX solution) as a partner. That is a little odd because Salesforce is a Java company..

    Did you evaluate DreamFactory too? Check out
    http://www.dreamfactory.com/salesforce/

    Regards
    Rolf Tollerud
  49. Rolf:

    Yes, we evaluated almost every single vendor you mentioned. Here is a more or less summary of what we discovered. Do not take my words for it though. I really think people should do their own evaluation, because there are so much marketing bullshit!(BTW: this post may really get me fired:-) but the temptation of sharing something we spent a lot of time to discover is too high):

    Overall assessment for selecting an RIA vendor(sorry, this is very high level. The idea is what you need to look at what is most important for your app. For example, if high end graphics is No.1 requirement, you should go with Curl):
    High end graphics like 3D rendering: curl;
    Sexy animation, cool effects, even video/audio etc: Flex(Flash MX if you're cheap);
    Enterprise apps: Nexaweb ;
    Sexy consumer websites/web apps: Lazslo ;
    Others: Dreamfactory, DigitalHarbor;

    Curl:
    Stength:
    a>sophisticated graphics engine capable of doing programmatic ray tracing;
    b>solid support for web services on the client side.
    Problem: proprietary programming language (Curl); Lack of support for zero-install (requires download/installing Curl SRE);

    Flex(to some degree, Flash MX):
    Strength:
    a> sexy: animation, video, audio. Great for graphics designers and web DHTML developer
    b> ActionScript is great for programmer who know DHTML/JavaScript. There is a huge number of developers here.
    c> Flash is a knows browser add-on. Flash 5 is almost ubiqutous. So that the resistance of installing Flash 6 or 7 is a lot lower than some other ActiveX-based players like DreamFactory;
    d>MXML is much better than Curl, though proprietary, but it is at least XML based.
    Problems:
    a>Lack of enough support for zero-install (client ubiquity issue.I am tired of hearing Macromedia keeps saying 98% penetration. Flash 7 is so new that most deskops do not have it. IE/Netscape/Mozilla browsers do not and will not bundle Flash 6 or 7. So in the end, unlike previous versions of Flash, Flash 7 and above will require individual user download/installation, a dangerous thing for CIOs. I really hope they are honest and be straightfoward on this. I was burned personally on this issue);
    b>Can not scale to enterprise app well (maintenance and management of hundreds of scripts would be a nightmare for enterprise apps; Relying on ActionScript for mission critical apps is a tough sale to customers and management team).
    c>difficult to Fit into enterprise app development/skills/tools (Boy: if you think MXML solves all the problem why enterprise developers resist Flash, you are wrong! There are so many other problems Macromedia does not even know, letting alone admitting them).
    d>organization/culture issue: Macromedia does not know how to deal with enterprise (at least not yet). There is a big culture gap and organization gap. What is Macromedia going to be? An enterprise infrastructure provider or tools for web designers? You have to make a decision on what you are. Even IBM can not focus on two things at the same time, which is why they quit application software business a few years ago trying to focus on enterprise infrastructure instead.

    Nexaweb:
    Strength:
    a>Good functionality: Does everything Flex does, but ActionScript is replaced with standard Java. Additionally, it supports SVG and XML driven charting, Internationalization, Managed Client Object, etc;
    b>Enterprise strength:
    Great performance and scalability (for example, we tried a table with 10000 rows); Very solid and high performance Enterprise messaging(reliable messaging, server push, gauranteed order of delivery, pub/sub, etc, thousands of messages per second no problem). Field proven(their customers have deployed apps for 18 months, thousands of simultaneous users);
    c>Great fit into Java development shops: programming model is standard JSP/Servlet, deployed as a WAR file,etc. With no skill set requirements except for Java(C#) and XML. Development in any Java IDE would be fine. They aslo provide an Eclispe based visual development tool.
    d>ubiqutous client support: 95% desktops are covered today. It requires only JDK1.1 on the client side or .NET CLR, which gaurantees the future coverage. Zero install and very transparent to end users(Disclaimer: I have not seen their .NET offering yet).

    Problem:
    a>Not a great fit for developer who has only design and scripting capabilities. Java or C# skills are not always available;
    a>relatively unknown like a lot of other players in the space
    (BTW: i thought it's MIT and Netscape combo team is interesting)

    Lazlso Systems:
    Strength:
    a> sexy: animation, video, audio. Great for graphics designers and web DHTML developer
    b> ActionScript is great for programmer who know DHTML/JavaScript. There is a huge number of developers here.
    c> Ubiqutous client support. Unlike Flex, Lazslo requires only Flash 5 capability. This is a huge plus.
    d> Wise business decision: Given the Macromedia Flex push, Lazlso decided to focus on consumer websites. A wise move.
    Problem:
    a>though Lazslo came up with the Flex product two years before Macromedia, the thunderstorm is being stolen by Macromedia. Betting on Flash and then letting the Flash owner copy you is the biggest hurdle challenging Lazlso.

    DreamFactory:
    Strength:
    a>ActionScript-like development model. Great for DHTML/JavaScript developers;
    b>Good support for web services on the client side
    Problem:
    a>Download/Install: requires user to download/install an ActiveX from an unknow company is a much bigger problem in a lot of enterprise environments. Dreamfactory faces a much bigger problem than Macromedia in this regard;
    b>Not quite fit for enterprise Java developers, though good for scripting;
    c>Lack of server support
    d>small vendor issue.
  50. Thomas:

    Thank you.

    This must be one of the most informative post ever posted on TSS, you probably saved me a bundle, days if not weeks of work and grief! So Flash 6 or 7 is not going to get bundled. I also noticed like you when I fiddled around with Flash MX that it was impossible to organize the code- and working in Javascript (Actionscript) is OK but not only with script!

    Again, thank you a thousands times.

    Regards
    Rolf Tollerud
  51. A few clarifying questions[ Go to top ]

    Thomas,

    A few questions:

    What kind of problems are you trying to solve with a rich client?

    What was your process for evaluating Flex?

    Have you actually built a Flex application?

    Do you atually have the Flex bits in house?

    Judging from your other posts here on TSS, you've been pretty heavily involved with Nexaweb since 2002. It would be great to understand the nature of that involvement as context for your perspective.

    Jeff Whatcott
    Macromedia, Inc.
  52. Re: clarifying questions[ Go to top ]

    Jeff:
    I worked as a software engineer at one of the tech review labs for quite a few years, during which i was involved in doing lab reviews of quite a few products in the RIA space. I now work at different company and have been trying to bring in some new technologies here. Flex is the first RIA that I tried to bring in, though it did not work out in the end.
  53. Java WebStart[ Go to top ]

    Can anybody share a success story for Java Web Start?

    http://java.sun.com/products/javawebstart/

    Thanks in advance.
  54. Rolf: Salesforce (successful online CRM vendor) has chosen DreamFactory (an ActiveX solution) as a partner. That is a little odd because Salesforce is a Java company..

    Salesforce.com is not "a Java company," they are a salesforce automation software (as service) vendor, and as such, they chose to build their online application in Java, and if it helps their business to provide an ActiveX-based solution, then why not?

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Clustered JCache for Grid Computing!
  55. More on "Three Things'[ Go to top ]

    Hi Thomas. I'm sorry your team decided to use something other than Flex.

    1. Client Ubiquity

    Sorry about the confusion there. You can always check the following URL for the latest info by version: http://snipurl.com/5aqu. Each new version takes about a year to get to ubiquity. That's why we generally avoid citing specific versions - these number are stale the second they are mentioned.

    Case in point: the data you cited in your post is off. In December '03, penetration of FP7 was at 28.9% - 42.8%, depending on the region. It's probably in the 60% range now and should cross over to the 80% range by summer's end. FP7 is on rails to ubiquity, just like other releases.

    FP7 on Linux is in beta now.

    2. Flash as a VM

    Third party data data shows that penetration of all versions of Java combined stands at 90% penetration, not 95%.

    It's common knowledge that Microsoft isn't going to ship a JVM in future versions of IE. Apps that depend on the MSFT JVM are going to have reduced reach in the future, or require a multi-megabyte download/install. The days are numbered.

    FP7 performance is solid, and we're continuing work to improve this in future versions.

    3. Development Tools/Skill/IDEs

    This is the first time I've heard of these kinds of issues with Flex. It would be great to talk through it with you to understand the challenges you faced. Most developers find that Flex slides right into their existing J2EE development workflow.

    See these articles for more info on this topic:
    http://www.macromedia.com/devnet/flex/articles/architecture.html
    http://www.macromedia.com/devnet/flex/articles/cycle.html

    Flex source code is XML and ActionScript (text files), so you can code in any tool from Notepad to WSAD and use the same source management system you use for your Java code.

    Flex also ships with an XML schema you can import into your IDE to infuse it with Flex capabilities.

    We're hearing that ActionScript 2 generally feels very comfortable to most Java developers: it's OO and strictly typed.

    Regards,

    Jeff Whatcott
    Macromedia
  56. What Macromedia said about JVM dead on the client side is just not true. Almost all PC manufacturers like DELL, IBM, HP, Taiwan and Japan computer manufacturers all pre-bundle JVM with their machines. It is going to be there out of box.

    Client-side Java is a solid platform that companies can bet on, especially if someone like Nexaweb or Altio, as mentioned by Thomas, solved the JVM compatibilit issue. What's more, given the huge adoption of J2ME (over 80% market share), client-side Java is well and alive!

    BTW: would Microsoft Longhorn kill Flex and Flash? They have a Flash killer as well as a Flex killer built-in. MSFT is not going to allow another vendor thrive on its turf? I am actually a little concerned about Macromedia itself.
  57. Macromedia Flex 1.0 Released[ Go to top ]

    I just want to clear some things up...

    Flash as a front end for web applications isn't that new. For a while now, you've been able to create a Flash front end, and integrate it with J2EE, .NET, SOAP, you name it. Flash has some security settings that, by default, do not allow it to connect to services outside the domain that is hosting it. If the service is local, then it is fine.

    For example, if your domain is somefakedomain.fake, and Flash is accessing a webservice from that same domain, nothing special needs to be done. Flash 6.0, I believe, this behavior can be overridden. Flash 7 cannot.

    If you need to access services outside, or want to use J2EE services, etc, then you need a Remoting Gateway. Macromedia sells one. FlashOrb has one in 2 versions (Standard Version is free for most commercial apps). There are numerous open source implementations.

    Rolf, it IS possible to organize your ActionScript code. Just like in Java, you can specify packages, have different source files, etc. At least, I know you can do it in MX 2004 Professional. I believe its an Actionscript 2.0 feature. And you only use Actionscript for the UI. Your business logic can be implemented as EJBs, Webservices, .NET...

    What I'm still unclear on is how Flex in particular adds to this. I understand that it provides a way of specifying your UI in MXML, which gets compiled into Flash.
  58. clarity[ Go to top ]

    Hello all,

    It should be noted that "web applications" have been alive and well for many years now, using little more than REST. Amazon.com is a successful web application, for example, which is much more complex, useful, and modern than any flash-based application ever built. Google is another. In the last ten years we have seen fresh interface and performance paradigms develop within the new logical space delineated by the boundaries of web-based technology and design. These paradigms have driven forward application development. The debate on the future of web application development is concerned with perfecting the visual and functional aspects of those paradigms.

    I fail to see how Flex could contribute usefully to this debate. Java has demonstrated its value -- as do the other robust app servers, environments, and so on which power the internet proper. Anything which facilitates communication with the kinds of objects Java (.NET, MONO), provides is clearly useful. But we already have those protocols, in spades. The server side is well and good and powerful, even being jolted on occasion by what comes out of OSource development. Flex does not contribute to the server side, nor does it add a new way to communicate with said. What Flex is trying convince us of is that The Art of Internet Application Development is improved by MXML. Macromedia is trying to convince us that the closer web application developers can get to the GUI, to what we've come to expect in the past from Windows/Mac apps, the better off we will be.

    We already connect just fine with data. We already move with wonderful agility through components and methods, remote and otherwise. I would contend that what Flex offers is of minimal value. Flash components are well known to be less responsive than hand-rolled actionscript objects, both to the needs of the user (clunky, sticky), and to the needs of the developer (rigid architecture, limited freedom). At the very least, it connot be said that flash GUI components are *better* than anything else out there at facilitating data interaction.

    And we must pay for the pleasure.

    Is the GUI really the "future" of web applications? Years of usability studies and interface designer debates offer many counterpoints. Is there a large body of necessary applications which are impossible to realize due to a lack of tools? Maybe. Is Flex really something new and useful, or is it simply a proprietary version of what already exists being spun as The Next Big Thing in order to augment the stature and bottom line of one company and its plugin? There might be some affirmatives out there.

    Sandro
  59. still not entirely clear[ Go to top ]

    Hi Bryce

    Bryce: "For example, if your domain is somefakedomain.fake, and Flash is accessing a webservice from that same domain, nothing special needs to be done. Flash 6.0, I believe, this behavior can be overridden. Flash 7 cannot"

    I take it that you say that it is possible in Flash MX to access 3rd party Web Service (which I distinctly remember was possible but I may be wrong), but not with Flash 7.

    But on the other hand Steven says,

    "Flash client can call SOAP WebServices directly without Remoting/Flex, but be aware that it can only call WebServices on the same server from which the Flash movie was served; if you wanted your client to aggregate services (eg call amazon web service) you'd have to write your own Proxy to the Remote Web Service"

    That is, he says that it is possible to call 3rd party Web Service if you "write your own Proxy".

    So it is still a little unclear to me.

    1) Is it or is it not possible to call 3rd party Web Service directly from Flash 7 without going via the server from which the Flash movie was served?

    2) Can I or can I not do it by just by sending an XMLHttp SOAP message as a string (without writing my own Proxy).

    I would be much obliged if you could clear this up entirely.

    Regards
    Rolf Tollerud
  60. still not entirely clear[ Go to top ]

    Hi BryceBryce: "For example, if your domain is somefakedomain.fake, and Flash is accessing a webservice from that same domain, nothing special needs to be done. Flash 6.0, I believe, this behavior can be overridden. Flash 7 cannot"I take it that you say that it is possible in Flash MX to access 3rd party Web Service (which I distinctly remember was possible but I may be wrong), but not with Flash 7.But on the other hand Steven says,"Flash client can call SOAP WebServices directly without Remoting/Flex, but be aware that it can only call WebServices on the same server from which the Flash movie was served; if you wanted your client to aggregate services (eg call amazon web service) you'd have to write your own Proxy to the Remote Web Service"
    That is, he says that it is possible to call 3rd party Web Service if you "write your own Proxy".So it is still a little unclear to me.1) Is it or is it not possible to call 3rd party Web Service directly from Flash 7 without going via the server from which the Flash movie was served?2) Can I or can I not do it by just by sending an XMLHttp SOAP message as a string (without writing my own Proxy). I would be much obliged if you could clear this up entirely.RegardsRolf Tollerud
    Yes, you are correct.

    I forgot to mention that that restriction is ONLY for Flash running in a web browser. Yes, you can call other web services if you have a proxy. This, in effect, is just one part of what Flash Remoting does. You can write your own proxy, but I've never done that.

    If you are running a Flash Application, either as Standalone or as a part of Macromedia Center, then that security restriction does not apply.
  61. still not entirely clear[ Go to top ]

    I beg forgiveness if I am too persistent but,

    are you absolutely sure that it is not possible to:

    "Send an simple XMLHttp SOAP message as a string without writing my own proxy to a 3rd party WebService from Flash 7 running inside a web browser- that is not part of part of Macromedia Center, with no Macromedia Software at all at the server except the Flash file?"

    I would try myself if I had Flash 7 on my computer!

    Regards
    Rolf Tollerud
  62. Thanks Thomas and Steven[ Go to top ]

    Your comments have been interesting and informative. I am glad
    some alternatives were mentioned. It really is necessary to have a
    well-rounded perspective and to compare products. I must say that Laszlo
    looks very compelling. They have what looks like a gentle tutorial to
    get you from knowing nothing do doing something interesting quickly.

    Thomas I hope you don't get fired but you did some of us a great service
    today. And Steven, thank you for the inside look into your company's
    experiences. Very helpful on many fronts.

    Cheers,
    Michael