Re: [Caml-list] [Was: OCamlJit 2.0]

2010-11-22 Thread Elias Gabriel Amaral da Silva
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]

2010-11-20 Thread Benedikt Meurer

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]

2010-11-20 Thread 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.

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]

2010-11-20 Thread Benedikt Meurer

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]

2010-11-20 Thread Jon Harrop
 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]

2010-11-20 Thread Gerd Stolpmann
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]

2010-11-20 Thread Yoann Padioleau

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]

2010-11-20 Thread Yoann Padioleau

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]

2010-11-20 Thread Jon Harrop
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