From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 0A38DBC57 for ; Sat, 20 Nov 2010 17:10:08 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsDAPKA50xQDPIaYGdsb2JhbACUMY40CxcLCAYUAx+7AYVLBIRaiRI X-IronPort-AV: E=Sophos;i="4.59,229,1288566000"; d="scan'208";a="79708683" Received: from smtp20.orange.fr ([80.12.242.26]) by mail4-smtp-sop.national.inria.fr with ESMTP; 20 Nov 2010 17:10:07 +0100 Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf2018.orange.fr (SMTP Server) with ESMTP id 29A5920000A5; Sat, 20 Nov 2010 17:10:07 +0100 (CET) Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf2018.orange.fr (SMTP Server) with ESMTP id 18D6820000B4; Sat, 20 Nov 2010 17:10:07 +0100 (CET) Received: from [192.168.1.114] (c-67-188-213-250.hsd1.ca.comcast.net [67.188.213.250]) by mwinf2018.orange.fr (SMTP Server) with ESMTP id 56D9220000A5; Sat, 20 Nov 2010 17:10:02 +0100 (CET) X-ME-UUID: 20101120161002355.56D9220000A5@mwinf2018.orange.fr X-ME-User-Auth: padator@wanadoo.fr Subject: Re: [Caml-list] [Was: OCamlJit 2.0] Mime-Version: 1.0 (Apple Message framework v1081) Content-Type: text/plain; charset=us-ascii From: Yoann Padioleau In-Reply-To: Date: Sat, 20 Nov 2010 08:10:00 -0800 Cc: caml-list@yquem.inria.fr Content-Transfer-Encoding: quoted-printable Message-Id: <6366332A-5DAC-469D-94A4-744E569CA3B0@wanadoo.fr> References: <980786.74593.qm@web111507.mail.gq1.yahoo.com> <023DB1B5-B4D6-4C2A-AAF6-2368F93BEBB6@wanadoo.fr> <201011201619.47211.vincent.balat@pps.jussieu.fr> To: Benedikt Meurer X-Mailer: Apple Mail (2.1081) X-Spam: no; 0.00; compiler:01 speedup:01 bytecode:01 reimplement:01 ocaml:01 bytecode:01 compiler:01 ocaml:01 haskell:01 beginner's:01 bug:01 2.0:98 20,:98 20,:98 webservices:98 On Nov 20, 2010, at 7:42 AM, Benedikt Meurer wrote: >=20 > On Nov 20, 2010, at 16:19 , Vincent Balat wrote: >=20 >> On Nov 19, 2010 21:20:01, Yoann Padioleau wrote: >>> On Nov 19, 2010, at 11:46 AM, Dario Teixeira wrote: >> ... >>>> Actually, Facebook has a compiler that transforms PHP source code = into >>>> C++ [1], and they claim a 50% reduction in CPU usage. >>>=20 >>> Yes, which is good. But if you think about it is "only" a x2 speedup = vs a >>> really slow bytecode interpreter (the Zend PHP interpreter). PHP is = known >>> for being more than 30 times slower than C. >>> It's even slower than Ruby on >>> = http://shootout.alioth.debian.org/u32/which-programming-languages-are-fast= >>> est.php There are lots of opportunities to do better IMHO. >>=20 >> Would it be completely inconceivable for a company like facebook to=20= >> reimplement everything using a fast well designed typed language I think it is inconceivable. I doubt facebook will switch to ocaml and = ocsigen tomorrow :) The problem is how to migrate code to another language smoothly ? You = can not stop all development for a month and say "Hey everybody, we are porting our 10 millions lines of code of PHP to X.". The reason C++ succeeded = was because there was a smooth migration path. C code is valid C++ code. You can incrementally add objects to an existing codebase. Do we have example of big companies porting their whole codebase to = another language ? >> instead of "spending hundreds of millions of dollars on machines that = run PHP=20 >> bytecode interpreters"? (quoting Yoann) Apparently they decided to keep PHP and switch from a slow bytecode = interpreter to a 2x-faster compiler. >=20 > It's probably not a technical decision, but more likely a marketing = decision. If you tell Joe Who is Joe ? A developer ? A user ? A venture capitalist ? > that your webservices run on Java, PHP or .NET, he'll say "great", = "sure" or "wow" (not because Joe's familiar with the technology or the = theory, but because he's familiar with the terms). Tell Joe your = webservices run on OCaml or Haskell and the best answer you can get will = be "what?". I doubt any user care about how facebook is implemented. Twitter and = Foursquare run on Scala and this is not a very popular language. >=20 >> Vincent [not completely joking] >=20 > Benedikt > _______________________________________________ > 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