Browse thread
[Caml-list] OCaml popularity
-
Graham Guttocks
- Gerd Stolpmann
- Nicolas Cannasse
- Martin Weber
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Fred Yankowski <fred@o...> |
| Subject: | Re: [Caml-list] OCaml popularity |
Richard Gabriel, author of the famous "Worse is Better" paper about
C/Unix vs Lisp, makes some interesting points in his recent book while
discussing his theory of what it takes for a programming language to
be accepted and evolve:
The second mandatory feature is that the language cannot require
mathematical sophistication from its users. Programmers are not
mathematicians, no matter how much we wish and wish for it. And I
don't mean sophisticated mathematicians, but just people who can
think precisely and rigorously in the way that mathematicians can.
For example, to most language theorists the purpose of types is to
enable the compiler to reason about the correctness of a program
in at least skeletal terms. Such reasoning can produce programs
with no run-time type errors. Strict type systems along with other
exemplary behavior, moreover, enable certain proofs about
programs.
Well, the average programmer might be grateful somewhere in his
heart for the lack of run-time type errors, but all he or she
really cares about is that the compiler can produce good code, and
types help compiler writers write compilers that do that.
Furthermore, types that try to do more than that are a hindrance
to understanding. For example, abstract data types allow one to
write programs in which the interface is completely separate from
the implementation. Perhaps some large programming teams care a
lot about that, but a lot of programming goes on in ones and twos,
maybe threes. Types of this variety, with complicated syntax and
baffling semantics, is a hindrance to programming for many of
these folks. Sure, someday this will be important as the size of
programming teams increases and as the level of mathematics
education increases (no laughing, please), but today it is not.
Inheritance and polymorphism are examples of programming language
concepts requiring mathematical sophistication to understand.
[From "Patterns of Software", 1996, Richard P. Gabriel, chapter titled
"The End of History and the Last Programming Language"]
--
Fred Yankowski fred@ontosys.com tel: +1.630.879.1312
OntoSys, Inc PGP keyID: 7B449345 fax: +1.630.879.1370
www.ontosys.com 38W242 Deerpath Rd, Batavia, IL 60510-9461, USA
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners