7 Reasons to consider Flex

In response to another annoying Flex bashing article on Digg, I though I’d post my response and get some facts straight (I basically take all his ‘facts’ and respond to em so read the other article in paralllel). Funniest thing is, they are trying to sell a proprietary AJAX framework and scare their prospective customers with “Flex = vendor lock-in”.

Also I would like to emphasize that I love AJAX and javascript and I feel that they have a need to fill just as much as Flex does. This is just to make sure people have their facts straight when choosing a technology.

1) Adobe Flex effectively don’t care about any of the web standards we have spent the last 4 decades building!
Actually it does. AS3, which Flex is written in, is trying to be the ECMA reference implementation. ECMA is the standard that Javascript is based on. If anything, normal browsers fall short of actually implementing the spec correctly. This will get crazy again when Javascript 2 comes out when you will have to check your applications in multiple versions of Javascript running on multiple browsers. Your QA time will most likely double.

2) Adobe Flex is a BINARY RIA Framework!
Umm….so? You still code it in text and compile it like Java or C#. Binary code keeps file size smaller. Its better if you also come up with a funky UI and dont want others to copy the interaction by just copy pasting the code into their app. And if you DO have a serious application that you want to deploy, dont you compress your javascript files ?

3) Adobe Flex will effectively render your website invisible to Search Engines:
Are you creating a website or an application? If you are creating something like cnn.com in Flex, then its obviously the wrong technology. However, most of the AJAX examples I have seen that AJAX library vendors try to sell are mortgage calculators and the like. How on earth does google index a mortgage calculator? And if you are using AJAX, googlebots still cannot make asynchronous calls to your server. So for indexing AJAX applications, you still will have to resort to the same techniques as Flex/Flash applications.

4) You don’t know the technology needed to use Adobe Flex!
This was the funniest point I saw on the list. Basically it says: “I dont know it so you dont know it”. Flash and actionscript have been around for a while and AS3 is not that big a leap. Flex, as a framework will have to be learnt but no more than any ajax library by a javascript developer.

5) You don’t know who’ll win (Flash vs. Silverlight):
The flash player aint going away anytime soon. Ask yourself this: Will my application outlast youtube, google finance, etc? Are you willing to bet that Google, Yahoo and other huge companies who have invested in Flash dont know what they are doing or chose Flash callously?

6) Adobe Flex is immature technology!
Flash based RIA (rich internet applications) came on the web before dhtml/ajax ones. Flex has been around for 2+ years and we are now approaching version 3 of the framework. And Flex unlike javascript and AJAX is being groomed as a technology for applications. For example, you have stuff like Flash Remoting that let you manage client server interctions between flash and serverside code without actually serializing your messages into XML. You also have paged data support in Flex when rendering huge sets of data, and the true power of the Flex framework shines when dealing with huge amounts of data (The javascript vs. Flex results are just obscene).

7) Adobe Flex is lock-in technology!

Um, no! Flex is an open source framework that runs on the Flash player which is owned by Adobe. Sun owned Java but Java is still the language to beat for enterprise level applications. When you are trying to avoid vendor lock in, a lot of people choose Java.

Maybe the next blog will be where Flex outshines AJAX, unless someone from the community beats me to it.

Author: Arpit Mathur

Arpit Mathur is a Principal Engineer at Comcast Labs where he is currently working on a variety of topics including Machine Learning, Affective Computing, and Blockchain applications. Arpit has also worked extensively on Android and iOS applications, Virtual Reality apps as well as with web technologies like JavaScript, HTML and Ruby on Rails. He also spent a couple of years in the User Experience team as a Creative Technologist.

25 thoughts on “7 Reasons to consider Flex”

  1. Those articles about Flash and now Flex too are almost anywhere. They are all the same, no new reasons why not choose Flash or Flex. They are all the same.

    However they seem to have a lot of popularity and ivite many visitors, i guess this is the reason why we can find someone poiting the cons of those products. As for me it’s not funny anymore…

    Like

  2. One of the Murphy-type laws (don’t remember the name) says something like: The number of exclamation points used is directly proportional to the BS being thrown. This is a classic demonstration of that law.

    Like

  3. Thomas,
    I am not sure where you are getting your facts, but they are definitely wrong. Flex 2 is not open source but is like Java, all the source is part of the sdk and you can build on top of it all you want. Flex 3 is completely open source. And your biggest mistake is thinking Flex wont be around too long, although we can argue about this forever. I will just point you over to http://www.artima.com/weblogs/viewpost.jsp?thread=193593. Take a look at how some top people from Java are looking at Flex. My own experience has been similar and I am now seeing a lot more people coming from the traditional (non Flash) domain into Flex. And I think Flex as an application platform is a lot more mature than html and javascript is. And finally, while you may hate the pdf reader. it is the de-facto standard for documents today, so its your opinion against the rest of the world :).

    Like

  4. @MJorge: Yep, its link bait for sure but once in a while someone will get me annoyed enough to bite. I find it unfortunate when developers resort to complete lies to get their traction on their products.

    Like

  5. thomas,

    don’t even bother to spread your marketing crap based on bullshit,
    considering how you answered to comments on your blog
    you are not worthy to even an attempt to explain why/where you are wrong
    (and you are)

    and about FUD, your page still does not validate punk!

    go ahead comment on that, if you’re so into the “top elite” explain to us
    how does a simple blog page of yours does not even validate when at the same time
    you are a so big proponent of standards

    Like

  6. @ Thomas> That’s cool.
    Keep thinking like that and in no time you’ll be out of the game.
    I would also like to say, that you should read carefully people answers.
    Everything you are saying has been proven wrong, but still you are claiming it right…
    Anyway have a good dream thomas and hopefully the awakening will not be too hard for you.

    Like

  7. I have looked at Flex from an Application Developers point of view, found it to be really interesting.

    I have been working on Java Swing and building desktop based products for the last 6 years now, and so I know a good UI toolkit when I see it.
    Believe me Flex is damn good, and it’s a complete UI toolkit just like MFC, JFC, QT or GTK.

    Flex, gives you this ability to think in in terms of components and events and the GUI state, rather than request, response and session, which means people like me, who have done a lot of desktop programming find themselves right at home.

    Basically, if you know the difference between a GUI toolkit and a Javascript library, you will understand what I mean.

    However there some parts of Flex have which really do bother me.

    1. How do you build custom components with Flex? How easy or difficult is it to do so?
    Because, if it is really hard, third party component development will not flourish. For a GUI toolkit having a third party component market is really important. Why? Because Adobe will not build every damn widget out there. Say you want a Property Sheet Component, or a Pivot Table, or a Date time picker. If you were using Java or MFC you can just buy these components off the shelf from people like Jidesoft or Dundas, to name a few. Is there a third party component market that caters to Flex Developers?

    2.The price at $5000/CPU ( for 100 connections) and $20000/CPU for the enterprise, is really a show stopper. How do I sell this to my manager? That f@#$%r will probably look at something like Dojo and say Just piss off, and it is also pointless telling them that Dojo is not an UI Toolkit, where as Flex is.

    IMHO, Flex is ideally suited for Dashboard style applications, and Statistical Apps like Google Finance and the new Yahoo Finance. Also Rich Interactive apps like Picnik are good candinates for Flexification đŸ™‚

    There is no point building Data Entry Forms with it. POHTML will work fine.

    Like

  8. @Swapnonil
    Flex component development isnt hard. The syntax is very similar to Java swing development although you will have to get familiar with the low level actionscript objects. And the $5000/CPU was what kept Flex 1 from gaining critical mass. Flex 2 applications are written in an Eclipse based IDE and the final compiled file is deployed to the server like any html/swf file.

    @thomas
    I think Java applets were a good idea but the implementation was poor. The biggest issue was the startup time as the whole JVM initialized. Upgrade paths to the latest JRE were poor as well as the large size of the downloadable JRE was bad. Some of these problems were fixed with the Java Web Start stuff but I guess it was too late.

    Like

  9. @Swapnonil
    There is no server required for Flex. You can connect to a PHP or Ruby backend if you want. (It will also connect to .NET, Java, ColdFusion backends – anything that can output XML will connect to Flex just fine.)

    Mike

    Like

  10. The issue I see with Flex is that Silverlight seems to do everything Flex can, and more. Silverlight allows you language-independence, and tighter integration with media players. What advantages do you all see for Flex over Silverlight?

    Robert H. Goretsky
    Hoboken, NJ

    Like

  11. RHG: Silverlight has no market share and only half of a toolset – the developer side. Flex works nicely with Flash for the graphic design side of things. Microsoft does not have a comparable level of integration, or offer its own graphic design tools for that matter.

    AS3 is also a standardized language. Web developers who already know Javascript and PHP (as opposed to so-called “real languages”) can transition into Flex relatively easily. Libraries are relatively easy to find already. If you prefer a language with stricter typing rules, the haXe open-source project is available; it has similar syntax to AS3, but adds an implicit typing system.

    Like

  12. @Sam:
    I completely agree that Flex will only be as strong as the developer community behind it. And I think its getting better, if stats on the number of users on any of the Flex mailing groups are anything to go by. And if you look at the adoption in the market, there are quite a few bigwigs who have adopted it. Look at Yahoo’s web messenger, Comcast Fan, Brightcove, SAP, EBay’s desktop application etc etc, the signs are definitely promising.

    @Robert:
    Flex and Silverlight is going to be interesting if silverlight can get the plugin base high enough. Whats a little weird to me is Silverlight seems to be targeting the developer community (especially with the language independence) but the applications they showcase are more what a web developer would be called to do rather than a software engineer. I am not sure how many companies will ask their C# developers to create an application with tweens, fades and other eye candy. If the battle doesnt spill to those domains and Silverlight just remains something in a web developer’s arsenal. then its future would seem more rocky.

    Like

  13. Um, I’m not a .net developer myself, but the next generation of asp.net web apps will be done in silverlight full stop. the silverlight community will be .net shops and the .net community is LARGE. in case you don’t know, MS Visual Studio .net is the most ide in the world.

    Secondly, I expect MSFT to build decent(definitely better than FlexBuilder) tools for silverlight. It’s not like Adobe starting an IDE from scratch, they have the knowledgebase / codebase already and know how to do it well.

    I expect that .net shops will develop in silverlight, and other shops will choose from Flex or web 2.0 / html + javascript

    Also, custom component creation is in fact harder than it is in java swing. The actual code you need to write is the same, but the fact that Flex Builder isn’t nearly as good as the standard java IDE’s means little shortcuts for moving up and down the inheritance chain, overriding methods from your parent etc are not there in FlexBuilder. If you open up one of Ely Greenfield’s custom components and try to work out what is what, you’ll see what I mean — FlexBuilder gives you no hints on what methods the child overrode etc.

    Btw if you are an agile shop, I’d think twice before choosing flex. Flex unit is a ‘not good enough’ first attempt to test their actionscript code, but not the mxml – which will be the main view of your ui. The only way you can really test the gui is by buying some mercury product. Appalling really why Adobe only conspired w/ Mercury and didn’t assist the ‘open source’ world in any way to test the gui.

    Like

  14. @Stephen

    I am sure MS’s tools for silverlight will be amazing, they do have a bigger team than Adobe on tools and Visual Studio is an awesome IDE. But arent product decisions about the final application coming in from the business folks and unless the silverlight plugin reaches a 90% penetration, trying to convince business to use silverlight for anything besides prototypes would be hard.

    I hope MS does a kickass job on the tools. Adobe needs the competition. Flex Builder 2 was a first stab but FB3 seems to have a lot more support for refactoring and debugging.
    I agree that the unit testing framework for Flex needs a lot to be desired.

    On the other hand Adobe has an army of designers who could really enhance the user experience on RIAs and MS’s lacks that. Imagine improved workflows from photoshop to Flex and how much that could reinforce Flex’s current dominance.

    Like

  15. @arpit

    In terms of product decisions, I think you are assuming that all those apps will run outside the enterprise’s firewall in which case the 90% penetration is justified as a critical point.

    However, I’d bet a large sum of money that each enterprise has a lot more more internal corporate apps than those deployed on the www. And these corporate companies are who Adobe + M$FT + everyone else is competing for. I’ve seen so many internal apps run on Weblogic, Websphere, or any other >10k per cpu server in my time as I’m sure many of us have….and in this case, a 90% penetration rate doesn’t carry that much weight when they / the corporation controls the config on each desktop.

    I don’t disagree that flex outputs a nice product, but going to the silverlight site, for a business ria app, I don’t see a distinct difference in the output – in which case labor, and time to build will obviously be an important factor.

    I’ve built flex apps myself, and while it’s quick to create simple pages, i’ve found complicated pages to be much more difficult + I’ve found mundane tasks like code formatting, organizing imports, refactoring etc. to be frustrating and a waste of time b/c of a poor tool. I’m just assuming mind you b/c I haven’t done silverlight dev myself — but M$FT has always put out good tools to really RAD their applications(It helps to just build tools that work on 1 operating system!) starting w/ the original VB(although they probably get a mulligan for Visual C++)

    Clarification – MS Visual Studio .net is the most widely used IDE in the world. By a long mile actually…and again, I’m not a .net developer…just stating facts.

    Adobe should look to Jetbrains for tool inspiration — they make the best stuff bar none.

    Like

  16. @stephen,

    I am not sure I agree with you on silverlight looking at corporate intranet apps. Nothing I have seen on silverlight has ever said that. If you look at the silverlight showcase site (http://silverlight.net/showcase/), none of the apps look like dashboard /CRM/ etc apps. Also as far as I know, Silverlight has no advanced components to make creating such apps easy (like datagrids, tree controls. charting controls etc). They may appear as additional products you can buy later but they arent part of the core product.

    I think silverlight is closer to Flash than Flex. But if the runtime gathers enough steam, a framework for silverlight will appear soon enough.

    Like

  17. Also on MS Visual Studio, remember that there is hardly any choice in that world. If you are going to be developing in .NET or VB or anything M$FT, you pretty much have to use VS. In Javaland, there are way too many tools: Eclipse, JBuilder, NetBeans, etc. I have started seeing a lot of people move towards Eclipse now (example:http://www.theserverside.com/news/thread.tss?thread_id=33488) so it makes sense Flex Builder was built for it. In fact Flex Builder 1 was built as in independent application (looked very much like dreamweaver so I think they may have used that codebase) but FB2 targeted eclipse to target developers who were already familiar with the IDE. In fact a lot of the shortcuts come directly from the Java editor (http://davidzuckerman.com/adobe/2006/10/27/flex-builder-editor-cheat-sheet/) so workflows should be easier for Java developers moving into Flex.

    Like

Leave a comment