piątek, 25 lutego 2011

Why and when flex 4 sucks, and why you should extremly consider when want switch.

Everybody are so amused about flex 4 and it's features so I started to digg around what's best about it ? And what I discovered - flex 4 is just no mature to put it into big enterprise project cause it's slow.

The compiler is slower then my grandmother going to the pharmacy for new medicine. That big company should be ashamed creating such a thing. The Flash Builder well - it sucks when compared to it's older friend flex builder or just to editing java in pure eclipse - just consider ctrl+1 tips, and did you ever tried edit 2k mxml file in it ? Compile really big project ? I got all the errors that could appear in it I think, it's pain in the ass.

Fortunetly there are some alternatives like Hell Fire Compiler created by Edwin Wong, the ex Adobe guy that was responsible, as far as I found, for flex 2 and 3 compiler code. More on his blog. You can also consider to edit you big flex projects in IntelliJ IDEA that is just faster.

Well what's new in flex 4 revised:
1. Layouts that you can rotate ?
Well mighty flex developers did you ever considered using flash component kit for flex
So you can create pure flash components that you can put into your old You say it's for flex 2.0.1 so you don't know that flex 3 is flex 2.0.1 path only for me. Try to also use some features you get like [Style] metadata tag that is extremly usefull if you know how to use it. Or just ProgrammaticSkin extended by Sprite not by Shape
2. So the states are better ? Why you even consider using states when effects in flex are extremly slow and painfull. Well everybody knows that every tweening engine outhere is faster then flex effects. Besides State is only simple design pattern easy to implement. When using decent framework, I prefer Robotlegs you just don't need states.
3. Text - the only thing that you need to consider why to use Flex 4 I think is text - but I'm not sure about it since I didn't ever created text application. Only I know that they putted TLF to the text components and named it flex 4 text components.
TLF - as you know is extremly slow cause it's written in actionscript.
But there are some cons against text:
- are extremly slow for dynamic text
- are extremly slow in appending text
The pros are;
- are already written and the source is available so you can use them fast
- are good for staticaly text apps like shown first Times Reader app

Something about co products:
Flash Catalyst and load fxg. Well I never used it cause I know how to cut graphics for flex I know about scale9 and how to create amazing skins using only code. But the flex is very young technology so they needed create something dumb to let create little simple applications easier and I respect that. Tell me what you cannot create in degrafa that you can create in flex 4 please.

So when the technology is young you create dumb tools to create everything "easier" and "better". And when you are software company it's obvious you need to create new tools to sell it and generate profit from technology you give for free. That's what software companies do. Consulting, tools and training.

So what's missing in flex 4:
1. decent modules - well as far I remember the guy who mainly wrote modules code for flex did not work there anymore so I don't know they understand the code behind
2. better charts - the charts in flex are extreamly good - the renderers object pool do it's job when it's going about performance but the code could be optymised for real time data performance, well not redrawing all chart everytime but give ability to append data that will be advantage in financial apps.
3. Loosly coupled AdvancedDataGrid component written from scratch based on Composite pattern that could be far faster then now. The only component that we can consider when creating real time data applications now that can do something like AdvancedDataGrid is buggy opensource TreeGrid component from flexlib

I want only add that the only api that appear in AIR is very similar to some language from company that was recently aquired by Orlace. And the new invention in the company is that one that has has been aquired from third party companies Amicima, Virtual Ubiquity.

There is not much invention in flex 4, but there is one bright star I watch.

It's Flex HERO that should run in mobile devices and desktop ones. I hope the new flashplayer api and flex will follow the true power of old flash that is develop one time then - look nice and run smooth everywhere and the same.

There was always lot's of invention and creativity in flashplayer that you can use to create amazing apps that you wonder you can ever create and maintain in other languages in such little time like apps:

1. Audiotool now previously hobnox sound creating app that is outstanding,
2. dragonfly previoulsy now homestyler from autodesk design your house app,
3. adobe rome that is like flashscs3 in the browser
4. or many more AIR desktop apps or web based applications that I forgot and all are in adobe air marketplace or presented on flex.org.

But the flex framework should follow the enterprise way to be extremly fast and bug free components library. The developement studio should be decend not amature and I hope it will live long and survive the new HTML5, CSS3, JS thrust.

Welcome back after more then a year. If you don't agree please write your opinions.
Have fun with code :)