From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id UAA16183 for caml-redistribution; Sun, 22 Aug 1999 20:15:25 +0200 (MET DST) 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 KAA13507 for ; Sun, 15 Aug 1999 10:12:55 +0200 (MET DST) Received: from cs.Technion.AC.IL (csa.cs.technion.ac.il [132.68.32.1]) by nez-perce.inria.fr (8.8.7/8.8.7) with ESMTP id KAA10332 for ; Sun, 15 Aug 1999 10:12:53 +0200 (MET DST) Received: from localhost (roy@localhost) by cs.Technion.AC.IL (8.9.0/8.9.0) with SMTP id LAA29416; Sun, 15 Aug 1999 11:14:50 +0300 (IDT) Date: Sun, 15 Aug 1999 11:14:50 +0300 (IDT) From: Friedman Roy To: "Frank A. Christoph" cc: STARYNKEVITCH Basile , caml-list@inria.fr Subject: RE: convincing management to switch to Ocaml In-Reply-To: <000a01bee4bc$68ccf640$0150ebca@nextsolution.co.jp> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: weis I currently use OCaml as part of an industrial project, although it is easier when you have your own startup. At the same time, I am also on the faculty at the department of computer science at the Technion. From my experience, when I finally convince students to try OCaml, they learn it VERY quickly, and usually immediately become OCaml advocates. I guess the main problem is that university graduates get the wrong message in all those software engineering courses regarding how to design software and what languages should be used. They are basically led to beleive that good programming prectice == Object Oriented programming == C++ or Java. Of course, these students then go to industry, and soon become the "management" that is hard to convince to try other approaches/languages. Roy > (You have my condolences. :) > > I frequently see people argue that functional languages are too hard to > understand and use, and that you have to be a guru programmer to use them. I > am fluent in C++ and I use functional languages because they areeasier to > use than conventional languages. I don't consider myself an especially good > programmer, so I need as much help from the programming system as I can get. > > Conventional languages shift all the burden onto the user (= the > programmer): withoutgarbage collection, he has to do the memory management; > without parametric polymorphism, he has to remember which type to cast a > pointer back to; without higher-order functions, he has to duplicate code > and remember to maintain both versions; without type safety, he has to code > defensively and there is a greater cognitive burden in general. The user has > to do all this stuff, so compiling the language itself is easy because, if > it runs, it's pretty much guaranteed to run fast. > > With typed functional languages, the burden is on the compiler and the > implementors. The language is more expressive and declarative, so the > programmer is freer to concentrate on the problem at hand. Let the > implementor figure out how to compile it well; as a programmer I want _less_ > things to worry about. > > Maybe if I was Linus Torvalds or Xavier Leroy :) or some other world-class > programmer, I would be using C or C++. It's partly because I'm _not_ that I > like to use functional languages. > > --FC > >