Re: We need better tools to make better tools.

Max M (maxmcorp@inet.uni-c.dk)
Tue, 3 Dec 1996 00:44:24 +0100


> The problem with your idea is in the implementation.

Certainly. Had it been easy i would have done it 12 years ago on my C64 :)

> Developing a
> tool/language as you have described it is in some ways the Holy Grail of
> software development. Almost by definition, having detailed control
over
> the operation and features of a piece of software will add complexity to
the
> source code and development.

Yes thats right. But in some obscure way the purpose of a high level
language is not to make us able to do more. It is to make us able to do
less, but do it more efficiently.

Hardware - Binary code - Assembler language - c-code - multimedia tool

As a software pro you certainly know about the different program levels.
What i say is that it should be possible in some way to make a tool that
will improve our tools for making tools. I could easily imagine languages
like c++ or Java redone with a completely graphical interface that you
could learn to use by using it. Done right it should speed up the software
creation process. Perhaps it could even be so simple that artists and
psychologist could use it to improve its own interface with. If this could
be done recursively we could have a really strong tool in the end.
Perhaps the tool could be so powerfull that it would be easy to make
updates all the way back to the assmbly level.

> At the same time, to have true freedom in application development, you
must
> be able to write the low-level code yourself and develop your own objects
> from scratch.

Yes but it doesn't have to look like gibberish.

> Consider the mTropolis tool you described above Although, I have never
used it, I
> guarantee that it doesn't have all the features and options you would
have if you coded > the same application yourself using C++.

Thats right. and it isn't supposed to. It was just an example. But still
it's a pretty amazing example of how good an interface for a programming
language can be. if you have acces to a Mac try and download the trial
version and you will se what i mean.

> Suppose you built a programming tool for building software at a very
> abstracted level. If you told it "Build me a wordprocessor", it would
pop
> out a wordprocessor

No this wasn't what i meant. Tools/Languages like that has been around for
a long time.

> The difficulty in software development isn't in the coding. It is in
> defining the features you want, the properties of these features, and how
> the features interact with each other. This engenders a level of
complexity
> that cannot be avoided.

This is exactly what i mean. What i don't like about the traditional
languages is that the interface between the tool and the user is so weak.
The user has to know to much to use the tool. Its very nonintuitive.
As far as i know no one has still to try to make a graphic programming tool
that can be used for serious system development, and i don't mean something
like Visual c++ or any of those kind of interfaces they are just a hack.

> The limitation, therefore, isn't in the tools themselves, but in the
ability
> of humans to express exactly what they want the tools to do.

I want the tools to help the humans express what they want. I want the tool
to be something that you learn to use by using it.
Everybody (almost) agrees that the GUI is a better way to comunicate with a
computer than a command language. Everybody except system developers. Eh...
things that makes you go hmmm...

This way of thinking would move the problem of making powerfull software
tools away from research and into engineering. That's two completely
different things. Now maybe it wont work. It's so easy to go up the wrong
path. But i still think it should be worth an effort.

MAX M Rasmussen
New Media Director

Private: maxmcorp@inet.uni-c.dk
http://inet.uni-c.dk/~maxmcorp

Work: maxm@novavision.dk
http://www.novavision.dk/

This is my way cool signature message!!