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=0.4 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 5524DBBCA for ; Fri, 9 May 2008 14:33:21 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhgBANPhI0jBtPs+mmdsb2JhbACSBgEBAQEBBgcIBxEFmHQ X-IronPort-AV: E=Sophos;i="4.27,460,1204498800"; d="scan'208";a="10548406" Received: from unknown (HELO mailgw4.ericsson.se) ([193.180.251.62]) by mail2-smtp-roc.national.inria.fr with ESMTP; 09 May 2008 14:33:20 +0200 Received: from mailgw4.ericsson.se (unknown [127.0.0.1]) by mailgw4.ericsson.se (Symantec Mail Security) with ESMTP id 6937420247; Fri, 9 May 2008 14:33:18 +0200 (CEST) X-AuditID: c1b4fb3e-aa991bb000004ec0-41-4824448e3800 Received: from esealmw128.eemea.ericsson.se (unknown [153.88.254.121]) by mailgw4.ericsson.se (Symantec Mail Security) with ESMTP id 552A020092; Fri, 9 May 2008 14:33:18 +0200 (CEST) Received: from esealmw128.eemea.ericsson.se ([153.88.254.176]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Fri, 9 May 2008 14:33:18 +0200 Received: from ws73032.uab.ericsson.se ([130.100.73.32]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Fri, 9 May 2008 14:33:17 +0200 Received: from [153.88.16.170] by ws73032.uab.ericsson.se (8.11.7p2+Sun/client-1.3uab4) id m49CXGa05791; Fri, 9 May 2008 14:33:17 +0200 (MEST) Message-ID: <4824448C.9030102@ericsson.com> Date: Fri, 09 May 2008 14:33:16 +0200 From: "Ulf Wiger (TN/EAB)" User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: Jon Harrop Cc: caml-list@yquem.inria.fr Subject: not all functional languages lack parallelism References: <200805090139.54870.jon@ffconsultancy.com> In-Reply-To: <200805090139.54870.jon@ffconsultancy.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 09 May 2008 12:33:17.0823 (UTC) FILETIME=[DBC0F8F0:01C8B1D0] X-Brightmail-Tracker: AAAAAA== X-Spam: no; 0.00; parallelism:01 parallelism:01 scalable:01 jocaml:01 erlang:01 statically:01 erlang:01 haskell:01 haskell:01 ocaml:01 ocaml:01 node:01 functional:02 functional:02 btw:03 Jon Harrop skrev: > > 1. Lack of Parallelism: Yes, this is already a complete show > stopper. Exploiting multicores requires a scalable concurrent > GC and message passing (like JoCaml) is not a substitute. > Unfortunately, this is now true of all functional languages > available for Linux, which is why we have now migrated > entirely to Windows and F#. Dear Jon, I will keep reminding you that Erlang is a functional language (just not a statically typed one). It has very lightweight processes, concurrent schedulers on multicore, and per-process GC. It scales very well on multicore. I can understand if you don't consider Erlang a competitive alternative for building ray tracers, but I will protest while you insist on making sweeping statements about *all* functional languages that are patently untrue for Erlang. Both in the Haskell and Erlang communities, there is occasional reference to Erlang/Haskell/OCaml as a very useful triple, having much in common, but each being especially good in some fairly well-defined area. I think this perspective is useful for all three languages. BR, Ulf W BTW, the ErlOcaml project is beginning to reach a state of usefulness, at least for experiments: http://code.google.com/p/erlocaml/ It allows an Ocaml program to act as a "hidden erlang node", talking to Erlang programs via Erlang message passing. One possible use for this could be to use Erlang as a systems programming language, keeping your application logic in OCaml. Erlang/OTP comes with practically everything you need to turn your product into a robust cluster, including a distributed database and some very useful logic for error recovery and in-service upgrade. And it's all Open Source. Many thanks to Ludovic Coquelle for all the coding he has done. The rest of us have kept to the cheerleading section for now.