English version
Accueil     Ŕ propos     Téléchargement     Ressources     Contactez-nous    
Browse thread
[Caml-list] OCaml popularity
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ 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