caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Brian Hurt <bhurt@spnz.org>
To: John Goerzen <jgoerzen@complete.org>
Cc: Issac Trotts <ijtrotts@ucdavis.edu>,
	Ocaml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] Dynamically evaluating OCaml code
Date: Thu, 8 Apr 2004 12:15:52 -0500 (CDT)	[thread overview]
Message-ID: <Pine.LNX.4.44.0404081137180.25700-100000@localhost.localdomain> (raw)
In-Reply-To: <20040408133727.GC29195@excelhustler.com>

On Thu, 8 Apr 2004, John Goerzen wrote:

> On Thu, Apr 08, 2004 at 01:24:45AM -0500, Brian Hurt wrote:
> > majority of that in the eval function- so you're talking north of a
> > megabyte of code.  As an application, that's small.  As a library, that's
> > huge.  It's of the same size as linking in libgtk (1.3M).  No, you want a 
> > small, simple language.  Although this might not be so bad- libperl.so on 
> > my machine weighs in at 3.2M.
> 
> Indeed, and in fact:
> 
> -rw-r--r--    1 root     root      1073392 Feb 24 02:34 /usr/lib/libpython2.3.so.1.0
> 
> Python is often used as an embedded extension language as well.

I think I've talked myself into that Ocaml, at least the VM part, should 
be embeddable.

> 
> > As a side note, I don't see Ocaml as a science project.  It's a pragmatic
> > language, in that it doesn't automatically assume it knows what's best,
> > but instead provides the programmer the tools he needs to get the job
> > done.  As reflected in it's design decisions, the people designing Ocaml
> 
> Careful; that sounds like you're describing Perl :-)

I've heard that used to describe Perl, C++, and Java, in different ways.  
As such, I'm using it as a benchmark for what a "usable" language is.

> > Wandering into the arena of suspect analogy, if C and C++ are the blue
> > collar assembly line workers, tightening bolts by hand, than Ocaml is the
> > robot repairman maintaining the whole factory of robots.  He's every bit
> > as blue collar and about getting real work done, but more educated and a
> > heck of lot more productive.
> 
> I agree with most of your analogy here.  I'm still relatively new to
> OCaml, having been using it for only a couple of months, but you've
> touched on one of my pet peeves: the OCaml standard library is really
> sub-par for doing real work.  

Heh.  It's orders of magnitude better than the C or C++ standard
libraries.  Which explains why those languages never went anywhere :-).  
Note that POSIX is an add-on layer, not gaurenteed to be there.  So all
socket communication is optional and non-standard.  As is all database
connectivity, GUI handling, etc.  The thing is, almost no one actually
programs the "standard" C/C++ environment.  Every C/C++ environment comes 
with a whole collection of add-on libraries- POSIX at a minimum.  
Generally a whole lot more.

I think the problem here isn't technical, it's social- marketing, to be 
specific.  Having a language with a very minimialistic standard library 
isn't the problem- the problem is have a standard development environment 
with a minimialistic library.  The "core" language and libraries 
distribution should be, if not hidden, then at least not obvious.  
Instead, the "default" Ocaml distribution should be something more like 
CDK (is that project still alive?).  There shouldn't be links from the 
home page to the core, the home page should link to CDK *only*.  And we 
need to get the Linux distros up to speed and distributing CDK instead of 
only Ocaml-core.

While we're kvetching, here's my list of desires to be in the default 
development environment (note that I don't think any of these belong in 
the standard libraries):
	- OUnit
	- ExtLib (OK, this should perhaps become part of the standard)
	- BLAS/LAPACK, GMP, and MPI bindings
	- Regular expressions
	- ocamlexc
	- Camllisp (or similiar)
	- compression, encryption, etc. filters for I/O

Certain things can be moved out of the standard distribution and moved 
into the development environment in this case- pcaml, ocamldoc, ocamlex, 
ocamlyacc, etc.

Of course, the other advantage that the standard distribution has, in 
addition to being the default, is coherent documentation.  There is one 
book, and everything in the standard distribution is more or less equally 
well documented (ocamllex and ocamlyacc could use some help).  The same 
thing should be true for the development environment.


> Similar complaints exist for working with subsets of lists; it's really
> too hard to say "replace elements 4 through 9 with this", "delete
> elements 4 through 9", "return elements 4 through 9", etc.  (While we're
> at it, I think it's silly that there is a list and an array type).  Yes,
> I could write functions to do all of this, but my point is that I
> shouldn't have to.

They aren't hard to write, the problem is that they're O(N).  To replace 
element 9 in a list, you also end up replacing elements 0-8 as well.  I 
would argue that if you're wanting to do this routinely and efficiently, 
you shouldn't be using lists.  I'd recommend Map or Set myself.

> One other thing to mention is that installing libraries is much more
> difficult than it should be, and writing library build systems (and even
> app build systems) is much more complex than it should be.  Part of this
> is due to a lack of a standardized build system (think Perl's MakeMaker
> or Python's setup.py).  Part of it is due to the complex array of OCaml
> options -- for instance, some platforms do not support ocamlopt, so
> while a library might normally build both native and byte-code versions,
> it has to not try to if ocamlopt is missing.  (Something which, I have
> found, many OCaml authors fail to consider.)  I've been toying with the
> idea of writing a generic build system for OCaml to address this point
> though.

There have been several swings taken at this already- the relevent 
developers should be letting you know about them.

If you're regularly having to install more than one or two libraries for 
your development environment, that's a problem.  I mean, think about it.  
You install Linux, how many libraries do you generally need to add to do 
C/C++ programming?  Or Visual Studio?  You don't realize how much of the 
stuff is "optional" because it's all installed automatically.

-- 
"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
                                - Gene Spafford 
Brian

-------------------
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


  parent reply	other threads:[~2004-04-08 16:10 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-07 18:47 John Goerzen
2004-04-07 20:37 ` Samuel Mimram
2004-04-07 21:05 ` Basile Starynkevitch
2002-01-04  0:43   ` Issac Trotts
2004-04-08  0:58     ` Dustin Sallings
2004-04-08  6:24     ` Brian Hurt
2004-04-08  7:47       ` Oleg Trott
2004-04-08  8:04         ` Ville-Pertti Keinonen
2004-04-08  7:52       ` Ville-Pertti Keinonen
2004-04-08  8:15         ` Dustin Sallings
2004-04-08 13:37       ` John Goerzen
2004-04-08 14:56         ` Markus Mottl
2004-04-08 15:14           ` Richard Jones
2004-04-08 15:26             ` Markus Mottl
2004-04-08 15:39               ` Jon Harrop
2004-04-08 15:58               ` John Goerzen
2004-04-08 17:59                 ` Jean-Marc EBER
2004-04-08 18:20                   ` Kenneth Knowles
2004-04-08 18:39                     ` John Goerzen
2004-04-08 19:21                       ` Kenneth Knowles
2004-04-08 18:29                   ` John Goerzen
2004-04-13  6:15                 ` Trevor Andrade
2004-04-13 11:17                   ` Gerd Stolpmann
2004-04-13 13:16                     ` skaller
2004-04-13 14:24                     ` John Goerzen
2004-04-13 14:53                       ` Gerd Stolpmann
2004-04-13 18:07                         ` [Caml-list] Re: GODI (was: Dynamically evaluating OCaml code) Christophe TROESTLER
2004-04-13 19:30                           ` Gerd Stolpmann
2004-04-13 19:57                             ` [Caml-list] Re: GODI Christophe TROESTLER
2004-04-13 20:45                               ` Brandon J. Van Every
2004-04-14  0:34                                 ` Gerd Stolpmann
2004-04-14  5:35                                   ` Brandon J. Van Every
2004-04-14  6:00                                     ` james woodyatt
2004-04-14  6:21                                       ` Kenneth Knowles
2004-04-14  9:17                                         ` james woodyatt
2004-04-14  6:16                                     ` Kenneth Knowles
2004-04-14  7:38                                       ` [Caml-list] BSD vs. GPL Brandon J. Van Every
2004-04-14  8:32                                         ` Matt Gushee
2004-04-14  8:48                                           ` Wolfgang Müller
2004-04-14  8:40                                         ` Kenneth Knowles
2004-04-14 17:14                                           ` David Brown
2004-04-14 18:50                                             ` [Caml-list] benefit of package management Brandon J. Van Every
2004-04-15  6:46                                             ` [Caml-list] BSD vs. GPL Kenneth Knowles
2004-04-14 15:05                                         ` John Goerzen
2004-04-15  0:20                                           ` skaller
2004-04-15  2:36                                             ` John Goerzen
2004-04-15 17:48                                             ` Benjamin Geer
2004-04-14 10:50                                   ` [Caml-list] Re: GODI skaller
2004-04-14  1:04                               ` John Goerzen
2004-04-14  2:52                               ` Jacques GARRIGUE
2004-04-14  5:14                                 ` [Caml-list] Re: GODI vs. Ocamake Brandon J. Van Every
2004-04-14  6:53                                   ` Jacques GARRIGUE
2004-04-14  6:57                                   ` Kenneth Knowles
     [not found]                                     ` <407D2075.2070104@jollys.org>
2004-04-14 16:14                                       ` ocamlconf on Cygwin (Re: [Caml-list] Re: GODI vs. Ocamake) Kenneth Knowles
2004-04-14  7:50                                   ` [Caml-list] Re: GODI vs. Ocamake Nicolas Cannasse
2004-04-14 11:54                                     ` skaller
2004-04-14 16:49                                       ` Kenneth Knowles
2004-04-15  1:05                                         ` skaller
2004-04-15  6:34                                           ` Kenneth Knowles
2004-04-15  7:33                                             ` skaller
2004-04-15 16:00                                               ` Kenneth Knowles
     [not found]                                                 ` <1082049025.20677.1250.camel@pelican>
2004-04-15 17:38                                                   ` Kenneth Knowles
2004-04-15 23:58                                                     ` Brandon J. Van Every
2004-04-16  1:16                                                       ` Kenneth Knowles
2004-04-16  6:31                                                         ` [Caml-list] build tools - good vs. fast, both cheap Brandon J. Van Every
2004-04-16 14:38                                                           ` skaller
2004-04-16 15:16                                                             ` Richard Jones
2004-04-16 16:12                                                               ` Kenneth Knowles
2004-04-16 16:17                                                                 ` Richard Jones
2004-04-16 16:39                                                                   ` Kenneth Knowles
2004-04-17  6:01                                                                     ` Jacques GARRIGUE
2004-04-17  6:25                                                                       ` Kenneth Knowles
2004-04-17  9:19                                                                       ` Alain.Frisch
2004-04-16 21:53                                                             ` William Lovas
2004-04-17  2:30                                                               ` skaller
2004-04-17  5:47                                                               ` Blair Zajac
2004-04-17  6:28                                                                 ` Kenneth Knowles
2004-04-16 14:52                                                           ` skaller
2004-04-16 16:06                                                           ` Kenneth Knowles
2004-04-16 18:10                                                             ` skaller
2004-04-16 18:43                                                               ` Kenneth Knowles
2004-04-16 19:55                                                                 ` skaller
2004-04-16 18:46                                                               ` John Goerzen
2004-04-16 18:55                                                                 ` Kenneth Knowles
2004-04-16 20:22                                                                 ` skaller
2004-04-16 19:39                                                               ` Richard Jones
2004-04-16 21:00                                                                 ` skaller
2004-04-15  9:47                                           ` [Caml-list] Re: GODI vs. Ocamake Markus Mottl
2004-04-15 16:38                                             ` skaller
2004-04-16  1:30                                               ` Richard Cole
2004-04-16 14:11                                                 ` skaller
2004-04-15  1:25                                         ` skaller
2004-04-14 12:19                                     ` skaller
2004-04-14 18:21                                       ` [Caml-list] recompiling bytecode Brandon J. Van Every
2004-04-14 18:54                                         ` John Goerzen
2004-04-14 20:26                                           ` Issac Trotts
2004-04-14 20:35                                         ` Basile Starynkevitch
2004-04-15  1:39                                         ` skaller
2004-04-14 13:03                                   ` [Caml-list] Re: GODI vs. Ocamake Gerd Stolpmann
2004-04-14 12:45                                 ` [Caml-list] Re: GODI Gerd Stolpmann
2004-04-13 15:03                       ` [Caml-list] Dynamically evaluating OCaml code Matt Gushee
2004-04-13 17:24                     ` Benjamin Geer
2004-04-09  5:40             ` skaller
2004-04-08 15:30           ` John Goerzen
2004-04-08 16:08             ` Xavier Leroy
2004-04-08 16:44             ` Markus Mottl
2004-04-08 17:35               ` John Goerzen
2004-04-09  6:41                 ` skaller
2004-04-08 19:44               ` Issac Trotts
2004-04-09  6:23               ` skaller
2004-04-09  6:33                 ` Remi Vanicat
2004-04-09  7:37                   ` skaller
2004-04-09  8:17                     ` Remi Vanicat
2004-04-09  8:35                     ` OT: licences (was Re: [Caml-list] Dynamically evaluating OCaml code) Benjamin Geer
2004-04-10 10:10                       ` skaller
2004-04-09  8:36                 ` [Caml-list] Dynamically evaluating OCaml code Markus Mottl
2004-04-10  9:59                   ` skaller
2004-04-09  9:09                 ` james woodyatt
2004-04-08 16:44             ` Bruno.Verlyck
2004-04-08 17:55               ` John Goerzen
2004-04-09 13:44                 ` Bruno.Verlyck
2004-04-08 15:31           ` Jon Harrop
2004-04-08 19:52             ` Issac Trotts
2004-04-25 23:07               ` [Caml-list] Is GCaml Dead Again? Greg K
2004-04-08 15:04         ` [Caml-list] Dynamically evaluating OCaml code Fernando Alegre
2004-04-08 15:22         ` Jean-Marc EBER
2004-04-09  6:44           ` Pierre Weis
2004-04-08 15:23         ` Kenneth Knowles
2004-04-08 15:38           ` John Goerzen
2004-04-08 22:31             ` Markus Mottl
2004-04-08 18:28           ` Nicolas Cannasse
2004-04-08 17:15         ` Brian Hurt [this message]
2004-04-08 18:32           ` Gerd Stolpmann
2004-04-09  5:04         ` skaller
2004-04-08 17:25       ` Issac Trotts
2004-04-08  7:10     ` Basile Starynkevitch
2004-04-08 17:09       ` Issac Trotts
2004-04-07 21:32 ` Vitaly Lugovsky
2004-04-07 20:39   ` John Goerzen
2004-04-07 21:47     ` Vitaly Lugovsky
2004-04-07 22:14     ` Benjamin Geer
2004-04-08  7:49     ` skaller
2004-04-08 19:11     ` Christophe TROESTLER
     [not found] ` <200404072306.15109.clement.capel@free.fr>
2004-04-07 23:25   ` clement capel
2004-04-13 21:25     ` [Caml-list] eval for OCaml Brock
2004-04-08  0:17 ` [Caml-list] Dynamically evaluating OCaml code Jon Harrop
2004-04-08 17:31 ` Walid Taha

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=Pine.LNX.4.44.0404081137180.25700-100000@localhost.localdomain \
    --to=bhurt@spnz.org \
    --cc=caml-list@inria.fr \
    --cc=ijtrotts@ucdavis.edu \
    --cc=jgoerzen@complete.org \
    /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;
as well as URLs for NNTP newsgroup(s).