Design goals

Matthew Tuck matty@box.net.au
Sat, 28 Nov 1998 17:20:55 +1030


Ursula Dreier wrote:

> from the postings I've read I got the impression that Ultra still
> is in a very early design state, but you seem to be determined to
> create (yet another) traditional, compiler-centric, heavy-optimized
> programming language.

I've heard this before though I don't know why you would say
"traditional".  Unless you call object-oriented imperative "traditional"
full stop, then I don't think it will be traditional at all.  There
hasn't been too much discussed about object-oriented theory, but I've
got a lot to say on the area.  When I've finished reading my current
book I'll have more to say about it.

I don't know what you mean here by compiler-centric and heavy-optimised
here, and why these might be bad.

> I'm assuming that you spend all this effort not just for fun, but want
> to result to be accepted by users as well.

Long term be accepted and used, yes, but I don't really want to ever fix
the Ultra language.  I'm very concerned with getting legacy-shackled,
and want this to be exploratory.  Users are free to publish and support
their own versions of the language.  If we shackle the language, we'll
be fixed by early bad design decisions and have to support a bloated
language.  Everyone else can shackle their language, I want something
different.

> For this, a PE must offer something which is currently missing or not
> done satisfactorily be other products. I think I have a proposal for
> such a thing.

Have you read the message archive?  There has been a lot of discussion
of what I call "intelligent editors" that you probably should read. 
I'll be in a better position to write about this more shortly.

> That would be a really easy-to-use, powerful integrated development
> environment (IDE) that allows creating big projects with minimal
> hassle.

That's basically the principle.

> I used to develop business database applications with a tool that had
> the potential to be such a IDE if they only  would have been developed
> it further in that direction, and if it had had an open enough
> architecture. I'm talking of SqlWindows from Gupta. But, alas, this
> isn't the case.

I haven't heard of this particular environment before.  I'm going to
look at Squeak Smalltalk shortly - Smalltalk is supposed to have a
fairly intelligent editor.

> Now I'm developing Windows-based stuff using MSVC++6.0 and, compared to
> SqlWindows, I really *hate* it. If I think back to the old days when I
> used C, that actually wasn't much better (not as complicated of course,
> but not really user-friendly either). But I didn't notice that, because
> I didn't know anything better!

I notice that too.  It's really hard to go back to something that is
more primitive than you're used to.  I have to do that at work, but at
least it does inspire me to do something better.  It gives me heaps of
ideas too.

> I can tell you exactly which things I feel most annoying about C++ (and
> traditional languages in general), but I won't go to lengths here. But

This is true but most languages don't have most of the faults of C++.

> I got *lots* of ideas how to do that.

Great.  Hopefully we'll find members' ideas overlap to a degree and
don't overlap to another.

> Maybe the resulting program would be somewhat slower than what could be
> produced using a language like C++, but who really cares? If it's good
> enough, so be it; otherwise, there is always the possibility for
> optimisations. But it would likely contain less bugs than a traditional
> program while being finished in less time.

Absolutely agree.  Usually it's inexperienced programmers that worry
about inefficiency.  I find at work that I often think "hmm inefficient,
but who cares".  I can only recall manually optimising an algorithm
twice, both times by algorithm change rather than low-level tweak.

By the other token, optimisation is pretty essential.  Some of the funky
language features out now can result in a 1000-time (guess) slowdown
without optimisation.

> Of course, I know that there are applications where speed is crucial;
> but there are already so many well-introduced languages for that
> purpose.

I believe that with inter-module optimisation, we eventually be more
efficient than most C compilers anyway.  Plus it's been said that
higher-level langauges let you develop much faster than lower-level
ones, leading in extra time to work on algorithms, which is where the
real speedup comes.

> Maybe you want to consider the idea to create such an IDE, which has
> the potential to be a really novel thing, instead of a traditional
> computing language.

Well, you haven't really said much in the message to make me think it's
much different to what we're planning.

> I would be very delighted to discuss this idea further, if you like.

Could you be more specific about what sort of things you're looking
for?  I'm intending to write an essay shortly to put on the page about
the sort of things you can do with an intelligent editor, once I've
compiled my rather large list.

-- 
     Matthew Tuck - Software Developer & All-Round Nice Guy
                              ***
       Check out the Ultra programming language project!
              http://www.box.net.au/~matty/ultra/