Browse thread
Teaching bottomline, part 3: what should improve.
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | David Teller <David.Teller@e...> |
| Subject: | Re: [Caml-list] Teaching bottomline, part 3: what should improve. |
On Wed, 2007-05-23 at 00:39 +0100, Jon Harrop wrote: > Fascinating. Thanks for reporting the information. If I might be so brash as > to comment on the problems you had that have already been fixed by F#: I mentioned F# to them, by the way. Somewhere along the lines of "It looks good, it might be the future, unfortunately, at the moment, you need Windows and 400€ worth of Visual Studio to try it". > There are two possibilities here: > > You want to use Windows => Use F#, Visual Studio and F# for Visualization and > not OCaml. > > You want good free software => Use Linux and not Windows. Not my call, unfortunately. So far, I have no budget, and Windows. > > * Error messages of the type system are somewhat obscure. [...] > F# currently has better graphical throwback of inferred type information but > slightly worse messages, IMHO. Good to know. Can I get this graphical throwback without VS ? > OCaml is > largely undocumented (the compiler, several code libraries, the top-level, > camlp4). There is some additional documentation (e.g. my book) but you must > pay for it. There's no way I'm going to demand additional purchases from my students. > > * Arrays of arrays (of arrays...) are a bit obscure for students, > > although they're getting better at it. > > F# provides multidimensional arrays, arbitrary-size arrays, immutable arrays, > resizeable arrays, allows array subscript syntax to be overloaded and is > faster than OCaml on array code. Arrays are a real weak point of OCaml ATM, > along with div and mod, functors, concurrency and some other things. Div and mod ? How so ? > If you want your students to be future proof then you would do well to prepare > them for massively parallel computing on CPUs with hundreds or even thousands > of cores. OCaml it completely ill-equipped for this. In contrast, F# provides > native threads/locks/semaphores/threads/threadpools inherited from .NET as > well as async programming via extra syntax. Concurrency is beautiful in F# > and it works today. Well, I didn't have enough time to tell them much about threads et al. I just had time to mention their existence. Plus I tend to believe that the OCaml-style future looks more like JoCaml (or Acute, or Oz, or Erlang) than like semaphores. Cheers, David