Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-11-04 (16:06)
From: Alan Falloon <Al.Falloon@s...>
Subject: Re: [Caml-list] what is high-level
David Teller wrote:

>Still, in OCaml/Haskell/ML, you do need some understanding of the type
>system, which is typically not necessary in other programming languages.
To write software you need to have some notion of types. By that I mean 
that you need an understanding of what values a certain operation can 

In run-time type checked languages (and in untyped lagnuages),  its up 
to the programmer to keep the type system in thier head. This makes the 
type system fairly flexible and lets them use whatever concepts make 
sense to them, but its still a type system. This is useful for novices, 
but tends to scale poorly. It also means that even users who invent a 
sophisticaed type system for thier project are unlikely to share 
concepts with other advanced users.

In compile time typed languages, everyone has to agree on the type 
system. So, in modern languages, you get a push toward more 
sophisticated type systems than your average beginner can cope with, and 
with different concepts than an advanced user from dynamic languages 
would understand.

I think the biggest barrier is the language. It took me forever to 
figure out what a 'row variable' was. As far as I can tell its how you 
do "duck typing" (if it quacks like a duck and walks like a duck...) in 
a static language. Row variable is a good term when you are inventing 
the system or writing a paper on it, but when introducing it to users 
who already know Python saying "duck typing" will make it clear in seconds.

What we really need is a concept map from the popular languages (C, C++, 
Java, Python, Perl) to OCaml. Show common idioms in those languages and 
how they look in OCaml, and if there is a better way in OCaml then show 
that too. It might not make a good Wikipedia article, but it is the sort 
of project well suited to a Wiki. Is there an OCaml Wiki?

Alan Falloon