Inside The dotNET

Microsoft products may be dangerous to your health, please consult a doctor before use. Do not use if you are pregnant, have diabetes, ulcers, high blood pressure, kidney or liver problems, asthma, or a heartbeat. Batteries not included, some assembly required.

Monday, October 31, 2005

Avalon Interface Constructor: Powered by Gorm 1.0!

I've finally decided to blog about the internal goings-on inside the Big M. I, and my colleagues, head up a large project to take free and open source software and make it work for us. Our lawyers have pretty much assured us that the GNU Public License (and other related viral licenses) are invalid due to them giving too many rights to the users; and by giving the code away, they are making the code public domain and giving up their copyright... or something like that. INAL, but thats pretty much the gist of it.

We are split up into different teams, each working on intergrating code from different projects into pre-existing Microsoft products. One team is taking code from the Apache web server, and putting it in IIS to increase stability and speed; another team is taking code written by Netscape/Mozilla and intergrating it into MSIE7 and Outlook 2008; and yet another team (headed by me) is using GNUstep, the premeire desktop environment, and the crowning achievement of the Free Software Foundation's work to rip off other people (mainly NextSTEP, who ripped off Apple, who ripped off us to begin with.)

Project Sierra Tango Foxtrot Uniform Apple (or, simply, STFU Apple) is the official name of the GNUstep intergration project. Right now, we're using Gorm 1.0 (which came out a few days ago) , an application like Apple's Interface Builder, but vastly improved and easier to use. For those that don't know what these applications are like, imagine being able to build an application using a simple yet powerful GUI tool, allowing you to take widgets and UI constructs from a set of palettes... but not generate any code doing this.

Gorm blows Interface Builder out of the water, and also does the same to the internally designed Avalon UI Builder. The AvalonUI tool was based on the one for Visual Studio 8 (which never came to pass), and generates code instead of lays out the UI at runtime. Having to compile everytime you hack the UI layout sucks. It also destroys anything Gnome or KDE brings to the fight.

We had originally thought using one of Gnome or KDE's tools, because Gnome and KDE are very popular... however, internally, almost everything Gnome and KDE sucks. Gnome uses this weird C API styling that makes zero sense to anyone, and KDE uses C++ that may be worse than some of the stuff Microsoft has written. (Yes, we've written some pretty bad stuff before, just to get the product out the door).

So, yes, this also means many of us (including my entire team, my boss, and her boss, and tons of people all over the company) are pushing for a shift from C++ to Objective-C. We already have a beta version of Visual Studio that can compile ObjC (using code taken from GCC).

Oh, and I forgot to mention, that screenshot is of the new Avalon Interface Constructor, only bugs at the moment are the multiple Window Inspector windows, and the fact that GNUstep applications do not show up on the taskbar.