From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id RAA23351; Tue, 11 Mar 2003 17:49:40 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA23164 for ; Tue, 11 Mar 2003 17:49:39 +0100 (MET) Received: from ontosoft.com ([209.101.228.108]) by nez-perce.inria.fr (8.11.1/8.11.1) with SMTP id h2BGQTX14118 for ; Tue, 11 Mar 2003 17:26:29 +0100 (MET) Received: (qmail 32262 invoked by uid 1001); 11 Mar 2003 16:26:27 -0000 Date: Tue, 11 Mar 2003 10:26:27 -0600 From: Fred Yankowski Cc: caml-list@inria.fr Subject: Re: [Caml-list] OCaml popularity Message-ID: <20030311162627.GA32188@ontosoft.com> References: <20030306232731.7374.qmail@web10305.mail.yahoo.com> <005d01c2e76f$92d0f8b0$2713f9ca@WARP> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <005d01c2e76f$92d0f8b0$2713f9ca@WARP> User-Agent: Mutt/1.4i X-Spam: no; 0.00; yankowski:01 ontosys:01 caml-list:01 gabriel:99 run-time:01 laughing:01 keyid:01 449345:01 deerpath:01 batavia:01 60510:01 9461,:01 compiler:01 compilers:01 she:98 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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