Dropbox 绝大部分是用 Python 开发的。用到 Python 的地方有:服务器后台、客户端、Dropbox 网页版前段、API 后台、数据分析。
在服务器端、桌面版客户端使用的是 Python 的官方实现 CPython。Android 和 iOS 上由于内存限制使用的是原生应用(Java、Obj-C)。
用到过的 Python 技术包括:
- Twisted:基于事件的网络框架,他们用这个做了服务器端推送通知服务
- PyObjC:OS X 客户端系统调用
- PyWin32:Windows 客户端系统调用
- WxPython:跨平台客户端界面
- ctypes:外部功能调用,用来调用系统功能(如 Windows 的 DLL)
- py2exe:Windows 平台打包工具
- py2app:OS X 平台打包工具
PyCon 2011 上 Dropbox 的 Rian Hunter 对此有过介绍
http://ontwik.com/python/pycon-2011-how-dropbox-did-it-and-how-python-helped/