New Flash-Specific IDE from JetBrains in EAP (No More, Alas!)

Update FEB 21ST, 2012:

JetBrains has announced that due to a lack of interest and poor prospects for Flash’s future adoption, Astella has been cancelled. The work has been rolled into IntelliJ IDEA 11.1 which will feature a much-improved AS3 project setup interface. I for one am terribly disappointed by the news. I was really looking forward to being able to use it in a team setting. We would all be so much more awesome than a team using Flash Builder. Alas, it is not to be, and while I have been working mostly in the HTML5/Rails universe for the past year, my Flash buddies tell me their job opportunities are drying up, and they’re being forced to migrate to JavaScript development. So we can’t blame JetBrains for making this decision, but it’s awfully disappointing.

Here’s another thought. I keep happening across threads online where people talk about how awful AS3 is and how the Flash API is a horrible mess. The trouble is, most of these people have probably never done any serious development in AS3. For the developer, AS3 is a very nice language. It accomplished most of the same things that other modern statically-typed languages do, like Google Dart, with optional types and closures. The API is very easy to learn and use. You don’t have to deal with cross-browser issues (unless you’re interfacing with JavaScript). You now have the ability to take full advantage of the GPU and have hardware-accelerated video decoding and shaders to play with. Frankly, it’s a lot more fun for developers who just want to get things done than JavaScript/HTML/CSS. (I suspect a lot of developers get a kick out of working around all the limitations of the HTML5 ecosystem and writing clever fallbacks, but they are a somewhat different breed.)

Of course Flash suffered from longstanding, hard-to-fathom bugs in areas like the NetStream class. Performance has always been a big issue, with a massive memory footprint and CPU usage. It’s very hard to make use of standard features like the scroll wheel, so most of the time we don’t. So as much fun as it is for developers it’s not nearly as great for end users. There’s the rub.

Partially this was Adobe’s fault. It took them far too long to roll out GPU acceleration and fix the Garbage Collector. Partially this was the fault of developers. I’ve seen a lot of sloppy code throwing null object reference errors in production. I’ve seen sloppy code with 3,000+ line classes and no attempt at memory management. Few people bother to detect activity and turn down the framerate of the app, so idle Flash assets usually consume a lot more resources than they need to. It’s also somewhat a consequence of what developers are tasked with doing. Flash is often used for marketing and the developers have little control over the vision of the app, so the limits are always being pressed with full screen video and tons of overlays and compositing, running inside ill-suited ad-network frameworks that were designed to be used by artists making simple gotoAndStop() movies in Flash Professional.

Anyway, what we are left with after all of this is a dying platform, but I think it is a much better one than people give it credit for being.


Just back from vacation and IntelliJ notified me that the version 11 Release Candidate was available. There are a lot of nice new features and an improved UI. It offers fullscreen support in Lion (yay for my Macbook Air). ActionScript has its own code-coloring section now. Honestly, the enhancement that excites me the most is the promise of lag-free typing (always the bane of Java IDEs). After using v11 for about a day, I have definitely noticed a big improvement in typing responsiveness, which makes it feel even more like a native app.

While perusing JetBrains development blog, I discovered that they are breaking the Flash/Flex functionality into a separate IDE (codenamed Astella). This is exciting because it will make it less expensive to convert Flash Builder teams to IntelliJ. JetBrains’ pricing is very reasonable so I expect this will the best choice for people who might previously have been considering FDT or Flash Builder Premium, and might sway some people away from FlashDevelop on the Windows side. If you are using FDT now, you should give IntelliJ/Astella a chance. The editing experience is much, much faster and less laggy, which is true “coding comfort”.

In addition, Astella is the only alternative to Flash Builder with a visual Flex layout UI. If you’re the masochistic type who likes to use Flex and peruse autogenerated code, then this could really be your cup of tea.

Unfortunately, at least with the current EAP (Early Access Program), setting up a project with an existing codebase is still a bit confusing, despite some efforts at simplification. I have been planning a post that will go over how to set up IntelliJ with an existing project, but I may delay that until v11 and Astella settle a bit feature-wise.

http://confluence.jetbrains.net/display/AS/Astella+EAP

I also want to highlight AppCode from JetBrains. It’s the only alternative to Xcode 4 if you want real IDE power when you work in Objective-C. And Xcode 4 requires too much mouse interaction for my tastes. Plus if you want to do iOS/Flash/HTML 5 development, these IntelliJ-based IDEs give you a consistent environment in which to work, which is certainly easier than flip-flopping between Xcode and Eclipse.

Another great feature? If your fingers get confused and try to type a method call with dot-syntax, AppCode converts it to bracket notation for you! It’s an amazing productivity boost if you are switching between Objective-C and another other language on a regular basis.

http://www.jetbrains.com/objc/

Comments