Saturday, April 19, 2008

The 'Farata' way or the highway

A recent response to my post on Flex Shortcomings by some guys from Farata Systems attracted my interest. The basic sentiment is let's bash the guy who said something bad about Flex. In this post I'm going to briefly make some remarks about the aforementioned reply. Lets not waste any time...

Generics is one of the most confusing Java elements. The lack of generics in AS is a plus. - Yakov


Perhaps I got lucky because I really didn't find generics all that confusing... but then again I actually made an effort to learn how to use them.

No dependency injection. This is just wrong. Flex is an event driven environment that allow lose coupling design of components. - Yakov


If that's how you like to manage your dependencies then good for you. I can't even see how the two are comparable so I'll stick with DI.

The code for model view controller you are basing your generics case upon is really bad way to do client side software. Not using generics actually allows for more generic code and better reuse of controls and libraries. That allows smaller libraries to be streamed to the client. It is common to take large Flex application ( >20,000 lines of code) built by Java shops, then re-build them using dynamic coding techniques and more generic code - ending up with less then 25% of the original size. - Anatole


If you like coding using dynamic typing that's great. To say that static typing is 'really bad' when the majority of Flex itself is written using static typing is ridiculous.

Multithreading is great thing - when it works - and that still require some skills in almost every environment. If you are up to multithreading, it is not hard to provide solution that instantiate and synchronize multiple Flash VMs. - Anatole


Do I look like a masochist? The bottom line is that for high response applications the lack of native threading in Flex can be a MASSIVE downside, you can butter it up all you like but the fact is we don't live in a single processor world anymore.

Every language and framework has it's strong and week points. I would not use Flex for a few things - but there is no comparable portable environment for building RIA at this point. - Anatole


Agreed, that was what I was trying to get across in my original article. Although Flex is top dog now, I won't assume that technologies like Silverlight aren't capable of stealing the show.

To end this post I must say that despite my discussion of the negative sides of Flex, it is a language that I love developing with. Unlike a lot of people out there I won't pretend it's perfect or assume everyone only intends to write a simple single threaded RIA client using it.

Like anything there is room for improvement in Flex but unless we have a development community that has the capacity to be self critical and identify those areas we may get left behind.

4 comments:

Anonymous said...

Farata Systems is betting the whole farm that Flex is the way to go. I'd imagine that's why they are so jihad 'bout it.

That dude Yakov Fain is not very credible. Someone called him out awhile back about "a lack of integrity" on a javalobby post....and they were dead right. I wasn't going to bother finding it...but well why not.

http://www.javalobby.org/java/forums/t92646.html?start=0

jola_b called him out.

Buyer / Client beware...

Shanon McQuay said...

Interesting indeed... Thanks for that link.

Darren said...

I agree that his tone was condescending and I've never considered dependency injection to equate to event-driven architecture. Using events in Flex to allow your components to be loosely coupled is not the same as DI (or really even that similar in my opinion).

I think his point about Flex being single threaded was a better one though. While effort should definitely be made by Adobe for the Flash Player itself to use some sort of built-in multi-threading, I can't see that within the current Flash Player model threading control could be given to programmers when the timing of the player is so tightly linked to CPU cycles on the host machine (this might be what you're saying too in a different way). I think this is the unfortunate downside of building an application framework on top of a time-based animation projector. I agree with you that this is a problem but on the upside if you accept this limitation, it does make programming in Flex a bit easier ;)

On the other point, I think jola_b was actually wrong and quite rude although Yakov could certainly have been more honest about his interest in Flex. Yakov was not lying - he's not affiliated with Adobe. Just because someone is a very enthusiastic proponent of a single technology of a company does not constitute an affiliation. I'm not sure why jola_b got so upset considering Yakov was actually being genreally positive towards Microsoft in the article and especially during the paragraph in question:

"I really liked their WPF and WPF/E offering for the rich Internet applications. WPF and WPF/E will seriously compete with Adobe Flex and Apollo leaving Java and AJAX way behind in the fields of Web and desktop application development. I am a Java developer and I am not affiliated neither with Adobe nor with Microsoft, which hopefully makes my assessment a bit more trustworthy."

I think Yakov actually has a lot to offer the Flex community and I've enjoyed reading some of his articles. Unfortunately, modesty isn't his strong suit.

Pete_Dude said...

I remember that post on dzone.

Darren, i think your biased mate, by his contributions to the flex community as opposed to what the post was about. Reading that post and how other people commented, it seems everyone else does disagrees with you too.

Just b/c he's not an Adobe employee doesn't mean he's affiliated. As jola_b pointed out, he has a HUGE financial interest in flex. Metaphorically speaking, he's the Haliburton or Blackwater to an Adobe administration. That is certainly affiliation of some type.

"I am a Java developer and I am not affiliated neither with Adobe nor with Microsoft, which hopefully makes my assessment a bit more trustworthy"

would be like Jim Cramer or a hedge fund manager du jour having a huge stake in some company stock and promoting it only to end with saying "You can trust me, I'm not affiliated"

People go to jail for that without divesting interests on wall street, which he did not do himself in the post.

jola_b could have certainly been nicer, but come on...when were computer guys considered to be the most socially adjusted? :)

Peace out and enjoy...its Friday