From: Michael Vanier <mvanier@cs.caltech.edu>
To: skaller@ozemail.com.au
Cc: warplayer@free.fr, oleg_inconnu@myrealbox.com, caml-list@inria.fr
Subject: Re: [Caml-list] Universal Serializer (was: productivity improvement)
Date: Wed, 10 Jul 2002 15:29:20 -0700 [thread overview]
Message-ID: <200207102229.g6AMTKB22278@orchestra.cs.caltech.edu> (raw)
In-Reply-To: <3D2C5B77.6060303@ozemail.com.au> (message from John Max Skaller on Thu, 11 Jul 2002 02:06:15 +1000)
> Date: Thu, 11 Jul 2002 02:06:15 +1000
> From: John Max Skaller <skaller@ozemail.com.au>
>
> >
> >BTW OCaml functional programming and memory management are two ways of
> >increasing productivity. Pattern matching on structures is also wonderful.
> >For most of the programs, I will say that the productivity rate against C is
> >around 1:3.
> >
> >Nicolas Cannasse
> >
> 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.
> 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. For a more
ocaml-specific example, I find that algebraic data types with
pattern-matching (and the compiler warnings that occur if you fail to match
all patterns) is something that ocaml has that java/C# don't and which
can massively improve the quality of code (as well as making it much more
comprehensible).
> 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? I agree that that's occasionally a minor pain, but it's hardly
in the same league with memory leaks etc. If that's ocaml's biggest
problem, then ocaml is the best computer language I've ever seen.
>
> 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.
Mike
-------------------
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
next prev parent reply other threads:[~2002-07-11 17:02 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-08 19:53 [Caml-list] productivity improvement Oleg
2002-07-08 20:14 ` Michael Vanier
2002-07-10 15:50 ` John Max Skaller
2002-07-10 18:56 ` Alessandro Baretta
2002-07-10 19:09 ` Jun P.FURUSE
2002-07-11 23:43 ` Pierre Weis
[not found] ` <15657.61603.221054.289184@spike.artisan.com>
2002-07-09 4:43 ` [Caml-list] Universal Serializer (was: productivity improvement) Oleg
2002-07-09 7:56 ` Nicolas Cannasse
2002-07-09 7:59 ` Nicolas Cannasse
2002-07-10 16:06 ` John Max Skaller
2002-07-10 22:29 ` Michael Vanier [this message]
2002-07-11 8:13 ` Nicolas Cannasse
2002-07-12 12:41 ` John Max Skaller
2002-07-14 12:25 ` [Caml-list] Statically detecting arrays bound exceptions ?? (was: Universal Serializer) Berke Durak
2002-07-14 13:24 ` Alessandro Baretta
2002-07-15 8:23 ` Xavier Leroy
2002-07-15 8:39 ` Noel Welsh
2002-07-15 21:22 ` Oleg
2002-07-15 22:44 ` Michael Vanier
2002-07-16 6:43 ` Florian Hars
2002-07-16 20:22 ` [Caml-list] " John Max Skaller
2002-07-16 20:36 ` Johan Baltié
2002-07-16 20:55 ` Hao-yang Wang
2002-07-17 8:25 ` Noel Welsh
2002-07-12 1:41 ` [Caml-list] Universal Serializer (was: productivity improvement) Eray Ozkural
2002-07-12 8:10 ` [Caml-list] OCaml QT bindings Stefano Zacchiroli
2002-07-12 17:30 ` Eray Ozkural
2002-07-12 10:37 ` [Caml-list] Re: productivity improvement Oleg
2002-07-12 11:23 ` Markus Mottl
2002-07-12 11:34 ` Oleg
2002-07-12 11:43 ` Markus Mottl
2002-07-12 12:59 ` Pierre Weis
2002-07-12 16:42 ` Markus Mottl
2002-07-14 20:44 ` Dave Berry
2002-07-14 22:13 ` Markus Mottl
2002-07-15 16:43 ` Alwyn Goodloe
2002-07-16 20:14 ` Dave Berry
2002-07-17 3:21 ` Eric Merritt
2002-07-15 9:39 ` Alessandro Baretta
2002-10-15 8:38 ` Eray Ozkural
2002-10-17 21:27 ` Dave Berry
2002-10-18 2:48 ` Eray Ozkural
2002-10-20 12:46 ` Dave Berry
2002-10-21 6:11 ` Michael Vanier
2003-05-10 20:41 ` Eray Ozkural
2002-07-12 11:43 ` Noel Welsh
2002-07-12 12:10 ` Markus Mottl
2002-07-12 13:44 ` John Max Skaller
2002-07-12 16:19 ` Alan Schmitt
2002-07-12 20:41 ` John Carr
2002-07-13 21:19 ` [Caml-list] Re: productivity improvementu Pierre Weis
2002-07-12 21:24 ` [Caml-list] Re: productivity improvement Brian Smith
2002-10-15 8:57 ` Eray Ozkural
2002-10-15 11:50 ` [Caml-list] eproductivity improvement Alessandro Baretta
2002-07-09 12:45 ` [Caml-list] productivity improvement Basile STARYNKEVITCH
2002-07-09 18:20 ` Shannon --jj Behrens
2002-07-09 19:16 ` Oleg
2002-07-09 20:31 ` Shannon --jj Behrens
2002-07-10 10:02 ` sebastien FURIC
2002-07-10 11:58 ` Dave Mason
2002-07-10 13:11 ` sebastien FURIC
2002-07-10 19:22 ` nadji
2002-07-10 20:15 ` Sieve of Eratosthenes Performance: various languages (Re: [Caml-list] productivity improvement) Oleg
2002-07-10 20:34 ` [Caml-list] " William D. Neumann
2002-07-10 20:47 ` [Caml-list] Re: Sieve of Eratosthenes Performance: various languages Alexander V.Voinov
2002-07-10 21:16 ` William D. Neumann
2002-07-10 20:49 ` [Caml-list] Re: Sieve of Eratosthenes Performance: various languages (Re: [Caml-list] productivity improvement) William D. Neumann
2002-07-11 22:30 ` [Caml-list] Array.resize ? Oleg
2002-07-11 23:06 ` Alessandro Baretta
2002-07-12 13:01 ` John Max Skaller
2002-07-12 18:24 ` Shawn Wagner
2002-07-11 23:31 ` Markus Mottl
2002-07-12 12:54 ` John Max Skaller
2002-07-12 13:23 ` Olivier Andrieu
2002-07-12 14:05 ` John Max Skaller
2002-07-12 16:09 ` Brian Rogoff
2002-10-19 9:16 ` Eray Ozkural
2002-10-19 22:15 ` [Caml-list] debugger losing contact with debuggee process Lex Stein
2002-10-20 10:06 ` Pierre Weis
2002-10-21 9:11 ` Xavier Leroy
2002-10-18 3:05 ` [Caml-list] Array.resize ? Eray Ozkural
2002-10-19 1:51 ` Oleg
2003-05-10 20:24 ` Eray Ozkural
2002-07-10 20:48 ` Sieve of Eratosthenes Performance: various languages (Re: [Caml-list] productivity improvement) Markus Mottl
2002-07-11 5:53 ` Anton E. Moscal
2002-10-18 3:07 ` Eray Ozkural
2002-07-10 15:39 ` [Caml-list] productivity improvement John Max Skaller
2002-07-11 8:57 ` Nicolas barnier
2002-07-12 12:16 ` [Caml-list] Is this a bug? John Max Skaller
2002-07-12 14:05 ` Xavier Leroy
2002-07-16 3:34 ` [Caml-list] productivity improvement Oleg
2002-10-18 3:13 ` Eray Ozkural
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200207102229.g6AMTKB22278@orchestra.cs.caltech.edu \
--to=mvanier@cs.caltech.edu \
--cc=caml-list@inria.fr \
--cc=oleg_inconnu@myrealbox.com \
--cc=skaller@ozemail.com.au \
--cc=warplayer@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox