Friday, June 18, 2010

What’s the Best ActionScript IDE?

This post is the introduction to an upcoming set of video demonstrations I will be recording to compare ActionScript IDEs. Please stay tuned over the following weeks to see the results.

The title of this post is a pretty loaded question without a clear answer. Over the next few weeks, I will introduce you to the reasons why you would choose a certain editor over another. For now, here’s a summary of your main options:

FlashBuilder (formerly known as FlexBuilder)

FlashBuilder caters to a certain crowd. Believe it or not, the #1 requested feature for FlashBuilder is improvements for “Design View”. Quite frankly, if find yourself spending most of your time in “Design View”, you’re probably perfectly happy using FlashBuilder and none of my arguments could convince you switch.

You can easily see Adobe’s strategy for developing FlashBuilder by watching any of their “build an RIA in 5 minutes” videos: 1. Create your forms in Design View, 2. Bind to some data using the Service Wizards, 3. Bingo! You have an Employee Directory App!

Also, since Adobe controls the Flex and AIR SDKs, they’ll always be first-to-market to support the latest and greatest features in FlashBuilder (as well as exploiting those features in their marketing).

Now, if you’ve found this development process lacking and think the features for everyday code writing/refactoring leave something to be desired, then you’ll definitely be interested in the time-saving and power features of other environments.

 

Closing Notes – Adobe’s recent move to only include the “standard” edition of FlashBuilder in CS5 Master Collection was extremely disappointing. There’s a great plugin from ElementRiver called SourceMate which actually makes FlashBuilder worth considering as a code editor. I honestly never gave SourceMate a fair chance since I found many of their dialog boxes annoying when I was on the beta. *update* – you can watch some screencasts of SourceMate’s features here. I’ll do a general review of the final build of SourceMate once I’ve chipped away at my current list of planned videos. */update* Lastly, there are plenty of Adobe videos showing off FlashBuilder, so my futures posts will only ever mention what I find lacking about FlashBuilder.

FDT - “Pure Coding Comfort”

Making the switch from FlashBuilder to FDT can almost seem magical. I’ve heard time and again that people who watch my introduction to Robotlegs video (which features many FDT shortcuts) are blown away by the speed at which you can crank out code.

If you’re anything like me, you spend 90% of your day with your IDE open. If you consider the incredible time-savings you get from that little “Quick Fix” dialog that lets you generate Classes/Fields/etc, you’ll instantly recognize the value of using FDT over FlashBuilder.

FDT has always focused on being the best ActionScript IDE around and have recently made a big push for supporting MXML markup for Flex 3 (and soon Flex 4). Also, they’re recent announcement of plugin support could get really interesting assuming the community steps up. I know I have a few things I’d love to work with them on.

I do have quite a few minor gripes about FDT, but most of them revolve around Eclipse limitations. I’ll get into those gripes in later posts. (I’ve never developed for Eclipse, so I don’t know how the future of Eclipse could help or hurt FDT…) The major gripe (and I know I’m not the only one) is their pricing scheme. I hate software pricing that’s broken into tiers. I understand the arguments for a pure/pro/enterprise (like Windows 7 home/pro/ultimate) and it’s obvious they’re trying to match FlashBuilder’s pricing matrix. In all honesty, the only reason I have an FDT license is because they give free licenses to open-source contributors. I definitely recommend taking advantage of their promotion right now to beta-test the Enterprise version of FDT4 for free until the final release especially to check out their new proflier.

Closing Notes – The addition of plugin support and potentially haxe support makes the future of FDT very exciting. I really hope they can get the community involved with plugins by providing the documentation and support needed for that kind of effort. Lastly, my future posts about FDT will mainly focus on comparisons between FDT and other editors to see where FDT shines and falls short.

IntelliJ IDEA - “Develop with Pleasure”

IntelliJ has historically been a fairly popular Java IDE (it’s actually called “IDEA”, but I think “IDEA” is a silly name for an IDE so I call it “IntelliJ”). The major difference between IntelliJ and FlashBuilder/FDT is that it is not based on Eclipse. So, when you open IntelliJ for the first time, you’re in very unfamiliar territory. I will actually be spending most of my time over the coming weeks talking about the features of IntelliJ to show you that learning a new “non-Eclipse” environment could be worth it to you. Besides, since IntelliJ isn’t Eclipse-based, you can have a project open in both FDT and IntelliJ at the same time to give you the best of both worlds.

It’s very apparent that IntelliJ is a “language agnostic” editor. What I mean by that is ActionScript/Flex support is more of a by product of IntelliJ supporting any language rather than focusing on supporting ActionScript (like FDT has done). You can read more about their support for various languages here. It’s a pleasure jumping between ActionScript, JavaScript, PHP, HTML, etc, and having everything work as expected (including crazy features like refactoring a JavaScript method to see it update in your HTML file!).

IntelliJ is moving very fast in improving their support for ActionScript/MXML. (I imagine they’re simply using their previous functionality for supporting JavaScript and XML then targeting the Flex SDK. This is obvious when changing the color styles for ActionScript and MXML). But also things like analyzing/inspecting/refactoring code (and other heavy-duty features) just work out of the box because those features were already there for other languages.

Even though IntelliJ isn’t as “pure coding comfort” as FDT for ActionScript development, I’m excited to show of some of the features you would have never known were possible unless someone showed you.

Closing Notes – In the interest of full disclosure, I have been talking with Jetbrains (the makers of IntelliJ) about getting paid to make videos for them so they can get more exposure. They mentioned they only wanted unbiased videos that show both the good and the bad. I’m perfectly content including those videos in this discussion (even if I do get paid) since I won’t be holding back on my opinion where they are lacking compared to FDT.

FlashDevelop

I’ve got to give a shout out to the FREE and OPEN-SOURCE FlashDevelop. They’ve been around for about 5 years now and have released steady updates (even through the transition from AS2 to AS3). It’s a fairly simple editor that doesn’t really compare feature-wise to FDT or IntelliJ, but it’s a solid, reliable editor that can get the job done for many scenarios.

If price is your main concern, then FlashDevelop is an excellent choice (although if you’re a student, you can grab FlashBuilder for free too). You can download and read more about the latest release here.

Flash Professional

The Flash Professional IDE is a great tool for designing Flash sites, but even Adobe recommends you buy FlashBuilder to supplement your coding experience.

Others: TextMate, VI, e-texteditor, Notepad++, etc, etc

Dear Hardcore Ninja Devs, I realize you love your templates, shortcuts, bundles, commands, etc, etc, and you’re probably so hard set in your ways you’ll never change, so just keep on truckin’.

Realaxy

Realaxy is a completely different approach to writing code (Language Oriented Programming vs. Object Oriented Programming) which makes it very difficult to compare to other editors. Realaxy is still in beta, but is showing great potential. I promise to talk about it more once it gets closer to release.

35 comments:

  1. I believe Flashdevelop deserves bit more of your time there. Lets not just say that its not comparable to FDT or FB. For some of us coders out here its the ultimate AS IDE. :) Being free, it has a huge advantage over any other tool out there.

    ReplyDelete
  2. johnlindquist12:51 AM

    I updated the language a bit to give FlashDevelop a little more respect. I know many people use it and love it, but you'll see in upcoming videos how much it's missing.

    ReplyDelete
  3. Thanks for this post John! I once posted a short article on FDT on my blog a had a lot of very emotional comments from Flash Develop users. I've been using both Flash Develop and FDT and my opinion is that FDT is a clear winner. But FDT costs a lot of money while Flash Develop is free. Later, when I started to do some 3D modelling I came across the same situation: I started with Blender (free) and moved to Cinema4D (way better but not free).

    Given this experiences, my recommendation would be: if you want to start with Flash, learn Actionscript and get into this business go for Flash Develop. Later, when your appetite grows and you start making money from this - buy FDT!

    (I never tried Intelij nor Flash Builder so I don't want to express any opinions about them)

    ReplyDelete
  4. Glad someone has the energy to pour into this :)

    I <3 IntelliJ

    ReplyDelete
  5. Mur4ik4:06 AM

    I think powerfull of FlashBuilder is just for develop Flex Applications (cool MXLM completion and visual designer). Editing/writing ActionScript in FB its realy pinfull and uggly.

    Powerfull of IDEA is refactoring (refactoring in IDEA best of all AS/MXML editors today). But its veeeeeery sloooow.

    Powerfull of FDT is realy coding comfort :), but projects is hardly configurable and not so user friendly. I hope in FDT 4 its can be very improved, plus open SDK for make plugins can step sthis IDE in new level.
    FDT4 look wery cool (espesialy in M2 release), I'll wait for M3 release, and maybe it would be my editor N1.

    Powerfull of FlashDevelop is super lightweight, fastest, userfriendly and intuitive projects configurations, project templates, snippets, opensource, has a cool code completion core and has a tons of great community plugins. INHO FlashDevelop miss two big sings - powerfull refactoring, and more smart contextual code generation for create fields and methods in other classes (like in FDT) but is close to it. And very soon that features will added in to this IDE.

    In FDT I realy miss some plugins from FlashDevelop :)

    So for now my main chois is FlashDevelop, FD team and community improve its everyday, and soon its can be a best ActionScript editor.

    ReplyDelete
  6. Mur4ik4:20 AM

    P.S. My dream of BEST fleshdeveloper IDE is:
    1. ActionScript completion, editing, navigating from FDT+FlashDevelop
    2. Аll MXML stuff from Falsh Builder
    3. Refactoring from IntellyJ IDEA
    3. Debugger and profiler from FDT
    5. Projects configuration/managment (project/files templates, snippets, SDK configurations, etс..) form FDT+FlashDevelop.

    I'll be very happy to see this features All-In-One IDE :)

    ReplyDelete
  7. That looks rather decent, interesting!

    ReplyDelete
  8. johnlindquist10:45 AM

    I actually did know all of that about FlashDevelop and it is a great option, but it's not the best. Tell you what, I'll make a video just featuring FlashDevelop during this series to help promote it.

    ReplyDelete
  9. johnlindquist10:52 AM

    I'm going to have to check out the plugin situation for FlashDevelop. I'm definitely guilty of not keeping up with the community of FlashDevelop and most of them look quite interesting. Do you have favorites? (or ones to avoid?)

    ReplyDelete
  10. johnlindquist11:02 AM

    I had heard of it a little while back, but I'm going to wait for it to get out of beta before I put effort into reviewing it.

    ReplyDelete
  11. Philippe11:15 AM

    Being "the best" depends a lot on personal taste and the work you have to achieve so it's hard to argue about that ;)

    For instance Eclipse may be the tool of choice for Android development but I'd be happy to trade some of its strength for something lighter and with a more reactive code completion.

    IntelliJ and Realaxy may have some interesting aspects but even Eclipse feels lightweight in comparison.

    ReplyDelete
  12. johnlindquist11:49 AM

    I concede that "best" is subjective and I should have added "in my opinion" to the previous comment. I'd be happy to proven wrong in anything that I claim. I'm glad to find other people are passionate about the tools they use to get their jobs done.

    ReplyDelete
  13. I've been using FlashDevelop for a couple of months now, I've switched to FlashBuilder and I think it has been good the migration, but I miss some really cool features from FlashDevelop, especially it's ease of use, its extremely lightweight and some code completion features. But FB is way more powerful and I'm going on my firsts steps on AIR and RIA's, but I'm still getting used to FB, is awesome.

    ReplyDelete
  14. Do you plan on going into the workflow advantages of the IDE's?

    Example, IntelliJ IDEA offers tools built right in that are indispensable in my opinion, the version control integration is wonderful, it notifies you of incoming changes, if you start working on a file that has been changed it tells you, and allows you to update or run a diff, it has tasks, contexts, change-lists, and even shelving all work very well, none of the others offer this out of the box, then you add refactoring, uml, templates, live templates, and plugin support and it just leaps to another level. Not to mention their responsive support team.

    PS. Relaxy looks like a ripoff from IntelliJ IDEA, looking at their libs folder has jetbrains stuff in it, this could be a good thing since they are focusing on ActionScript, I just hope they pull the same workflow support as well.

    ReplyDelete
  15. johnlindquist11:57 PM

    I will be covering everything you mentioned about IntelliJ, but in individual pieces rather than the entire workflow.

    I've been in close touch with the Realaxy team. They're approach to coding is completely unique compared to anything I've ever seen and comparing Realaxy to other editors is almost apples to oranges. As they get closer to a release, I'll give them more coverage.

    ReplyDelete
  16. Mur4ik12:04 AM

    Here is not complete yet list of plugins (some links are wrong)
    http://www.flashdevelop.org/wikidocs/index.php?...
    And here You can find all of plugins
    http://www.flashdevelop.org/community/viewforum...

    I've recommend this:
    1. Trace
    2. Duplicate
    3. SelectionUtils
    4. MultiGenerator
    5. QuickNavigate
    6. Export Project
    7. Export SWC
    8. AIR Application Properties Plugin
    9. Ant Panel Integration
    10. FD Flex Formatter
    11. Source Code Statistics
    12. Higlight Selected

    ReplyDelete
  17. Philippe12:49 AM

    Also it should be noted that FlashDevelop Source Control integration (SVN and GIT) is in private testing currently - it already works very well.

    ReplyDelete
  18. That's great! Don't forget about IDE Talk, if you need someone to be on the other end of that for your video let me know :)

    Also, I looked into Realaxy a bit more, and I am going to retract my ripoff statement, it is in fact based on IDEA using JetBrains Meta Programming System http://www.jetbrains.com/mps/index.html.

    I tested out the 1.0 beta and it feels pretty cool, I will definitely be following its development.

    ReplyDelete
  19. johnlindquist9:45 AM

    Yup, gotta love IDETalk. It's definitely on my list.

    ReplyDelete
  20. I tried all 3 and now use InteliJ, before I read you article.

    FlashDevelop is Windoze only and no debugger.

    .V

    ReplyDelete
  21. [...] http://johnlindquist.com/2010/06/19/whats-the-best-actionscript-ide/ KategorienAllgemeines Tags: Kommentare (0) Trackbacks (0) Einen Kommentar schreiben Trackback [...]

    ReplyDelete
  22. Why is IBM Elixir in the Adobe pricing matrix, it's not a.) an IDE or b.) an Adobe product. Your comments on FlashBuilder sound more like superficial complaints from someone who has not spent enough time actually using it, or you would know that the Adobe 5 min app writing demos you quote don't come close to showcasing the power FlashBuilder 4 has. The simple fact that IDEs like FDT don't support MXML, or Spark, automatically disqualify them as something Id consider working with to develop enterprise applications. It's not ok to not have support for the latest language enhancements and be behind the new language features learning curve, IMHO. ;)

    ReplyDelete
  23. johnlindquist9:03 AM

    I took a screenshot of the adobe pricing matrix... I have no idea why Elixir is in there :)

    FlashBuilder does have the best Flex framework support, but they've fallen far behind other editors when it comes to ActionScript (and this series is focusing on ActionScript).

    ReplyDelete
  24. I think this writeup or series is a good idea, but I think it would make it easier to compare and contrast with some sort of spreadsheet/table of features with features at top and IDE on the left to see which IDEs support which features. Then people more familiar with each individual IDE can compare the list, suggest corrections, and make a better informed decision without having to make and watch a bunch of videos.

    ReplyDelete
  25. johnlindquist9:18 AM

    From the classes I've taught, devs don't generally understand "features" (or their benefits) until someone has explicitly demonstrated the feature to them step-by-step. I see where you're going with your suggestion, but I've got to lay a lot of groundwork of examples/comparisons before I can make a sheet like that.

    ReplyDelete
  26. Carsten Schlipf9:36 AM

    Our major point for in favor of IntelliJ: Maven 2 Support. In case you are using Maven 2 with Flex-Mojos, every new member just has to import the project from the Maven 2 POM and has a ready to use development environment in a snap.

    ReplyDelete
  27. Free is huge, but you actually get a ton of features, control, and customization that you might not expect. In watching the "Introduction to Robotlegs" tutorial you see some wicked code hinting and code generation. It made me curious if Flash Develop had similar tools (as that is what I have switched too from Flex Builder 3), specifically for code generation, and it does! The breakdown is here (http://www.flashdevelop.org/wikidocs/index.php?...). You can just start typing a word, say "greetingDisplay" (like in the video mentioned above) and then click ctrl+shift+1 which brings up a mini-popup. You can then Declare variable, Generate function, Create new class, just as in FDT! In Flash Develop ctrl+shift+1 does a lot more too. Flash Develop is sick for its cost!

    ReplyDelete
  28. I have recently moved onto a mac and still use flashdevelop on fusion (I do have a decent mac). I have tried builder and fdt, all i do is code as3 day in day out and FlashDevelop is the simplest yet feature packed ide for me. Free doesnt come into it as I work for an agency that will buy what we need.

    It is all about how you use it and what you use it for but I was surprised, as some others here were, to see flashdevelop get a 5 line mention next to the others, and not really mentioning its fantastic project setup, code completion, plugins, refactoring (I may be wrong but you dont get that on fdt till enterprise)

    I am not a fanboy but I have converted a few onto FlashDevelop.

    ReplyDelete
  29. Thomas Thorstensson4:52 PM

    Incorrect. Flashdevelop 3.2 has debugger.

    Thomas

    ReplyDelete
  30. Thomas Thorstensson4:57 PM

    Flashdevelop is the best actionscript editor I ever used. And it's addictive. And now with debugger, and great code documentation tool fixes.

    ReplyDelete
  31. I am so much with John here, it is easy to build a feature matrix but it is not easy to explain the feature behind until you use the IDE.

    ReplyDelete
  32. It seems Powerflasher FDT4 M3 release has all your wish features built in now ;) http://www.fdt.powerflasher.com/developer-tools...

    ReplyDelete
  33. I found new one - CodeDrive at www.codedrive.com I use their product when it was an Eclipse plugin, but recently they changed platform to Visual Studio.
    FlashDevelop is good for me , but CodeDrive code completion is better sometimes. Perhaps because they have own(!) ActionScript 3 compiler.

    ReplyDelete
  34. I found new one - CodeDrive at www.codedrive.com I use their product when it was an Eclipse plugin, but recently they changed platform to Visual Studio.
    FlashDevelop is good for me , but CodeDrive code completion is better sometimes. Perhaps because they have own(!) ActionScript 3 compiler.

    ReplyDelete