Best resource to learn FLEX? Or is something else better?

Discussion in 'Trading Software' started by nitro, Feb 3, 2010.

  1. nitro

    nitro

    I am impressed by some of the real-time (RT) applications that are developed using FLEX. Does anyone recommend a book or any other resource to learn FLEX? Is it right that in order to do RT FLEX you need a cold-fusion server?

    Finally, is there an alternative to FLEX for building dynamic web RT data applications?
     
  2. AJAX, Flex, Silverlight.

    As far as pushing data on Flex, there's BlazeDS and Adobe LiveCycle data services. I don't know what's going on in the Silverlight domain.
     
  3. nitro

    nitro

    Thank you!
     
  4. nitro

    nitro

  5. byteme

    byteme

    I assume you're talking about Adobe Flex? I also assume you aren't talking about "real" real-time because as far as I know that is not possible with the Actionscript VM.

    No, you do not need a ColdFusion server. Flex can talk to just about any server-side technology either natively with the Flex framework libraries or through third-party Actionscript libraries. ColdFusion should have died many years ago (incidentally, the book review section of this website is written in ColdFusion)

    Flex is: Actionscript 3 and MXML.

    It's analagous to Silverlight: your favorite .Net language and XAML

    In the long-run I feel that Silverlight will win and Flex will remain niche.

    Actionscript 3 does not have any language constructs for multi-threading. That might put you off to begin with. If you are familiar with Javascript and/or Java then you already know most of Actionscript 3.

    The main resources for learning Flex is the Adobe website. Actionscript started out as a loosely typed language and then became a dialect of ECMAScript and progressed to being stronger typed and more Java-like.

    The Java equivalent from Sun, JavaFX which has all but flopped, ironically went in the opposite direction.

    For books, the usual O'Reilly are your best bets: Actionscript 3 Cookbook, Flex 3 Cookbook etc. I read one of the AdvancED Flex books and it was extremely poor.

    Developing Flex applications will take you twice as long (if not longer) compared to developing Python or Ruby applications. The compiler is very slow and the framework library is buggy and has many holes. The UI widgets are very limted compared to something like Wx etc. The native event mechanisms are in no way suitable for dealing with large amounts of market data - you have to re-invent your own. Having said that, I haven't really developed with Flex 4 yet and there are a number of key things that have been improved.

    I'd like to know which real-time Flex applications you have seen?

    I've developed some dashboard software for my ATS-wannabe in Flex.

    I'm also aware of Nasdaq's Market Replay and OptionXpress's platform Xtend2 both built using Flex technology - more specifically Adobe AIR - the desktop runtime for Flex applications.

    Then there is Lab49 who develop this kind of software: http://www.lab49.com/
     
  6. byteme

    byteme

    Yep, those are the official Adobe products. There are third-party products too, such as the open source:

    http://www.graniteds.org
     
  7. nitro

    nitro

    Thanks for the detailed response. Yeah, I am talking about Adobe FLEX.

    Cool. CF is expensive. I want to try to stay Open Source as much as possible.

    What is the right way to do realtime data in Silverlight? Is it just roll your own? I need to be able to pass a decent amount of data between client and server, but it is not really realtime, but the client shouldn't care imo.


    That may be a problem. Not sure yet...

    Ok. I will check that out.

    Sorry. Went in a different direction than what?

    Ok.

    Am I hearing that I should be using Ruby and or Python to do this instead of Java + FLEX?

    http://www.livevol.com/free/

    I didn't even know about those. Worth checking them out too.

    Cool!


    Thanks again.
     
  8. byteme

    byteme

    Not necessarily. Just giving a heads-up that developing non-trivial Flex applications is not fast.

    If your application has to live in a browser and you want RIA technology then your main choices are 1) Flex 2) Silverlight 3) JavaFX......a possible 4) AJAX - though I put the last in a slightly different category.

    Out of the first 3, Flex is the most mature. For Silverlight, there's a large pool of developers that can pick it up almost straight away, it's the familiar .NET and it's getting better with each version. JavaFX hasn't really taken off at all and probably won't and AJAX is for masochists (IMO) for anything but trivial use cases.

    If your application doesn't have to live in a browser then there are possibly better options.

    If you're going with Flex, I'd recommend using Ruby/Rake for building (when you need to build outside of an IDE) rather than Ant - there are Ruby Gems for this at Sprouts: www.projectsprouts.org.

    For unit testing, there are a number to choose from. I've used Adobe's FlexUnit, as3unit and fluint.

    For UI testing, have a look at FlexMonkey: http://code.google.com/p/flexmonkey/

    If you're dealing with large amounts of market data, you'll probably first want to look at replacing the native event mechanisms.
     
  9. thstart

    thstart

    Very good analysis. I would add some bits - I had a lot of experience with Flash in the early days when it was good for web animations.

    Actionscript is Flash related. Flash was created for pretty web animations. It was fast in the early days. Then got bloated. After Adobe acquired it - got more bloated. Also under Adobe it got buggy - it is why for example Apple do not allows it on their platform. Developing tools are timeline oriented - good for animations, but not very suitable for anything else. There is not comparable debugger as in Visual Studio. There is not compelling reason to use this aging web technology for desktop applications.
     
  10. byteme

    byteme

    Oh, forgot to answer this question. I haven't done push with Silverlight but there was a project I came across a few months back that mandated using Lightstreamer for pushing to the client:

    http://www.lightstreamer.com/

    It isn't open source though and I didn't work on the project in the end.

    The "right" way might be to use WCF as per this blog series:

    http://petermcg.wordpress.com/2008/11/19/silverlight-polling-duplex-part-4-wpf-client/

    Then there is the COMET server approach than can potentially be used by Flex, Silverlight and AJAX. Free but not open source AFAIK:

    http://www.freeliberator.com/
     
    #10     Feb 3, 2010