技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> Quora - Python 驱动

Quora - Python 驱动

浏览:3076次  出处信息

    写这个主要是因为我做自己的这个网站用的就是 Python 技术(基于简洁的 web.py 框架)。虽然 Python 只是业余爱好,不怎么熟悉(每次写代码都得上网查好多资料,包括语法),但是很喜欢它。这几天发现最近很火的新问答网站 Quora 也是用 Python 做的,它自己网站上有一个问题就是――

Quora 是使用什么语言和框架做的?

    What languages and frameworks were used to code Quora?

    创始人 Charlie 的回复:

后端使用 Python 语言,Pylons 框架,但是框架一多半被自己的系统替换(LiveNode/webnode2)前端 JavaScript 基于 jQuery用 Thrift 做后端服务器之间通信Comet Server 使用 Tornadohosting 主要使用 Amazon EC2, S3目前数据库使用 MySQL,memcached 做缓存,还有两个用 C++ 写的服务一起作为 data store版本控制用 Git

    这个组合看起来不错!(其实我就是看着酷,其中有好多技术都从来没有尝试过。) 有人接着问:

为什么 Quora 选择 Python 作为开发语言

    Why did Quora choose Python for its development?. 下文只是简单整理,不是翻译。

    创始人 Adam 的回复里,提到两个创始人正好都比较熟悉 Python. 另外他说明了排除其它语言的过程:

    PHP 根本不考虑。Facebook 陷进去无法脱身,不代表它是目前最好的选择,由此得到的经验是编程语言的选择非常重要而且改变的代价非常大。Adam 此处给了其它几个链接,其中有指出 PHP 一大堆弱点的,也包括一个问题 "Do Facebook engineers enjoy programming in PHP?". 我很赞同 Facebook 的工程师说的,familiarity breeds contempt. 没有完美的语言,每一种语言都有长有短,当把它用到极限的时候,短处就变得很显眼并让人烦恼。我个人认为 PHP 也仍然是不差的选择。

    C# - 看起来不错但是 -

他们不想把基础搭建在微软的技术平台上。SQL Server 很好,不过 Quora 需要一大堆开源软件,这些代码即使支持 .NET, 也支持得比较差。不想冒险使用 Mono,因为不知道它能撑多久,而且据说有性能问题

    Java 程序因为一些原因很容易变得更长,写起来比 Python 痛苦多了。

    Scala 太新,也是一种冒险,另外虽然不像 Java 那么差,它也天生继承 JVM 的一些弱点。

    Python 虽然有性能问题,但是 Quora 一些性能很关键的代码都用 C++ 写(Python 的优势,Java 做起来相对困难)。至于类型检查的缺乏,Quora 通过完善的单元测试来弥补。

    Quora 另一位创始人 Charlie 加了几点:

创立 Quora 的时候,Python 有许多很好的 web frameworkPython 的数据结构跟 JavaScript 映射很好,这样 CS 之间交互数据很方便Python 代码更易读Python 在各方面有很多成熟的 library

    还有一个问题:

为什么 Quora 要用 Pylons 做开发

    Why did Quora choose to develop in Pylons?. Charlie 说他们想把 Pylons 的很多东西替换成自己的,比如他们不需要模版和 ORM. 在这方面,Pylons 比 Django 之类的要好。

    说到这个,我个人也很不喜欢 ORM,比如 Hibernate, 比如 RoR 的 ActionRecord. 如果认真做一个网站,不使用 ORM 不会让你的速度变慢多少。而使用了 ORM 必然会有额外的负担,数据库也更加不透明,定制变得更困难。


    希望 Python 这个语言发展得越来越好,如链接中 Adam 所说的。

建议继续学习:

  1. 配置Nginx+uwsgi更方便地部署python应用    (阅读:105196)
  2. 如何成为Python高手    (阅读:53131)
  3. python实现自动登录discuz论坛    (阅读:31412)
  4. python编程细节──遍历dict的两种方法比较    (阅读:18826)
  5. 每个程序员都应该学习使用Python或Ruby    (阅读:16092)
  6. 使用python爬虫抓站的一些技巧总结:进阶篇    (阅读:11906)
  7. 30分钟3300%性能提升――python+memcached网页优化小记    (阅读:11858)
  8. 我的PHP,Python和Ruby之路    (阅读:11691)
  9. Python处理MP3的歌词和图片    (阅读:8125)
  10. 关于使用python开发web应用的几个库总结    (阅读:7327)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1