I think it’s sometimes a good idea to conduct a thorough hard-hitting interview with yourself about a subject to fully explore said subject. There now follows an interview between you (U) and me (I), where I pose and answer the questions I think you might ask of me, and I’m not going to hold anything back…
U: A little while ago you talked about redeveloping CaseDetective with Adobe Flex, is that still happening?
I: Sure is.
U: Great! How are you finding Flex then?
I: I’m loving it.
U: Care to expand on that, it’s not going to be a great interview if you don’t give me proper answers!
I: Oh, OK then, sorry.
I’m really enjoying developing with Adobe Flex, it’s name is very apt, the flexibility you have while developing is fantastic. Just being able to drag and drop a number of controls in Flex Builder’s great looking design view, and then switch to source view to add a few extra details is wonderful. The xml like nature of the mxml format makes this a breeze, especially with Flex Builder’s code hints and completion.
ActionScript (Flash Player’s and therefore Flex’s scripting language) is very clean and familiar, being based on the ECMAScript language specification. Anyone with even a smattering of experience in Java or any other modern object orientated language will get on famously with ActionScript. It’s deeply object orientated, it’s amazing what you can do with it, especially as the Flex and Flash libraries are pretty solid, and easy to extend.
U: It looks as though Flex Builder 3 is coming on strong, have you looked at it?
I: I switched to using Flex Builder 3 beta 1 a couple of months ago!
U: Isn’t that a bit risky, developing on a non-released development platform?
I: Some might think so, but in this case it works for me.
I started off with Flex Builder 2, bought it (and lot more from Adobe), and it does the job. However, when I saw some of the great new features in Flex Builder 3 I had to take a look.
I spent a good few weeks continuing main development in Flex Builder 2, and then checking out to Flex Builder 3 to see how it handled it. I had no problems at all.
When I played with the new AdvancedDataGrid I knew I couldn’t stay on Flex Builder 2, I wanted the multi-column sorting and grouping functionality the AdvancedDataGrid has to offer.
When I had good long think about it, I realised that I’m not planning to release CaseDetective 2.0 until early next year, which coincides quite nicely with the planned release schedule of Flex Builder 3. So for me it’s a strategically positive plan to develop with the better functionality available in the beta releases and submit any problems to the Flex Builder team, than to carry on using a version that doesn’t give me all of the whiz-bang features I want and that I’d want to upgrade around the time of CaseDetective’s release anyway. Better for me to get ahead of the game and be familiar with the new version of Flex Builder and the Flex SDK than to have to catch up later.
U: You mentioned the AdvancedDataGrid as a feature you’re really enjoying in Flex Builder 3, anything else you’re liking?
I: The other Flex Builder 3 features that I’m totally and utterly in love with are “Mark Occurrences” and Code Refactor support.
Mark Occurrences highlights every occurrence of a class, function, variable etc that matches the one your cursor is currently on. It’s sounds like a very simple feature, but believe me it’s a really intelligent and very useful one. When your cursor is on a variable name for example, every usage of the variable is highlighted in a nice blue colour, and in the right hand gutter is a little blue block that shows where the occurrences are across the whole file. If you click on one of those gutter blocks the code window moves to show it, which is great for quickly navigating from the declaration to the use of a variable etc. It’s hard to explain, but it works very well and has really sped up navigating source files when editing. What’s particularly nice is that it understands scope, so it knows that the same variable name declared in multiple functions is not the same variable.
The new Refactor contextual menu is very handy when you’re zipping along with development and find you could have named that class, function, variable etc better. Pick refractor -> rename, give it a new name, select Preview to see all the places that it’ll get updated, from the declaration to all the uses, hit OK and the jobs done. Wonderful, saved me a barrel load of time, and what’s more removes all reasons for keeping a rubbish name, making code much easier to read.
Flex Builder 3 Beta 2 was released just a few days ago, and having those two features has made this week one of my most productive and committed development weeks for a long time!
U: Thanks for giving us the time for this interview Ian, much appreciated.
I: You’re welcome, enjoyed it.