This first day was mostly as excited as I anticipated it. I discovered a lot of great stuff today and got to meet a couple of top-notch geeks as I like them. Sometimes it gets frustrating to work every day with people who seem to run away as soon as you pronounce a word they don’t know, instead of getting closer to you and say “what is it you just talked about? I want to know more about it!”. That’s part of why I like attending such conferences: in every guy – and in the case of MAX, in every lady – there is a small innocent and curious kid ready to marvel at everything (s)he sees, and willing to share with you everything (s)he knows. And that’s really a stimulating experience.
But let’s get back to the content covered today.
The day started with an excellent keynote. After the usual marketing stuff, we were blessed with a few very interesting demos showing how the Flash Platform as a whole covers what Adobe sees as the three most important evolutions in our industry: cloud computing, social computing and device portability. The two most interesting demos I’ll remember of are HobNox and Cocomo. HobNox is a virtual synthesizer ala Reason but running within Flash Player 10 that can mix audio loops. Very impressive design. Cocomo is even more useful for what I’m working on: it’s an Adobe framework and API that allows you to integrate social features into your Flex applications in no time. They also covered a few of the new features of Flash Player 10, like Pixel Bender and print-quality text, that were pretty impressive.
Next session was about the future of Thermo – now known as Flash Catalyst, so that there are 2 letters to fit in the logo scheme of Adobe products I guess – and Flex Builder. Flash Catalyst is at least as impressive as what I remember of the last Thermo demo I’ve seen. But as a guy I met later cleverly noticed “it’s already hard to find good designers, it’s going to be even harder if we ask them to design user interactions too”. We’ll see, but this tool definitely bridges a gap. As for Flex Builder 4, Heidi Williams demonstrated 10 new features that are really interesting… if you’ve never worked with anything else than Eclipse. I mean « generate getter/setter » and file templates were two of these features. I mean, come oooon! Start by asking yourself why those features were so hard to add to Flex Builder 2 in the first place. Ah, that’s right, Flex Builder is built on top of Eclipse. And given that Flash Catalyst is built on Eclipse as well, I guess they’re in it for good. At some point, I guess I’m just going to forget about the visual designer and get back to my beloved IntelliJ.
After some excellent pasta and cheese I attended a session by Matt Chotin about extending Flex components. It was mostly about the Flex component lifecycle but it was very interesting to put it in perspective with some Flex Gumbo preview. Flex 3 component architecture is called Halo, and its main issue is that it pretty much mixes up presentation and behaviour, even though you can apply some superficial styling with CSS. Flex 4 component model is called Spark, and it changes everything. Now UI components focus on behaviour and all the appearance of components is externalized, similar to what Swing does with Look And Feels, but in an easier-to-apprehend fashion. For example you have a Flex component called FxRange, which can look like a spinner, a scroll bar, a tracker, or anything you can imagine. That in combination with Flash Catalyst is going to ease the development of really neat applications.
Then I intended to go see a talk about Flex testing, but I’m definitely not keen on writing tests so when I received an email notification from our issue tracking system at You And The World, it was kind of a relief. It was a problem with the application getting stuck somewhere in an infinite loop or something that made Firefox hang on indefinitely. I tried to figure out what it was, but I didn’t know where to put my breakpoint and how to debug it. But guess what was the topic of the next session on my planning: « debugging and profiling in Flex Builder 3 ». So I went there, learnt a few performance tips and tricks, and got the opportunity to ask Mike Jones how he would deal with my situation. It turned out that the profiler could help me. Well, it could have, but I found a workaround: I refactored my code to use cleaner constructs based on states instead of includeLayout tinkering, and boom! Problem solved. But still, Mike Jones’ talk was very interesting.
Overall, a very interesting first day. I got to talk with a couple of guys about Coldfusion (which I don’t really know, but you know, asking and sharing…). Tonight, I had a hard time finding a place to eat… and I didn’t find one, so tomorrow I’m gonna have a great breakfast ;o)
That being said, I’m going to watch a few more episodes of Sarah Connor and get to sleep. Tomorrow is another geeky day…