On Fri, May 20, 2011 at 19:39, Beliavsky <beliav...@aol.com> wrote: > I thought this essay on why one startup chose Python was interesting. > > http://www.quora.com/Why-did-Quora-choose-Python-for-its-development > > PHP was out of the question. Facebook is stuck on that for legacy > reasons, not because it's the best choice right now.[1] Our main > takeaway from that experience is that programming language choice is > very important and is extremely costly to change. > > Python was a language that Charlie and I both knew reasonably well > (though I know it a lot better now than I did when we started). We > also briefly considered C#, Java, and Scala. The biggest issues with > Python are speed and the lack of typechecking. > > C# seemed pretty promising. As a programming language, it's great, > but: > > •We didn't want to be on the Microsoft stack. We were up for learning > something new, and MS SQL Server actually seemed pretty good, but we > knew we'd need to integrate with lots of open source code that has > only second-class support for .NET, if it supports it at all. Also, > most of the best engineers these days are used to open source stuff. > •We didn't want to take the risk of being on Mono (an open source > implementation of C#/.NET). It's not clear how long funding will be > around for that project, and I'd heard of various performance > problems. Plus, it seemed like everything else in the C# ecosystem > would assume we were on the Microsoft stack. > > For a lot of little reasons, Java programs end up being longer and > more painful to write than the equivalent Python programs. It's also > harder to interoperate with non-Java stuff. Scala had a lot of the > downsides of Java and the JVM, although it wasn't quite as bad. The > language seemed a little too new and like it would bring some > unnecessary risk (for example, who knows how good will support be in > 10 years). > > Two other languages we very briefly thought about were OCaml and > Haskell (neither had big enough ecosystems or good enough standard > libraries, and both were potentially too hard for some designers/data > analysts/non-engineers who might need to write code). > > We decided that Python was fast enough for most of what we need to do > (since we push our performance-critical code to backend servers > written in C++ whenever possible). As far as typechecking, we ended up > writing very thorough unit tests which are worth writing anyway, and > achieve most of the same goals. We also had a lot of confidence that > Python would continue to evolve in a direction that would be good for > the life of our codebase, having watched it evolve over the last 5 > years. > > So far, we've been pretty happy with the choice. There's a small > selection bias, but all of the employees who'd been working with other > languages in the past have been happy to transition to Python, > especially those coming from PHP. Since starting the following things > have happened: > > > •Python 2.6 got to the point where enough of the libraries we used > were compatible with it, and we made a very easy transition to it. > •Tornado (web framework) was released as open source, and we moved our > live updating web service to that. > •PyPy got to the point where it looks like it will eventually be > usable and will give us a significant speedup. > > All together, these give us confidence that the language and ecosystem > is moving in a good direction. > > [1] What are the horrors of PHP? and Do Facebook engineers enjoy > programming in PHP? and Why hasn't Facebook migrated away from PHP? > and What are some of the advantages of PHP over other programming > languages? for more on that. > Via Nizameddin Haşim Ordulu and JR Ignacio. > -- > http://mail.python.org/mailman/listinfo/python-list >
They considered Haskell and OCaml and not a single mention of Perl? -- Dotan Cohen http://gibberish.co.il http://what-is-what.com -- http://mail.python.org/mailman/listinfo/python-list