17 May 2002 (updated 17 May 2002 at 22:11 UTC)
»
tk, To me, Smalltalk is clearly
one of the
more elegant object-oriented languages I've seen.
However, I dislike object-oriented programming in general.
- Rarely are objects and the relationships bewteen them
meaningful to the problem being solved.
- The problem can always be solved in a more efficient way
using the von Neumann model. The dominant archiecture of
computers today.
- I don't like being limited to a single mode of programming.
As a system, Smalltalk is not very promising. The prominant
Squeak system is quite large and not that responsive
compared to existing systems. Improvement from the users
perspective requires consuming less resources, and a faster
response, among other things. It could be that the squeak
developers went a little feature crazy. Squeak doesn't seem
to have a purpose, other than to show how various things
might be coded in Smalltalk. Maybe it is possible to have a
much smaller smalltalk with adequate performance, and usable
applications.
Impovement though, is very much possible. Just look at the
slop that passes as functioning C code these days.
Impovements to existing systems can be made in speed,
resource consumpion, code size, simplicity, and the user
interface. All of these can be improved by orders of
magnitude, without coding everything in assembly. However it
is required that you start from scratch, in an extremly
capable language.
In this reguard, the most promising system to me is the colorForth system. The
philosophy of this system is to cast off as much bagage as
possible and start fresh. The system is %100 original code
by Chuck Moore. Performance is excelent. Although the code
is not purely optimized for speed like compiled C.
colorForth chooses a much simpler compiler instead. In fact
the compiler and the entire core software is under 2k.
Extensibility is at the heart of the lanugage, so the large
range in semantics required by a modern system can be
expresed elegantly in the language.
The reason why colorForth can achieve such improvement, is
that it relies purely on human ingenuity. The only limit in
how good the code is, is in the programmer writing the code.
The reason why the compiler does so little, is that the code
is already human optimized.
For software to improve, I believe we must rely primarily on
our own creative abilility. Automation of creative tasks
makes us the slave to the machine.