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 OAA24757; Fri, 12 Jul 2002 14:41:43 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id OAA24752 for ; Fri, 12 Jul 2002 14:41:42 +0200 (MET DST) Received: from sunny.pacific.net.au (sunny.pacific.net.au [203.25.148.40]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g6CCfef25414 for ; Fri, 12 Jul 2002 14:41:40 +0200 (MET DST) Received: from wisma.pacific.net.au (wisma.pacific.net.au [210.23.129.72]) by sunny.pacific.net.au with ESMTP id g6CCfcSs022130 for ; Fri, 12 Jul 2002 22:41:38 +1000 (EST) Received: from ozemail.com.au (ppp115.dyn1.pacific.net.au [61.8.1.115]) by wisma.pacific.net.au with ESMTP id WAA05584 for ; Fri, 12 Jul 2002 22:41:36 +1000 (EST) Message-ID: <3D2ECE7F.5040108@ozemail.com.au> Date: Fri, 12 Jul 2002 22:41:35 +1000 From: John Max Skaller User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.2.1) Gecko/20010901 X-Accept-Language: en-us MIME-Version: 1.0 To: caml-list@inria.fr Subject: Re: [Caml-list] Universal Serializer (was: productivity improvement) References: <200207081952.PAA28813@hickory.cc.columbia.edu> <15657.61603.221054.289184@spike.artisan.com> <200207090442.AAA05638@hickory.cc.columbia.edu> <001f01c2271e$8037adf0$d100a8c0@warp> <3D2C5B77.6060303@ozemail.com.au> <200207102229.g6AMTKB22278@orchestra.cs.caltech.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Michael Vanier wrote: >>You must be an academic.:-) Try between 10:1 and 100:1, >>*assuming* that any libraries you need are available, >>and a reasonably complex piece of software. >> > >I agree, but the productivity increase is going to depend a lot on the >experience and skill of the ocaml programmer. As a newbie, I find myself >using a lot of lame imperative idioms before discovering more elegant (and >concise) functional ones. > Ocaml does imperative programming better than C and C++ too. So even your 'lame' imperative code can be produced faster and more reliably in Ocaml. Example: values (declared in let bindings) scope better. Variables (references) must be initialised -- sometimes this is a pain, but usually it is a bonus. >You just can't underestimate how difficult it is to find >bugs in C codes of reasonable size. Such bugs almost never >happen in Ocaml. > > >Definitely, although the same could be said for java or C#, if by "such >bugs" you mean memory leaks and memory corruption. > Well, if you run java or C#, you still have to cast 'object' down, and so you can get run-time errors -- where using Ocaml this class of error cannot happen. Ocaml run time errors include array (and string) bounds exceptions and infinite recursions: static type checking could detect the first, but not the second. >>The biggest problem in Ocaml is type inference, >>and the resulting loss of localisation of error diagnostics, but >>such compile time errors can be resolved *definitely*; >>that is, you know for sure when you've fixed them >>(because the compiler stops hassling you). >> > >What do you mean by "loss of localisation of error diagnostics"? Do you >mean that a type error in one location giving an expression which can still >compile (but to the wrong type) results in an obscure error message >elsewhere? > Yes. >I agree that that's occasionally a minor pain, but it's hardly >in the same league with memory leaks etc. > Agree. >If that's ocaml's biggest problem, > It's one of them (IMHO) >then ocaml is the best computer language I've ever seen. > I agree :-) >Ohhhh.. just imagine if GTK/Gnome/Gui stuff on RH linux >were written in Ocaml .. it might actually work! > >*drool* I would totally *love* to have this. > heh :-) -- John Max Skaller, mailto:skaller@ozemail.com.au snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia. voice:61-2-9660-0850 ------------------- 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