~ January, 2006 ~


Flex beta 1 available tomorrow + Announcing free SDK

Hi folks.

Two (three?) big pieces of news:

* The Flex Builder beta will be available at labs.adobe.com tomorrow. Go get it!

* We have made the decision to make the Flex SDK available for free (as in beer). We are not talking about the beta. Betas are always free. We are talking about the shipping product. There will be a free version of the Flex SDK.

This includes:
* The MXML/AS compiler
* The Flex class library
* The Flash player (which was already free)

* We have also made the decision to make a version of Flex Enterprise Services available for free.

I don’t know about you, but to me, this is pretty exciting news.

We have always said that we want to make Flex widely available. Roughly speaking, we’re shooting for 1M Flex developers in 5 years. This is a bid to change how people make applications on the Web. Making the SDK free is an important part of that strategy.


Getters, setters, and the difference between Java and AS

After spending a good part of Christmas tinkering around with AS and Flex, I’ve decided to stop trying to put getters and setters around member variables unless needed. This may make my Java friends recoil in horror, but I think it makes sense.

When it comes to getters and setters, Java and AS are quite different, in that getters and setters are part of the core ECMAScript language, whereas in Java, getters and setters are done through a naming convention.

In Java, it is almost never a good idea to make member variables public. If you do decide to make member variables public and then later want to change the interface to use getter/setter functions, you will have to modify all callers of your interfaces, which is onerous at best and in many cases, not possible (expecially when you are creating code that is used by other people).

Meanwhile, in ECMAScript, the externally visible interface doesn’t change when I go from a member variable to a getter/setter and back again. In some sense, the interface hiding is already accomplished in the language. Creating public member variables is “safe” in this sense.

Perhaps this is already obvious to all the AS-heads out there, but it took me a bit of time to get used to the concept. Now that I’ve flipped this bit in my head, I’m going to go ripping out all extraneous getters and setters from my code!