A blog Flex Shortcomings has been published on April 1. At first, I thought it’s a joke, but the author seems to be serious. These are some responses from Farata Systems.
By Yakov Fain: 1. IntellijIDEA 7.03 started supporting Flex, but this support is limited. This year the version 8.0 will be released which will compete with Flex Builder. And this is great, because tha latter has a lot of room for improvements. 2. Generics is one of the most confusing Java elements. The lack of generics in AS is a plus 3. No Concurrecny. Flex UI was designed as a single threaded app, with absolute different model of screen refresh if you compare it with Java Swing. Flash player applocates time slices (frame events) to the clients CPU (screen refresh, AS code, events). The calls to the servers that are originated from the client define callbacks that will be called when either results of faults are returned from the server. This model is cleaner than messing with the dispatch thread in Swing. Also, it eliminates "frozen screens". 4. No dependency injection. This is just wrong. Flex is an event driven environment that allow lose coupling design of components. If interested, I blog on the subj at http://flexblog.faratasystems.com/?p=246 5. No abstract classes. True, but this is no big deal. 6. No method overloading. Action Script has a way to define methods with variable argument list (see ...rest args). This allows to emulate method overloading if need be. 7. No constant in interfaces. True. I can live with that. By Anatole Tartakovsky: Vectors supporting types are the part of next release - and are billed more of performance/coding help then language enhancement. Most of the Java 5 constructs are not really applicable to ActionScript 3 - for fair comparison you need to use Java 7/8 with dynamic scripting language support - and then the way you speak that language changes. Compare how enum support evolved in Java over the years - starting with patterns - and you would think of language as of evolving environment. I was coming to Java in '97 from C++ and I thought of it as a very poor language. 10 years made it almost tolerable - but I still miss ability to redefine operators - does it really matter to anyone who never did it in first place?
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.
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
Dependency injections - again - Flex uses and promotes factories, gives you annotations both design time (code generator) and run-time (interpreting annotated type info). Combined with built-in introspection ( ie you have DYNAMIC language) it is much more then following pattern that fights with limitation of the language. With e4x XML/object model) and NATIVE getters and setters and Proxy objects you can build your beloved patterns - but time will be better spent on reading framework code and understanding patterns written natively using language
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. Learning new language is fun - as long as you approach it as learning process.
Disclaimer.Farata Systems is an independent software vendor and consultancy. We are not getting paid in any shape or form by Adobe for promoting Flex.
About Yakov Fain Yakov Fain is a managing principal of Farata Systems, consulting, training and product company. He has authored several Java books, dozens of technical articles. SYS-CON Books released his latest co-authored book , "Rich Internet Applications with Adobe Flex and Java: Secrets of the Masters" in Spring 2007. Sun Microsystems has nominated and awarded Yakov with the title Java Champion. He leads the Princeton Java Users Group. Yakov teaches Java and Flex 2 part time at New York University. He is an Adobe Certified Flex Instructor and an Editor-in-Chief of Flex Developers Journal.
From Application
Virtualization to Xen, a
round-up of the
virtualization themes &
topics being discussed in
NYC June 23-24, 2008 by
the world-class speaker
faculty at the 3rd
International
Virtualization Conference
& Expo being held by
SYS-CON Events in The
Roosevelt Hotel, in
midtown
As CFML developers start
to learn Java and move
into the realm of Spring
and Hibernate, it is very
important to stop and ask
'What Is ColdFusion?'.
ColdFusion, since CFMX,
has been a J2EE
application running
within a J2EE server
(JRun, JBoss, Tomcat,
Websphere, etc.). This is
important
My personal approach has
become to to let
ColdFusion do what it
does best, and no more.
No AJAX generation or any
of that silly UI stuff.
Leave that to the AJAX
frameworks, or Flex, or
whatever your UI is going
to be on the front-end.
That's what the UI tool
was designed for, CF
wasn't
I am going to go ahead
and contend that although
a good number of
ColdFusion developers can
grasp and understand Flex
very well, there are also
a good number of
ColdFusion developers who
have no business going
anywhere near Flex. Why
do I say this? I am a big
fan of Flex. I use it
dail
At Java One this week Sun
has been selling its year
-old-but-still-upcoming -
and definitely
late-to-the-party - Adobe
AIR- and Microsoft
Silverlight-competitive
JavaFX Rich Client
environment as a
potential
revenue-generator capable
of putting ads on mobile
applications and JavaFX
Scri
Xceed launched Xceed
Upload for Silverlight,
the commercial offering
in support of Microsoft's
promising new Silverlight
technology. The product
is available now for
purchase or as a fully
functional 45-day trial
on Xceed's website. Xceed
Upload for Silverlight
lets developers add uplo
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
A blog Flex Shortcomings has been published on April 1. At first, I thought it’s a joke, but the author seems to be serious. These are some responses from Farata Systems.
By Yakov Fain:
applicable to ActionScript 3 - for fair comparison you need to use Java 7/8 with dynamic scripting language support - and then the way you speak that language changes.
1. IntellijIDEA 7.03 started supporting Flex, but this support is limited. This year the version 8.0 will be released which will compete with Flex Builder. And this is great, because tha latter has a lot of room for improvements.
2. Generics is one of the most confusing Java elements. The lack of generics in AS is a plus
3. No Concurrecny. Flex UI was designed as a single threaded app, with absolute different model of screen refresh if you compare it with Java Swing.
Flash player applocates time slices (frame events) to the clients CPU (screen refresh, AS code, events). The calls to the servers that are originated from
the client define callbacks that will be called when either results of faults are returned from the server. This model is cleaner than messing
with the dispatch thread in Swing. Also, it eliminates "frozen screens".
4. No dependency injection. This is just wrong. Flex is an event driven environment that allow lose coupling design of components.
If interested, I blog on the subj at http://flexblog.faratasystems.com/?p=246
5. No abstract classes. True, but this is no big deal.
6. No method overloading. Action Script has a way to define methods with variable argument list (see ...rest args). This allows to emulate
method overloading if need be.
7. No constant in interfaces. True. I can live with that.
By Anatole Tartakovsky:
Vectors supporting types are the part of next release - and are billed more of performance/coding help then language enhancement. Most of the Java 5 constructs are not really
Compare how enum support evolved in Java over the years - starting with patterns - and you would think of language as of evolving environment. I was coming to Java in '97 from C++ and I thought of it as a very poor language. 10 years made it almost tolerable - but I still miss ability to redefine operators - does it really matter to anyone who never did it in first place?
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.
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
Dependency injections - again - Flex uses and promotes factories, gives you annotations both design time (code generator) and run-time (interpreting annotated type info). Combined with built-in introspection ( ie you have DYNAMIC language) it is much more then following pattern that fights with limitation of the language. With e4x XML/object model) and NATIVE getters and setters and Proxy objects you can build your beloved patterns - but time will be better spent on reading framework code and understanding patterns written natively using language
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. Learning new language is fun - as long as you approach it as learning process.
Disclaimer. Farata Systems is an independent software vendor and consultancy. We are not getting paid in any shape or form by Adobe for promoting Flex.