caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Modeling tool for OCaml?
@ 2007-02-04 15:33 Julien Peeters
  2007-02-04 17:40 ` [Caml-list] " Robert Fischer
  0 siblings, 1 reply; 7+ messages in thread
From: Julien Peeters @ 2007-02-04 15:33 UTC (permalink / raw)
  To: caml-list

Hi everybody,

For my first post to this mailing list, I'm going to ask you the
modeling tool(s) you use commonly for your applications written in OCaml
(if you use modeling tools of course)?

I have a little experience in UML (v1.5). But I don't know if you can
use UML for OCaml cleanly (UML is oriented object and OCaml not
necessarly)?

Thanks for your anwsers.
-- 
Julien Peeters
Computer science student in second year of Bachelor
Science Faculty of Orsay
University of Paris-Sud XI (France)
Personal website: http://www.oxylin.fr


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

* Re: [Caml-list] Modeling tool for OCaml?
  2007-02-04 15:33 Modeling tool for OCaml? Julien Peeters
@ 2007-02-04 17:40 ` Robert Fischer
  2007-02-04 17:56   ` Alwyn Goodloe
  0 siblings, 1 reply; 7+ messages in thread
From: Robert Fischer @ 2007-02-04 17:40 UTC (permalink / raw)
  To: caml-list

> For my first post to this mailing list, I'm going to ask you the
> modeling tool(s) you use commonly for your applications written in OCaml?
>
Whiteboard, mainly.  Sometimes pencil and paper.  If I'm really gung-ho,
I'll use LaTeX (generally ripped from the ocamldoc).

Unlike the imperative object-oriented world, where the relationships
between types are complicated systems with profound (and somewhat
mysterious) consequences, the 'function catalog' approach in OCaml most
libraries undercuts the value of any kind of modelling.

And this is from someone who is a fan of visual models for Java/C# apps.

~~ Robert Fischer.
Fischer Venture Management Corporation


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

* Re: [Caml-list] Modeling tool for OCaml?
  2007-02-04 17:40 ` [Caml-list] " Robert Fischer
@ 2007-02-04 17:56   ` Alwyn Goodloe
  2007-02-04 18:41     ` Julien Peeters
  0 siblings, 1 reply; 7+ messages in thread
From: Alwyn Goodloe @ 2007-02-04 17:56 UTC (permalink / raw)
  To: caml-list

I've always wondered that maybe old fashioned dataflow diagrams from  
the 80s might work
a lot better than UML for large ocaml programs.  I don't even know if  
they publish books
on that anymore, but it might be worth a look.

Alwyn


On Feb 4, 2007, at 12:40 PM, Robert Fischer wrote:

>> For my first post to this mailing list, I'm going to ask you the
>> modeling tool(s) you use commonly for your applications written in  
>> OCaml?
>>
> Whiteboard, mainly.  Sometimes pencil and paper.  If I'm really  
> gung-ho,
> I'll use LaTeX (generally ripped from the ocamldoc).
>
> Unlike the imperative object-oriented world, where the relationships
> between types are complicated systems with profound (and somewhat
> mysterious) consequences, the 'function catalog' approach in OCaml  
> most
> libraries undercuts the value of any kind of modelling.
>
> And this is from someone who is a fan of visual models for Java/C#  
> apps.
>
> ~~ Robert Fischer.
> Fischer Venture Management Corporation
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs


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

* Re: [Caml-list] Modeling tool for OCaml?
  2007-02-04 17:56   ` Alwyn Goodloe
@ 2007-02-04 18:41     ` Julien Peeters
  2007-02-04 20:43       ` Jon Harrop
  2007-02-05 10:00       ` Stéphane DUPRAT
  0 siblings, 2 replies; 7+ messages in thread
From: Julien Peeters @ 2007-02-04 18:41 UTC (permalink / raw)
  To: caml-list

Ok,

Thanks all ones for answers...

I imagine that designing applications with functional languages is much
different than with imperative ones.
I was wondering on which points the difference is significant?
Does common oriented object design patterns can be used with OCaml?
And what, for a developer, is the work to do to change his way of
thinking?

I envisage to learn OCaml deeply and than I want to set the basis to do
the change from imperative languages to functional ones.

P.S. : somebody have reference books which goes over this subject?
-- 
Julien Peeters
Computer science student in second year of Bachelor
Science Faculty of Orsay
University of Paris-Sud XI (France)
Personal website: http://www.oxylin.fr


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

* Re: [Caml-list] Modeling tool for OCaml?
  2007-02-04 18:41     ` Julien Peeters
@ 2007-02-04 20:43       ` Jon Harrop
  2007-02-04 23:30         ` skaller
  2007-02-05 10:00       ` Stéphane DUPRAT
  1 sibling, 1 reply; 7+ messages in thread
From: Jon Harrop @ 2007-02-04 20:43 UTC (permalink / raw)
  To: caml-list

On Sunday 04 February 2007 18:41, Julien Peeters wrote:
> I imagine that designing applications with functional languages is much
> different than with imperative ones.
>
> I was wondering on which points the difference is significant?

If you assume that by "imperative" you really mean "object oriented", as most 
of the main imperative languages are now OO (C++, Java, C# and Python), the 
difference is primarily that class hierarchies can often be represented more 
succinctly and efficiently using other constructs (like variant types) in 
functional programming languages like OCaml.

> Does common oriented object design patterns can be used with OCaml?

Most OO design patterns are redundant in OCaml. Basically, most OO design 
patterns solve problems creating by OO in the first place...

> And what, for a developer, is the work to do to change his way of
> thinking?

Try to write your programs using a minimal amount of mutation, replace all 
loops with higher-order functions, leverage trees and pattern matching 
whenever possible. Forget about the advanced features of OCaml (objects, 
polymorphic variants) to start with.

> I envisage to learn OCaml deeply and than I want to set the basis to do
> the change from imperative languages to functional ones.

Functional programming is often beneficial. I posted a simple OpenGL demo 
recently:

  http://www.ffconsultancy.com/free/bunny/

Although this is a very array-intensive program, operating on vertex and index 
arrays, it can still leverage functional programming by using the 
higher-order Array.iter and map functions extensively.

> P.S. : somebody have reference books which goes over this subject?

Yes, my book covers this subject (see my sig).

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
Objective CAML for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists


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

* Re: [Caml-list] Modeling tool for OCaml?
  2007-02-04 20:43       ` Jon Harrop
@ 2007-02-04 23:30         ` skaller
  0 siblings, 0 replies; 7+ messages in thread
From: skaller @ 2007-02-04 23:30 UTC (permalink / raw)
  To: Jon Harrop; +Cc: caml-list

On Sun, 2007-02-04 at 20:43 +0000, Jon Harrop wrote:

> Most OO design patterns are redundant in OCaml. Basically, most OO design 
> patterns solve problems creating by OO in the first place...

I agree but this is only half the story. Ocaml has objects, and is
basically an imperative language. But it also has gc, variants,
modules, functors, type inference, and lexically scoped 
intensionally polymorphic functions with closures.

I would say it isn't Ocaml but its user base that is 'functionally
oriented'.

-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net


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

* Re: [Caml-list] Modeling tool for OCaml?
  2007-02-04 18:41     ` Julien Peeters
  2007-02-04 20:43       ` Jon Harrop
@ 2007-02-05 10:00       ` Stéphane DUPRAT
  1 sibling, 0 replies; 7+ messages in thread
From: Stéphane DUPRAT @ 2007-02-05 10:00 UTC (permalink / raw)
  To: Julien Peeters, caml-list

[-- Attachment #1: Type: text/plain, Size: 1809 bytes --]

I'd quite the same question one week ago.

As we see in the home page of ocaml at INRIA, "/Caml supports 
functional, imperative, and object-oriented programming styles/".
I think that you are interested by the functional one.
So, even if Ocaml allows you to make algorithm with the imperative 
features, it is interesting to make programs without them almost for two 
reasons :
  - this is an other way to think your program
  - for a better quality of your program (less global var => less 
side-effects) according to my little experience

As for designing method, it seems that flow charts are generally 
convenient but not for all (ex: concept of interface with signature of a 
module).
As for me, I almost need a design language to describe a project that is 
already developed and data-flow could be extracted from the code (this 
is doc-generation).
At a higher level, if you want to describe organization of you project 
into modules and libraries, you can use component diagram in UML to have 
a standard representation.

I regret that modeling tools are not used for ocaml development, I think 
it could be better to share same methods and representation in that domain.


Stéphane Duprat


Julien Peeters a écrit :
> Ok,
>
> Thanks all ones for answers...
>
> I imagine that designing applications with functional languages is much
> different than with imperative ones.
> I was wondering on which points the difference is significant?
> Does common oriented object design patterns can be used with OCaml?
> And what, for a developer, is the work to do to change his way of
> thinking?
>
> I envisage to learn OCaml deeply and than I want to set the basis to do
> the change from imperative languages to functional ones.
>
> P.S. : somebody have reference books which goes over this subject?
>   


[-- Attachment #2: Type: text/html, Size: 2185 bytes --]

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

end of thread, other threads:[~2007-02-05 10:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-04 15:33 Modeling tool for OCaml? Julien Peeters
2007-02-04 17:40 ` [Caml-list] " Robert Fischer
2007-02-04 17:56   ` Alwyn Goodloe
2007-02-04 18:41     ` Julien Peeters
2007-02-04 20:43       ` Jon Harrop
2007-02-04 23:30         ` skaller
2007-02-05 10:00       ` Stéphane DUPRAT

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