Terms and conditions for using and even looking at this homepage
Homepage index | Programming | 3D Graphics | Music | My CV | WebLinks

A private GUI development tool that I have worked on

I have been trying to create a private crossplatform GUI development tool in the years from 1995 to 1997. It was intended to become public freeware with full sourcecode when complete.

Evolution of the project

I started the project on the Amiga using ANSI C. This was after I started using Delphi where I worked at that time. I think Delphi is a very brilliant development tool except that it is written in non-standard Object Pascal, and that it is based only on Windows.

Soon I moved from C to C++, when I learned about Object Oriented Programming from Delphi. Later I learned about Objective-C, and rewrote the entire thing to Objective-C. During this effort I also created an Objective-C parser to be able to browse the classes in the sourcecode. The parser was very memory and CPU intensive though, because I took too much advantage of Objective-C's runtime typeinformation. I ported this Amiga version to Linux because Linux is a much better platform for software development.

On Linux I rewrote it all to C++ again, but this time the implementation was completely different from the first C++ implementation due to my new experiences from the Objective-C version. During this rewrite I made some very useful C++ code, such as an abstract AVL tree class which is able to maintain an AVL tree with any kind of data as index, such as a string-index or an integer-index.

I came to believe that I could use Objective-C as efficient as C++, and so I rewrote it all to Objective-C again. This time the implementation and design was a lot better than the first Objective-C version.

I stopped working on the project when I joined the GNUStep/NSXKit project, which is also written in Objective-C. I was blown away by the OpenStep API at that time, and thought that it would be better to join forces with the GNUStep people.

Now I have left the GNUStep/NSXKit project, because I have found a lot of limitations in the OpenStep ApplictionKit that I don't like. I am currently working on Warsaw, which I believe will realize my dream about a good freeware crossplatform GUI development tool with full sourcecode. Warsaw will even be programminglanguage independent because of the use of CORBA IDL. This programminglanguage independence might be a good thing for me - especially when I plan to do future development in SML97 ;)

What did I learn from the project?

I think I have learned a lot about designing development tools and APIs from all the ideas that I have tested. I also got a lot of spare C++ and Objective-C code, a lot of programming experience and a lot of experience in translating code from one programming language to another ;) I have also learned that it is very useful and important to look at the work that other people have done.

- ÁNOQ of the Sun

Modified: 1999-04-14