3 ms·
I was going to use flash as a frontend for my startup's technology. The thing is, I could already see the handwriting on the wall even a couple years ago. Adobe
by cpleppert 13y ago
I was going to use flash as a frontend for my startup's technology. The thing is, I could already see the handwriting on the wall even a couple years ago. Adobe was running around with their heads cut off trying to figure out how to develop flash. They just had no idea what they were doing. The compiler wasn't very good and simple performance problems with the VM and flash timeline weren't fixed at all. Instead, we got immediately abandoned projects that just sapped resources from more worthwhile endeavors. You basically had to use haxe to get good performance for certain applications.
With all of these issues known to Adobe you might suspect that they would move aggresively to increase the performance of Flash in general and Flex in particular. More integrated tools would have also gone a long way in improving the developer experience for flash/flex. Instead, Adobe went ahead with the strange creation otherwise known as Flex 4. Adobe decided that the main issue with Flex applications was their poor 'skinability.' Flash catalyst made no sense, and was totally unusable for serious application development. It was another tool (bringing the count to 3) for flash/flex authoring that did nothing to solve the problems with the platform.
To sum up, if Adobe had:
-aggressively targeted 3D gaming from the start
-built powerful authoring capabilities in the flash ide rather than supporting multiple development environments
-addressed performance, security and cpu issues with the plugin
-developed the as3 language
-not wasted time on mobile browser plugins
-trust the flash ecosystem to fill in gaps as they worked on the platform
the story might have turned out differently. Of course, they didn't do any of those things when they had the chance
- macspoofing 13y ago>You basically had to use haxe to get good performance for certain applications. Haxe did nothing you couldn't do with AS3 and Alchemy. >With all of these issues known to Adobe you might suspect that they would move aggressively to increase the performance of Flash in general and Flex in particular They did, by quite a bit. They also had parallel project for increasing performance with Stage3D and Alchemy. I get your point about Flex 4. It is a better UI framework than Flex 3, but not significantly better, so the engineering effort that went toward it could have been better spent doing something else. I also mirror your thoughts about "what could have been". My pet theory is that Stage3D should have been a FP10 feature (which would put it around the beginning of 2009 timeframe) and Adobe should have had some sort of (optional) browser-based app store to push Flash as a gaming platform. And since we're in hypothetical scenarios, AS3 should have been better designed, and cross-compilation to HTML/JS should have been there from the beginning. This may have given Flash some legs. But the reality is that sooner or later it would have been superseded by HTML anyway. Oh well, hindsight. Furthermore, looking at the performance gains that Google, Microsoft and Mozilla managed to squeeze out of a language like JS, one can't help but think how much faster ABC and Flash Runtime could been.
- pfedor 13y agoHaxe did nothing you couldn't do with AS3 and Alchemy. So, have they fixed this bug in Alchemy: http://forums.adobe.com/thread/487570 http://forums.adobe.com/thread/487570 It's kind of hard to use C++ when you're not allowed to make a copy of std::string. Last I looked into this in May 2012 this was still not fixed (reported in 2009.) There is a page on stackoverflow where someone explains how to work around this problem by rebuilding a patched version of libstdc++. But after applying that fix you hit other similar problems. Also, the sztrace() function exists and is documented, but they forgot to add it to the .h file, so if you want to log anything, you have to write: extern "C" { void sztrace(char*); }