Dropboxは全部Pythonで信頼性の高いソフトウェアを作った(前編)~PyCon APAC 2013

2013年9月19日


PythonPyCon APAC 201391314PyCon APAC

PythonGoogleDropbox使1Pycon APAC 20132調Dropbox3Rian HunterDropboxPython

調

One Million Lines of Python

fig



910
fig

Rian HunterMIT5Dropbox3WindowsMacDropboxLinux

20082011Dropbox

Python

Python


CC++PythonHaskell

C使
fig

Haskellを使うと、賢くなったような、アタマが良くなった感じがします。

fig

そしてPythonだと気分がいい。これが求めていたことなんだと感じました。

fig

ということで今日はPythonについて話しましょう。

DropboxはすべてをPythonで開発している

大規模なPythonでの開発。Dropboxでは、サーバとクライアントのコードをまとめてて93万7707行の規模になっています。

fig

125



Dropbox使CPU100使使

WindowsMacLinuxOSLinux

Python
fig

それをどうやっているか。私たちは大規模なプラットフォーム非依存の同期コアを持っています。だいたい数万行。そして、比較的小さなプラットフォーム依存のファイルシステム実装。

fig

また、大規模なプラットフォーム非依存のGUIコントローラーロジック、そしてプラットフォーム依存のGUI実装、例えば線の描画のようなものもあります。

fig

これらの実装には次のようなライブラリを使っています。

fig

UIにはWxPytho、CocoaはMac用です。

fig

パッケージングに使っているのはこれらです。

fig

Pythonはシンプルで学ぶのも簡単


Python使6使

Python
fig

Python使
fig

CPython


fig

そしてもっとも大事なことは、楽しいこと。それにDropboxには(Pythonの開発者である)Guido van Rossumがいますから。

fig

Pythonで信頼性の高い基盤を作ることは可能だ

Pythonには正直に言うと悪いこともあります。

よく言われるのは、遅いしマルチスレッドをサポートしていない、ということ。検索すればこの手の話がいっぱいでてきます。

fig

PythonPython


fig



Python
fig

実際にわれわれはそうしたのですから。

fig

われわれは何百万ものユーザーがいて、これはGoogleやFacebookやTwitterに比肩する規模です。

fig

何億ものユーザーがわれわれのソフトウェアをデスクトップにインストールしていて、これはChromeやFirefoxといったソフトウェアに比肩する規模でもあります。

fig

Python

Python

あわせて読みたい

プログラミング言語 殿堂入り Dropbox Python SaaS システム開発




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


10


DockerKubernetesPodman Desktop 1.11AppleAMD64Rosetta 2
使610GitLab調
FirefoxAIChatGPTGoogle GeminiHuggingChat
GitLabGoogle CloudGitLabGoogle Cloud
JetBrainsGoogle GeminiGitHub CopilotJetBrains AI Assistant
Rust使Safety-Critical Rust Consortium
FastlyCDNDDoSWasmKV
GoogleUIAndroidGoogle AI Studio
AppleSwiftSwift AssistXcode 16
State of JavaScript 20231ReactNext.js23500