caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Pietro Abate <Pietro.Abate@anu.edu.au>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] How to refactor a large Ocaml program
Date: Thu, 14 Dec 2006 00:09:22 +1100	[thread overview]
Message-ID: <20061213130922.GA17914@pulp.rsise.anu.edu.au> (raw)
In-Reply-To: <457FF423.7000703@abc.se>

not an answer, but a general comment, maybe also a bit OT ...

On Wed, Dec 13, 2006 at 01:37:55PM +0100, Mattias Waldau wrote:
> I have a large ocaml program and I need to make major changes.
> After using C# with ReSharper in Visual Studio I am bit spoiled :-)
> Having a reliable "Find Usage" feature in the browser is really useful 
> when you start tearing apart a program. It is really nice to be able to 
> go to the definition of a function directly, and find all locations it 
> is used.

the other day I was talking with a friend and during a discussion about
java and visual development tool, he put forward the lack of refactoring
tool as a major obstacle in the adoption of "accademic" programming
languages. 

In java or c# you often end up writing programs that are more then 10K
lines long and composed of many tightly couple modules/components. 
This is because of the verbosity of the language itself and because OOP
make you structure your programs as a graph of object/classes. In this
context, refactoring a program without some aid can be really messy,
time consuming and error prone.

On the other hand, in ocaml, I've never written modules/logical units
bigger than 1K lines, and even if the project can grow very big, the
level of interaction between modules is often confined to the module
interface and changing the name of a function is usually never a big
problem.

To some extent, the lack of visual tool can be justified by this
difference.  Where for java/c# developers (in particular on windows)
visual tool are essential for productivity, ocaml developers often get
way without using anything more than vi/emacs because the programs
written in ocaml are more manageable by a human. For me 10K loc for a
logical unit is the maximum I can hold in my head at once. More then
that drive me crazy and often induces me to re-think my entire
architecture.

Does this match your experience ?

p

-- 
++ Blog: http://blog.rsise.anu.edu.au/?q=pietro
++ 
++ "All great truths begin as blasphemies." -George Bernard Shaw
++ Please avoid sending me Word or PowerPoint attachments.
   See http://www.fsf.org/philosophy/no-word-attachments.html


  reply	other threads:[~2006-12-13 13:06 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-13 12:37 Mattias Waldau
2006-12-13 13:09 ` Pietro Abate [this message]
2006-12-13 13:46   ` [Caml-list] " Jon Harrop
2006-12-13 13:53   ` skaller
2006-12-13 13:57   ` Richard Jones
2006-12-13 14:00   ` Yann Coscoy
2006-12-13 14:09     ` Jon Harrop
2006-12-13 14:31       ` Yann Coscoy
2006-12-13 14:42       ` Mattias Engdegård
2006-12-13 16:48     ` Gerd Stolpmann
2006-12-13 17:08       ` Jon Harrop
2006-12-13 13:51 ` Jim Miller
     [not found] ` <45800CD5.8050401@janestcapital.com>
2006-12-14  8:09   ` Mattias Waldau
2006-12-14 11:59     ` Bruno De Fraine
2006-12-14 13:47     ` Brian Hurt
2006-12-15 15:33       ` Florian Hars
2006-12-16 10:14         ` Remi Vanicat
2006-12-16 13:53           ` Christian Stork
2006-12-18 19:37           ` Florian Hars
2006-12-15  5:07     ` Jacques Garrigue
2006-12-15  7:49       ` Mattias Waldau
2006-12-15 12:36         ` Jan Rehders
2006-12-15 13:11           ` skaller
2006-12-14  8:21   ` Mattias Waldau
2006-12-15 17:23 ` malc

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=20061213130922.GA17914@pulp.rsise.anu.edu.au \
    --to=pietro.abate@anu.edu.au \
    --cc=caml-list@yquem.inria.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;
as well as URLs for NNTP newsgroup(s).