caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Re: [Caml-list] ocaml complexity
@ 2001-06-14 16:04 John R Harrison
  0 siblings, 0 replies; 56+ messages in thread
From: John R Harrison @ 2001-06-14 16:04 UTC (permalink / raw)
  To: David Gurr; +Cc: bpr, leary, caml-list, John Harrison


| > The intro in the HOL-Light manual is quite good.  Also quite good is:
|
| [....]
|
| Do you have a link to the HOL-Light manual?

See the following URL (there's a link to the manual near the bottom):

  http://www.cl.cam.ac.uk/users/jrh/hol-light/index.html

Most of the CAML tutorial material here was compressed from an earlier
lecture course I gave based on CAML. You might also find the notes for
this course interesting:

  http://www.cl.cam.ac.uk/Teaching/Lectures/funprog-jrh-1996/index.html

This starts with basic lambda calculus theory before getting into real
CAML programming, so it might not appeal to many programmers. (Indeed, it
didn't appeal to most of the students, as I recall.) But this approach
does help to emphasize the fundamental theoretical simplicity of core ML.
And there are some quite nice programming examples near the end.

John.
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 56+ messages in thread
* Re: [Caml-list] ocaml complexity
@ 2001-06-13 21:04 David Gurr
  2001-06-13 23:13 ` leary
  2001-06-13 23:19 ` Brian Rogoff
  0 siblings, 2 replies; 56+ messages in thread
From: David Gurr @ 2001-06-13 21:04 UTC (permalink / raw)
  To: bpr, caml-list, leary


> From owner-caml-list@pauillac.inria.fr Wed Jun 13 13:36:15 2001
> From: leary@nwlink.com
> To: Brian Rogoff <bpr@best.com>, caml <caml-list@inria.fr>
> X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f
> Date: Wed, 13 Jun 2001 13:32:35 -0700
> Subject: Re: [Caml-list] ocaml complexity
> Mime-Version: 1.0
> Content-Disposition: inline
> User-Agent: Mutt/1.2.5i
> 
> On Wed, Jun 13, 2001 at 08:21:27AM -0700, Brian Rogoff wrote:
> > Perhaps we users should start writing
> > tutorials, rather than asking INRIAns, as I'd rather that they work on 
> > growing the language.
> 
> Aye.  Would Michel Mauny be agreeable to having his "Functional
> Programming Using Caml Light" be the starting point for a "Learning OCaml"
> project, say on sourceforge?  Are there any better tutorials on ML 

I assume you mean Caml rather than SML

> that
> might be borrowed from with permission?
> 
> 
The intro in the HOL-Light manual is quite good.  Also quite good is:

http://cristal.inria.fr/~remy/isia/

> 
> -------------------
> Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
> 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/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 56+ messages in thread
* Re: [Caml-list] ocaml complexity
@ 2001-06-11 20:33 Arturo Borquez
  2001-06-11 21:17 ` Miles Egan
  0 siblings, 1 reply; 56+ messages in thread
From: Arturo Borquez @ 2001-06-11 20:33 UTC (permalink / raw)
  To: Pierre.Weis; +Cc: caml-list

On Mon, 11 June 2001, Pierre Weis wrote:

>
> Objective Caml is one of a very few sucessful software provided by
> INRIA. Hence it is politically important for INRIA (read it as ``it is
> an important argument for INRIA to get funding), hence INRIA is not
> likely to abandon its support for Caml (also remember that more and
> more INRIA's software is written in Caml!).
> 
I must add to this that after three month evaluating and testing some server apps at my company, we have decided as part of a major improvement (that includes a new DB model) to port ALL our propietary server apps (mainly C/C++) to OCaml. The survey we did show that OCaml productivity is 5 to 10 times C/C++, runtime and memory perfomance good enough to put it in production. Also we have found that the core language / libraries supplied fullfill almost our needs. We envise OCaml as a part of the key to provide customers satisfaction (quality services and requirement responsiveness). The lack of 'market programmers' in OCaml certainly is an issue, so we started doing capacitation investments (3 month 45 min/day/programmer) that are marginal in the long term and payed in excess with the benefits of the language. As OCaml isn't already a 'popular' language we are confident that these guys will stay with us as they earn more money with less effort and enjoy programming in OCaml, !
they don't want back to boring C/C++.

My experience 'teaching' Ocaml to C/C++ programmers are:

1) Remark the difference between imperative vs FP. The analogy of a spreadsheet or a calculator (without parens -> imperative) (with parens -> FP) is very usefull, the programm is an expression to be evaluated not a sequence of instructions. It seems me that this is the main obstacle at the begining to switch from the 'sequence thinking' to the 'expression thinking'.

2) Use a blackboard and show a piece of code known by the audience at the left side in C/C++ and at the right side in OCaml. Take all the time to disscuss the differences. Even more is better if you show a gentle trasition from imperative to FP style for the example regarding not to obfuscate with too much abstraction. Do it trivialy and simple as possible.

3) Do not introduce explicit typing annotations or partial function application at the begining. Let beginers to practice and be confident with type inference. 

4) Stay in the core language and libraries for a while (don't hurry). Even some functions exercised were polymorphic by nature don't distract attention.

5) Introduce the typing system, modules and labels at a second stage. Explain polymorphism partial function applications currying, recursions. Put the accent in FP style.

6) Develop a full fledged known application step by step. Show how you can improve starting with the design and the befefits of coding OCaml. It is very important sychological issue to transmit confidence to programmers, be patient.

7) Continuity. Give some real apps to code to do in pairs programmers and give them continuos time to do it (do not disturb them with other stuffs and support them as they need).

8) As programmers get skilled revise old code, show the enhancements that could be made. Let them to discover and exercise the advanced features of the language. I am not a fun of OOP and I try to avoid OOP code in our apps, but it isn't a religion, certainly I have used LablGtk. 

OCaml is so good that even if it would freezed by INRIA we plan to use it as much we can. I am not allowed by my company to reveal some commercial details but I can inform that we serve about 1000 customers client workstations along the country, at a rate of 80000 transaction/day. I have no doubt upon the success of this proyect and surely it will open the door to other projects with OCaml.

Best Regards
Arturo Borquez (Chile).


Find the best deals on the web at AltaVista Shopping!
http://www.shopping.altavista.com
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 56+ messages in thread
* Re: [Caml-list] ocaml complexity
@ 2001-06-07  8:58 leary
  2001-06-07 18:29 ` Jonathan Coupe
  0 siblings, 1 reply; 56+ messages in thread
From: leary @ 2001-06-07  8:58 UTC (permalink / raw)
  To: caml-list

I'd wager that 90% of the reason Perl is so huge is due to _Learning Perl_.
Neophytes can start writing interactive programs on page 7.  I went from
near zero programming ability to writing an IDL parser/EDI data tranlator
in about a month or so using that and Programming Perl -- for which the OCaml
manual is a semi-reasonable, if terse and dry, match.  Is there hope for
the coming O'Reilly translation, or does it too think that I/O (i.e. doing
something useful and interesting) is something best left for the later
chapters (or the reference section)?  It's hard for me to believe that
OCaml can be both so good, and so unpopular (read: badly documented (read:
no friendly tutorials)).  From whence _Learning OCaml_?
-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 56+ messages in thread
* [Caml-list] ocaml complexity
@ 2001-06-06 16:50 Miles Egan
  2001-06-06 17:30 ` Chris Hecker
                   ` (3 more replies)
  0 siblings, 4 replies; 56+ messages in thread
From: Miles Egan @ 2001-06-06 16:50 UTC (permalink / raw)
  To: caml-list

I'm not sure how easy it will be to bring this up constructively, but I'm
curious to hear what others have to say so I hope I can make it clear that this
isn't a criticism of ocaml but an honest curiousity.

I've been studying Ocaml on and off for about three years now and although I'm
still very impressed with its power I still don't really feel like I understand
it very well.  I've also learned lisp, scheme, and python in the last few years
and, although Ocaml seems to me to be a more powerful language in many respects,
I feel that these other languages were much easier to learn.  This is partly due
to my inexperience with functional languages, I'm sure, but I don't think that
alone accounts for it.  

It feels to me to be more of an issue of the number of language features and
abstraction techniques each language offers.  The other languages seem to "fit
in my brain" better.  I have to admit that I find the conjunction of modules,
classes, variants, polymorphic variants, labels, references, streams etc. a bit
bewildering.  I find myself at a bit of a loss when starting a new program
because I have so many avenues of decomposition open to me.  I think I've
finally grasped the essentials well enough to write real programs in Ocaml, but
I can't say it's been easy.

I'm often tempted to push Ocaml as a solution for projects at work, but I
hesitate to advocate it too strongly because I honestly think Ocaml is beyond
the abilities of most of my colleagues.  I suspect only the brightest of the
programmers I've worked with will come to grips with both functional programming
and the large array of features Ocaml offers fast enough to justify the time
taken to retrain.

Of all the functional languages, Ocaml seems to me the most pragmatic and most
useful for everyday programming, but I wonder if it's within the grasp of the
everyday user.  I know a lot of fairly amateur C++ programmers who get by with a
small subset of the language, but it seems more difficult to limit oneself to a
small subset of Ocaml.

Have others had similar experiences?  I suspect most of the readers of this list
are better-than-average programmers.  How difficult have you found it to be to
teach Ocaml to your colleagues?  Any suggestions on a simple pedagogy for
bringing more junior people abreast of subjects as esoteric as polymorphic
recursive types?

-- 
miles
-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2001-06-28 18:31 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-14 16:04 [Caml-list] ocaml complexity John R Harrison
  -- strict thread matches above, loose matches on Subject: below --
2001-06-13 21:04 David Gurr
2001-06-13 23:13 ` leary
2001-06-13 23:19 ` Brian Rogoff
2001-06-15 13:28   ` Tore Lund
2001-06-15 14:03     ` Nils Goesche
2001-06-15 14:54       ` Xavier Leroy
2001-06-15 15:14         ` Jonathan Coupe
2001-06-15 15:23         ` Nils Goesche
2001-06-15 17:38         ` Sven LUTHER
2001-06-15 20:36           ` Remi VANICAT
2001-06-15 14:16     ` Doug Bagley
2001-06-28 12:54   ` Didier Remy
2001-06-28 18:31     ` Brian Rogoff
2001-06-11 20:33 Arturo Borquez
2001-06-11 21:17 ` Miles Egan
2001-06-12  7:19   ` wester
2001-06-07  8:58 leary
2001-06-07 18:29 ` Jonathan Coupe
2001-06-08  9:41   ` leary
2001-06-08 12:27     ` Jonathan Coupe
2001-06-08 20:22       ` Chris Hecker
2001-06-08 20:31         ` Miles Egan
2001-06-08 22:17           ` Jonathan Coupe
2001-06-08 22:18             ` Miles Egan
2001-06-11 14:05             ` Pierre Weis
2001-06-09 19:41           ` John Max Skaller
2001-06-08 22:59         ` David Fox
2001-06-09  0:43         ` leary
2001-06-09  1:09           ` Mark Wotton
2001-06-09  8:36           ` Markus Mottl
2001-06-09 20:58           ` John Max Skaller
2001-06-08 22:46       ` leary
2001-06-09  1:18         ` David Fox
2001-06-12 14:17           ` John Max Skaller
2001-06-13 15:21             ` Brian Rogoff
2001-06-13 20:32               ` leary
2001-06-13 22:58                 ` Johann Höchtl
2001-06-13 21:18               ` John Max Skaller
2001-06-09 22:32         ` Jonathan Coupe
2001-06-11  0:20           ` leary
2001-06-06 16:50 Miles Egan
2001-06-06 17:30 ` Chris Hecker
2001-06-06 18:25 ` Charles Martin
2001-06-06 19:27   ` Michael Hicks
2001-06-06 21:15   ` David Fox
2001-06-07 12:25   ` FabienFleutot
2001-06-08  0:27   ` Miles Egan
2001-06-06 19:36 ` William Chesters
2001-06-06 19:55   ` John Max Skaller
2001-06-06 20:06     ` William Chesters
2001-06-07 16:30       ` John Max Skaller
2001-06-08  0:32   ` Miles Egan
2001-06-08  0:56     ` David Fox
2001-06-07  7:35 ` wester
2001-06-07 17:27   ` John Max Skaller

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