Re: [Caml-list] [Was: OCamlJit 2.0]
2010/11/20 Yoann Padioleau pada...@wanadoo.fr: Do we have example of big companies porting their whole codebase to another language ? Linspire? The distro ERS went to work, formely Lindows. They had everything in OCaml and then rewrote to Haskell. It seems to me that OCaml wasn't functional enough. It seems to me that they broke, too. ___ 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
Re: [Caml-list] [Was: OCamlJit 2.0]
On Nov 20, 2010, at 16:19 , Vincent Balat wrote: 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. 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. Would it be completely inconceivable for a company like facebook to reimplement everything using a fast well designed typed language instead of spending hundreds of millions of dollars on machines that run PHP bytecode interpreters? (quoting Yoann) It's probably not a technical decision, but more likely a marketing decision. If you tell Joe 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?. Vincent [not completely joking] 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
Re: [Caml-list] [Was: OCamlJit 2.0]
On Nov 20, 2010, at 7:42 AM, Benedikt Meurer wrote: On Nov 20, 2010, at 16:19 , Vincent Balat wrote: 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. 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. Would it be completely inconceivable for a company like facebook to 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 bytecode interpreters? (quoting Yoann) Apparently they decided to keep PHP and switch from a slow bytecode interpreter to a 2x-faster compiler. 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. Vincent [not completely joking] 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 ___ 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
Re: [Caml-list] [Was: OCamlJit 2.0]
On Nov 20, 2010, at 17:10 , Yoann Padioleau wrote: 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 ? Joe is 99.9% of world's population, excluding experts in this special area. 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. You can develop web services using probably any programming language available in the world. That's what I was about to say, it doesn't matter from a technological point of view. So if the programming language is irrelevant, but you have to pick one, you'll start looking for arguments to prefer one over the other (based on available libraries, marketing, etc.). Some argument made Facebook pick PHP (instead of Perl, Java, Ruby, C/C++, OCaml, Haskell, Standard ML, whatever), probably something trivial like availability of PHP developers, or simply because PHP was popular at that time (i.e. there were people who knew the term PHP). Now the world looks different of course, there are hundreds of millions lines of existing code, and really porting all that code to a new language would involve a lot of effort, money and time. 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
RE: [Caml-list] [Was: OCamlJit 2.0]
Do we have example of big companies porting their whole codebase to another language ? Yes, of course. Companies modernise all the time. We have a client who just started porting 1MLOC of C++ to F#. Flying Frog have ported hundreds of thousands of lines of OCaml to F#. It happens all the time but it is even more likely to happen as a consequence of multicore. Cheers, Jon. ___ 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
Re: [Caml-list] [Was: OCamlJit 2.0]
Am Samstag, den 20.11.2010, 08:10 -0800 schrieb Yoann Padioleau: On Nov 20, 2010, at 7:42 AM, Benedikt Meurer wrote: On Nov 20, 2010, at 16:19 , Vincent Balat wrote: 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. 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. Would it be completely inconceivable for a company like facebook to 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. It's not a matter of the technical migration. You simply wouldn't find enough engineers that can master a fast well designed typed language (assuming here you have the more advanced ones in mind :-) ). Also, there is the question whether it is the best approach to let the most talented developers in the company program the user interface, with day-to-day tasks like hey Joe, can you please fix this broken link. (Not that there are also complicated UI's but these are rare.) At Mylife.com (where I'm currently consulting for) large parts of the backend are now running in Ocaml, but the web frontend is done by another team, and there is PHP involved. IMHO, it would be a misallocation of human resources if we (the Ocaml team) also did the frontend. Do we have example of big companies porting their whole codebase to another language ? Usually languages are only switched when a completely new project is started. Gerd instead of spending hundreds of millions of dollars on machines that run PHP bytecode interpreters? (quoting Yoann) Apparently they decided to keep PHP and switch from a slow bytecode interpreter to a 2x-faster compiler. 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. Vincent [not completely joking] 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 ___ 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 -- Gerd Stolpmann, Bad Nauheimer Str.3, 64289 Darmstadt,Germany g...@gerd-stolpmann.de http://www.gerd-stolpmann.de Phone: +49-6151-153855 Fax: +49-6151-997714 ___ 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
Re: [Caml-list] [Was: OCamlJit 2.0]
On Nov 20, 2010, at 8:25 AM, Benedikt Meurer wrote: You can develop web services using probably any programming language available in the world. That's what I was about to say, it doesn't matter from a technological point of view. So if the programming language is irrelevant, but you have to pick one, you'll start looking for arguments to prefer one over the other (based on available libraries, I think this is the key, available libraries and tools around the language. marketing, etc.). Some argument made Facebook pick PHP (instead of Perl, Java, Ruby, C/C++, OCaml, Haskell, Standard ML, whatever), probably something trivial like availability of PHP developers You think smart people in startups make big decisions based on such trivial things ? I guess they've chosen PHP in 2005 because it made sense to choose PHP in the context of what they were doing: prototyping a social website as soon as possible by reusing as much as possible (Apache, Mysql, etc). I know OCaml, I know PHP, I know Java, and in 2005 I've written my homepage in PHP, not OCaml, not Java. , or simply because PHP was popular at that time (i.e. there were people who knew the term PHP). Now the world looks different of course, there are hundreds of millions lines of existing code, and really porting all that code to a new language would involve a lot of effort, money and time. 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 ___ 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
Re: [Caml-list] [Was: OCamlJit 2.0]
On Nov 20, 2010, at 9:08 AM, Jon Harrop wrote: Do we have example of big companies porting their whole codebase to another language ? Yes, of course. Companies modernise all the time. We have a client who just started porting 1MLOC of C++ to F#. How they do that ? Are they using compiler frontends to assist them in automatically translating part of the code to F# ? Flying Frog have ported hundreds of thousands of lines of OCaml to F#. OCaml and F# are very similar language, so such porting does not look that hard. Translating from C++ to F#, or from PHP to Java seems more complicated. I wonder what kind of techniques people have developed to help such language-to-language translation. It happens all the time but it is even more likely to happen as a consequence of multicore. Cheers, Jon. ___ 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
RE: [Caml-list] [Was: OCamlJit 2.0]
Yoann Padioleau wrote: On Nov 20, 2010, at 9:08 AM, Jon Harrop wrote: Do we have example of big companies porting their whole codebase to another language ? Yes, of course. Companies modernise all the time. We have a client who just started porting 1MLOC of C++ to F#. How they do that ? Are they using compiler frontends to assist them in automatically translating part of the code to F# ? We do it for them for a fee, using magic. We tried automated translation (from Fortran) but it is usually easier just to knuckle down by hand. Old code bases are usually 90% cruft anyway. That 1MLOC of C++ could have been 100kLOC of C++ but now it will be 10kLOC of F# instead. Flying Frog have ported hundreds of thousands of lines of OCaml to F#. OCaml and F# are very similar language, so such porting does not look that hard. Yes. The main thing is that OCaml source is nice and readable so it is easy to translate even if it makes heavy use of features that don't port (polymorphic variants, macros). C++ source can be a nightmare so you really need to pin down a precise specification for what it does using advanced techniques like poking it with a stick. Translating from C++ to F#, or from PHP to Java seems more complicated. I wonder what kind of techniques people have developed to help such language-to-language translation. The only viable option seems to be to do it by hand. You can churn through an enormous amount of code when you put your mind to it... Cheers, Jon. ___ 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