caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Peng Zang <peng.zang@gmail.com>
To: caml-list@yquem.inria.fr, "circ ular" <circularfunc@gmail.com>
Subject: Re: [Caml-list] Ocaml, a practical functional language?
Date: Mon, 1 Sep 2008 12:36:57 -0400	[thread overview]
Message-ID: <200809011237.00069.peng.zang@gmail.com> (raw)
In-Reply-To: <d5f6b0140808301250k2e240eb9l7cf17a280f60dcbb@mail.gmail.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On Saturday 30 August 2008 03:50:30 pm circ ular wrote:
> I have tried a lot of languages but never really felt 100% satisfied.
> I really like Python, it makes me very productive but Iwant something
> a little more functionally oriented plus a static(optionally declared)
> typesystem.
>
> I tried Haskell and I really like it but I find it hard to get used to
> some things(like no destructive updates of datastructures outside the
> IO Monad).
> Ocaml seems a little bit more practical and it is aslo very fast(well
> haskell is too).
>
> tried lisp at first but libraries and documentation just werent up to
> standards there either.
>
> so far Pytho is the best Ive found (for me) but still isn't satisfied.
>
> could ocaml be what I look for?

I think OCaml is what you are looking for.  I went through a similar search 
for a comfortable language.  My order was a bit different, lisp first, then 
python, then OCaml, then played a bit with Haskell but am sticking with 
OCaml.

I find OCaml to be a great compromise.  Haskell is cool, but it forces you to 
do things in certain ways and use a lot of abstraction which often seems 
overkill, making simple things much harder than they should be.  I really 
like how easy things are in Python but large programs I find are impossible 
to maintain because it's not statically typed (it's also slow.. but that 
might have been ok).  Lisp is really great with what you can do and many 
simple things are simple, but it doesn't have the scaffolding to let you 
scale up to big stuff (missing libs and stuff).  OCaml has been great.  It 
has its drawbacks and yucky corner cases like all languages.  Overall though, 
it's been good and I've been able to find reasonable workarounds for things I 
don't like.  I encourage you to give it a serious try.

There's a great book on OCaml here:

  http://www.cs.caltech.edu/courses/cs134/cs134b/book.pdf

The best emacs mode for ocaml is tuareg mode here:

  http://www-rocq.inria.fr/~acohen/tuareg/

I also write some additional on top of tuareg mode to be more like the SLIME 
mode for lisp but it's alpha (mostly because I wrote it for myself and 
packaging it and making robust is a lot of work that I'm too busy to handle) 
so I don't really recommend it yet.

Peng
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQFIvBosfIRcEFL/JewRAv4kAJ40DMoR1GZd1LagWMwR1umbEglLVwCfaMoP
F9jaCP+f2iJvqU/ZxVs+Czs=
=k9FZ
-----END PGP SIGNATURE-----


  parent reply	other threads:[~2008-09-01 16:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-30 19:50 circ ular
2008-08-30 20:32 ` [Caml-list] " Richard Jones
2008-09-01 16:36 ` Peng Zang [this message]
2008-09-01 17:48   ` Luca de Alfaro
2008-09-01 18:34     ` Ulf Wiger (TN/EAB)

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=200809011237.00069.peng.zang@gmail.com \
    --to=peng.zang@gmail.com \
    --cc=caml-list@yquem.inria.fr \
    --cc=circularfunc@gmail.com \
    /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).