RE: software progress (RE: Hardware Progress: $319/GF)

From: Ben Goertzel (ben@goertzel.org)
Date: Wed Sep 04 2002 - 21:37:45 MDT


> > Saying software tech hasn't progressed because it hasn't
> progressed in *your
> > directions of choice* is like saying hardware tech hasn't
> progressed because
> > it hasn't moved substantially toward massively parallel computing...
> >
>
> Not at all and I am surprised at such an empty dismissal from you.

...

> I have seen studies that say that a team of good Lisp coders can
> get 20 times more done than a comparably good team in Java, C++
> or C# in equal time. If this is even approximately true then
> any savvy project should forget about *popular* languages and
> grab such an overwhelming advantage.
>
> Who are you kidding about the importance of vidual debuggers?
> The ones for Java and such are just not that good, certainly not
> as general or powerful as facilities in Smalltalk and Lisp for
> quite some time.
>
> - samantha

Apparently we disagree on many issues regarding programming languages and
software.

Metrics are much fuzzier and vaguer in software than in hardware; there's no
really clear way to compare two programming l
languages.

There are very smart and experienced people who claim that "X is the best
programming language, by far", where X=C++, C#, VB.Net, Java, LISP, Haskell,
Smalltalk, Refal, etc.

This is not the same for hardware. There is *some* disagreement, but there
is reasonably wide agreement regarding which chips are better than which
other ones. There's no one claiming that the 386 chip is better than a
Pentium, for example.

I don't doubt there are studies "proving" that LISP is the best language in
various senses. I'm sure there are also studies "proving" the same things
about C++, Java and other languages.

The situation is a bit like politics. There are really smart Democrats, and
really smart Republicans, and really smart anarchists, and really smart
Libertarians, and they don't agree on a lot. Yet even so I feel we've
advanced a lot politically in the last century. But others may disagree,
some people may think we've gone backwards... there are not clear metrics.

My own feeling is that the different languages have different strengths and
weaknesses. If you're programming a symbolic AI application, then my bet is
that LISP is the best language. If you're programming a multi-tier DB
system where performance is important but performance requirements are not
extremely rigorous, I'd go with Java (but I don't have experience with C#,
which might be just as good for this). If you need to do a multithreaded,
distributed system with a variety of complex forms of high-volume,
high-performance-required number-crunching on numbers stored in complex data
structures (e.g. Novamente), my bet is on C++ ....

Intuitively, I agree with the sentiment that software has not progressed as
fast as computer hardware. However, I still feel that computer software has
progressed *a lot*.

If you assume that LISP is the apex of software technology, and observe that
things have not progressed much in LISP over time, maybe you're right. If
you take a broader view, and assume that different programming languages and
methodologies mostly all have value, then you find there has been a lot of
progress (in the non-LISP areas of software).

For example, the tools available to game programmers now are amazing
compared to what was there 10 years ago. These tools are motivated by
advances in hardware, but not directly implied by it. You can now write a
complex action game using someone else's game-engine toolkit and have it
work really well. This was not the case even 5 years ago. And it's not the
case in LISP right now, only in C++ (the language of choice for writing
games).

C++ does suck in many ways as a language. Standard chips also suck in some
ways, compared to what's possible. But known shortcomings don't imply lack
of progress.

-- Ben G



This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:40 MDT