[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Where to use SELF - your opinion



We appreciate your interest in Self.

Self in its current form is a vehicle for research in two areas:
  1. programming language design
  2. advanced language implementation techniques

The current system is not intended to be the kind of product
that anyone would depend on for producing commercial software.
However, I don't see any deep impediments to producing a more
memory-efficient version of the system capable of delivering
speedy and reliable application programs, including programs
such as MS Word.

You might argue that compile-time type-checking in a requirement
for production software. I disagree. People currently write
application programs in type-unsafe languages such as C, C++,
and assembler. They rely on extensive testing to find all the
bugs that the compiler doesn't catch. Self is a pointer-safe
language with automatic storage management: these two features
eliminate a large class of extremely subtle errors. While Self
does not detect type errors until run-time, when an error is
encountered it is extremely easy to find and fix the bug.
Furthermore, the rapid turn-around time possible with Self
encourages more thorough testing in the early stages of
development.

A growing number of people are developing production software
in Smalltalk, which also lacks compile-time type checking. The
major drawbacks of using Smalltalk are speed and the limited number
of Smalltalk system vendors. Our implementation techniques have
addressed the speed problem with such languages, so I think
Self (or Smalltalk) would be a great language for developing
applications if only there were more vendors out there.

I'll be interested to hear your reactions to these opinions.

	-- John