PRIVATE CROSSPLATFORM GUI DEVELOPMENT TOOL
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.