Why Amethyst Was Programmed in Amethyst
These days much of our development work on Amethyst is done by programming Amethyst in Amethyst. Confused? Then maybe the article in this month’s Flash and Flex Developer’s Magazine (5/2009) will shed a little light...
In essence, when you create any IDE for Visual Studio, you program and debug it in Visual Studio. We already have lots of experience of doing this in the development of our Ruby IDE, Ruby In Steel. When, for example, we developed our Ruby debugger we first wrote a whole lot of (mainly) C# code to create the debugger in one copy of Visual Studio then, when we ran our code, a second copy of Visual Studio popped up with the Ruby In Steel IDE running inside it. At that point we were able to run our Ruby debugger in the second copy of Visual Studio and simultaneously debug our debugger in the first copy of Visual Studio.
That may sound confusing but, in fact, things have been a whole lot more complicated in the development of Amethyst. In the early stages, the development process was similar to that of Ruby In Steel: one copy of Visual Studio contained the code of Amethyst; the second copy contained a running version of Amethyst in which we could edit and debug ActionScript.
But things got much more complicated when we started work on the integrated Flex design environment, The Amethyst Designer. This is a Flex application written in ActionScript. We used Amethyst (running, you will recall in copy #2 of Visual Studio) to write and debug the ActionScript code of the Amethyst Designer which itself formed a part of the copy of Amethyst in which it was being developed.
In summary this was now the situation:
VS #1 -> contains the C# code of the Amethyst IDE
VS #2 -> is executing a running copy of the Amethyst IDE containing the ActionScript code of the Amethyst Designer
VS #2 -> includes a running copy of the Amethyst Designer which is currently being developed in...
...VS #2 -> yes, the same copy of VS in which it is being developed (recurse until dizzy....)
This kind of development scenario certainly takes some getting used to. I’ve gone into much more detail in the article I wrote for this month’s Flash and Flex Developer’s Magazine. This magazine is, incidentally, a great resource for Flash and Flex programmers. It’s a high-quality bimonthly which is available as a free PDF download. The current issue has over 100 pages so if you are serious about Flash and Flex, be sure to grab a copy.