Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.dougwise.org!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!news.wiretrip.org!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'python,': 0.01; 'startup': 0.04; 'new,': 0.05; 'stuff.': 0.05; 'subject:Python': 0.06; 'seemed': 0.07; 'python': 0.08; 'chose': 0.09; 'php.': 0.09; 'plus,': 0.09; 'stack.': 0.09; 'c++': 0.12; 'written': 0.14; 'thorough': 0.14; 'wrote:': 0.14; 'code).': 0.16; 'codebase,': 0.16; 'ecosystem': 0.16; 'essay': 0.16; 'goals.': 0.16; 'migrated': 0.16; 'compatible': 0.16; 'question.': 0.16; 'cc:addr :python-list': 0.17; 'language,': 0.17; 'language': 0.18; "hasn't": 0.19; 'integrate': 0.19; 'interesting.': 0.19; 'programming': 0.19; 'java,': 0.19; 'received:74.125.82.44': 0.19; 'received:mail-ww0-f44.google.com': 0.19; 'header:In-Reply-To:1': 0.21; 'java': 0.21; "wasn't": 0.22; 'cc:2**0': 0.22; 'assume': 0.23; 'cc:no real name:2**0': 0.23; '(though': 0.23; 'fri,': 0.23; 'programs.': 0.23; 'project,': 0.24; "we'd": 0.24; 'code': 0.24; 'libraries': 0.25; 'moving': 0.26; 'tests': 0.26; 'url:mailman': 0.26; 'message-id:@mail.gmail.com': 0.28; 'subject:?': 0.29; 'server': 0.29; 'transition': 0.29; 'cc:addr:python.org': 0.30; 'url:listinfo': 0.30; '(since': 0.30; 'far,': 0.30; 'usable': 0.30; 'looks': 0.31; 'it.': 0.31; 'equivalent': 0.31; "didn't": 0.31; 'change.': 0.32; 'actually': 0.33; '(for': 0.33; 'starting': 0.33; 'too': 0.33; 'things': 0.33; 'source': 0.34; '[1]': 0.34; 'direction': 0.34; 'php': 0.34; 'all.': 0.35; 'example,': 0.35; '2.6': 0.35; 'backend': 0.35; 'c#,': 0.35; 'legacy': 0.35; 'source,': 0.35; 'stuck': 0.35; 'languages': 0.35; 'else': 0.35; 'quite': 0.36; 'funding': 0.36; 'selection': 0.36; 'considered': 0.36; 'open': 0.36; 'received:google.com': 0.37; 'something': 0.37; '20,': 0.37; 'engineers': 0.37; 'push': 0.37; 'extremely': 0.37; 'pretty': 0.37; 'two': 0.37; 'url:python': 0.38; 'received:74.125.82': 0.38; 'received:74.125': 0.38; 'url:org': 0.38; 'but': 0.38; 'subject:: ': 0.38; 'some': 0.38; "i'd": 0.39; 'got': 0.39; 'worth': 0.60; 'more': 0.60; 'best': 0.60; 'url:co': 0.62; 'released': 0.63; "we've": 0.63; 'our': 0.63; 'bring': 0.64; 'direction.': 0.65; 'harder': 0.65; 'enjoy': 0.68; 'biggest': 0.73; 'unnecessary': 0.73; 'risk': 0.75; 'advantages': 0.77; 'confidence': 0.82; '.net,': 0.84; 'charlie': 0.84; 'subject:Why': 0.84; 'subject:choose': 0.84; 'subject:its': 0.84; 'together,': 0.84; '(web': 0.91; 'costly': 0.91; 'good,': 0.91; 'watched': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=FmPsfyuh8jKLqPNdjP0+oB48RkRzlmAEwvbOx+OEd1I=; b=KjKLquRChL6DnVlLzV/GVlQG6wJ9XtUOf9ei4arKRyjhsXiNM10D9zPIGSyz8X/I5s 46Z9fy3I83jlw78dTibTr5/60lKtUocwhMzOXeBkWpZTyNyosPcGjxSkwHBC+AynvCj1 lmSqNNyLDxSYIZZ+4R8JJEf1CUdKpWAAbC3zM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=qy66DpWfYWQXfwFZcuvxqA6nROJNdqQrFtjTCMrY8K5oTpxzrxdkp1XDQ2Y7EjiRJO BDQVrf4SAiFx4sGUGuL5el1/vMvx+WwWPT/tHOEOYka7U5TTRBPPUIbNZIX7oA/tV4HJ 2oXkpV2HXDwqAkUjdecVZ/iUhNzhqPqtTGGLo= MIME-Version: 1.0 In-Reply-To: <80d59383-36a3-4744-85c4-1a0577f1d3a6@dr5g2000vbb.googlegroups.com> References: <80d59383-36a3-4744-85c4-1a0577f1d3a6@dr5g2000vbb.googlegroups.com> Date: Fri, 20 May 2011 23:47:15 +0300 Subject: Re: Why did Quora choose Python for its development? From: Dotan Cohen To: Beliavsky Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 87 NNTP-Posting-Host: 82.94.164.166 X-Trace: 1305924438 news.xs4all.nl 49048 [::ffff:82.94.164.166]:49241 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:5882 On Fri, May 20, 2011 at 19:39, Beliavsky 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: > > =E2=80=A2We didn't want to be on the Microsoft stack. We were up for lear= ning > 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. > =E2=80=A2We 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: > > > =E2=80=A2Python 2.6 got to the point where enough of the libraries we use= d > were compatible with it, and we made a very easy transition to it. > =E2=80=A2Tornado (web framework) was released as open source, and we move= d our > live updating web service to that. > =E2=80=A2PyPy 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=C5=9Fim Ordulu and JR Ignacio. > -- > http://mail.python.org/mailman/listinfo/python-list > They considered Haskell and OCaml and not a single mention of Perl? --=20 Dotan Cohen http://gibberish.co.il http://what-is-what.com