From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=AWL,DATE_IN_PAST_12_24, SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 43119BC0A for ; Thu, 24 May 2007 15:25:58 +0200 (CEST) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.250]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l4ODPb2M029021 for ; Thu, 24 May 2007 15:25:56 +0200 Received: by an-out-0708.google.com with SMTP id b15so40575ana for ; Thu, 24 May 2007 06:25:56 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:subject:from:to:cc:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding:sender; b=JaNvAy0GSE61WQqvTmCbXlXiEdMSydvzc1jr30PahLDDo+Kw1wmm/X9U+VFEPNASWXZKkkKHQHmCdSqdwhyq0AOQTAfBYj5CcSdbbnTZzU42goVHe+COP2EBVnjZkLZ29gntrjUlfqWBzZHDSLsk/i4WzUAywFlIEX1Z7v7angc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:subject:from:to:cc:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding:sender; b=k9k2iwYK8rkokqZcCMRWAxUdPGmMIEt0+ZygYtPYrYDqn5qtgEy8TopvkBRfpA3gkBTmVhbcnfclNZO5ULlZxD4VUKL6YCneZuMkaXioxtSwcHE1j0JJfTd10j/yBJKX+PUYC0yyPrkhk6y+wlEn1T2twCulN3iWxhPy01voum4= Received: by 10.101.67.8 with SMTP id u8mr1467513ank.1180013155576; Thu, 24 May 2007 06:25:55 -0700 (PDT) Received: from ?192.168.2.12? ( [24.173.161.251]) by mx.google.com with ESMTP id c20sm4783598ana.2007.05.24.06.25.54; Thu, 24 May 2007 06:25:55 -0700 (PDT) Subject: Re: [Caml-list] Teaching bottomline, part 3: what should improve. From: David Teller To: Jon Harrop Cc: caml-list@yquem.inria.fr In-Reply-To: <200705230039.29659.jon@ffconsultancy.com> References: <1179871823.6966.78.camel@Blefuscu> <200705230039.29659.jon@ffconsultancy.com> Content-Type: text/plain; charset=utf-8 Date: Wed, 23 May 2007 16:20:57 -0400 Message-Id: <1179951657.6097.16.camel@Blefuscu> Mime-Version: 1.0 X-Mailer: Evolution 2.10.1 Content-Transfer-Encoding: 8bit Sender: David Teller X-Miltered: at discorde with ID 46559251.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ens-lyon:01 0100,:01 ocaml:01 ocaml:01 compiler:01 camlp:01 arrays:01 arrays:01 syntax:01 functors:01 threads:01 semaphores:01 threads:01 async:01 syntax:01 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