[comp.software-eng] Levels of Mastery of a programming language

holt@turing.toronto.edu (Ric Holt) (03/21/89)

>From: janssen@titan.sw.mcc.com (Bill Janssen)
>Subject: Re: Good Design Strategies <Was comments on comments>
>
>Modula-3 and Turing both seem to be nice languages.  But I feel that we
>are past the point where a language that has all the "good" SE features
>can really be small and easy to learn.  We just know more about what
>helps to build good code.  What we need is a language that can be learned
>(and used) in steps, as a person learns the methodological steps that drive
>each part of the language.

In response to Bill Janssen's wish for a language that can be learned in
parts...

One of the design goals of the Turing language was to support "levels of
mastery".  You can learn a little of Turing to do a little programming.
Or a lot to do a lot.  Turing is, for example, used instead of BASIC
or Pascal in high schools, and is as easy to learn as BASIC.
It is also used to write Polyx (multi-CPU Unix) and its own portable
compiler.

Many Turing features "fold out" to provide increasing sophistication
to increasingly sophisticated users.  For example:
	put x
	put x : 10
	put x : 10 : 2
	put x : 10 : 2 : 1
These specify, in order, default (simple) output, output width of 10,
number of fractional digits (2), and number of exponent digits (1).

	Ric Holt

janssen@titan.sw.mcc.com (Bill Janssen) (03/25/89)

In article <89Mar20.170837est.4597@turing.toronto.edu>, holt@turing (Ric Holt) writes:
>Many Turing features "fold out" to provide increasing sophistication
>to increasingly sophisticated users.  For example:
>  [ simple formatted output example removed ]

This was a good idea, but a bad example.  C, FORTRAN, and CommonLisp all
have this kind of formatting capability.  What seems nice about Turing is
the ability to write a function, then add assertions, then add moduling,
then add exception handling, then add ...

Bill