[comp.lang.misc] Objective-C review

db@lfcs.ed.ac.uk (Dave Berry) (07/13/90)

In article <55517@microsoft.UUCP> jimad@microsoft.UUCP (Jim ADCOCK) writes:
>Well, perhaps you can suggest a simple language friendly to the neophtye
>programmer that can be used for large commercial projects?

You can find some useful ideas in Standard ML.  This is taught as a first
language by several colleges, and is also being used for large commercial
projects.

The reason it works is that it's expression based, so integers, functions
and modules can all be typed straight to the system (usually an incremental
compiler).  Neophytes can write simple programs without having to write
module interfaces and the like.

Also, the core language (i.e. the non-module part) uses type inference,
so people don't even have to specify the types of their variables.  Mistakes
occasionally cause confusing error messages, at least with existing
implementations, but in many ways type inference is a win.

I'm not claimning that Standard ML will meet your every need.  But some
of its features do seem to support the distinction between large and
small projects.  If you're interested in that, I'd recommend taking a look.

 Dave Berry, LFCS, Edinburgh Uni.      db%lfcs.ed.ac.uk@nsfnet-relay.ac.uk

	"ML don't stand for nothing!  ML *is* ML"  -- Spike Lee.

nick@lfcs.ed.ac.uk (Nick Rothwell) (07/16/90)

In article <5156@castle.ed.ac.uk>, db@lfcs (Dave Berry) writes:
>In article <55517@microsoft.UUCP> jimad@microsoft.UUCP (Jim ADCOCK) writes:
>>Well, perhaps you can suggest a simple language friendly to the neophtye
>>programmer that can be used for large commercial projects?
>
>You can find some useful ideas in Standard ML.  This is taught as a first
>language by several colleges, and is also being used for large commercial
>projects.
>
>The reason it works is that it's expression based, so integers, functions
>and modules can all be typed straight to the system (usually an incremental
>compiler).  Neophytes can write simple programs without having to write
>module interfaces and the like.

Also, being almost purely functional, there is little need to reason
about state in the various modular components. Hence, the type
inference system serves as an informal verification, if you like, of
the system - if it typechecks, then the chances are it'll work. This
is an interesting difference from OO languages where local state is
quite an important concept.

> Dave Berry, LFCS, Edinburgh Uni.

		Nick.
--
Nick Rothwell,	Laboratory for Foundations of Computer Science, Edinburgh.
		nick@lfcs.ed.ac.uk    <Atlantic Ocean>!mcsun!ukc!lfcs!nick
~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~
		   Ich weiss jetzt was kein Engel weiss