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