フリーなオブジェクト指向スクリプトプログラミング言語。パイソン。
Pythonは、オランダ人のグイド・ヴァンロッサムによって開発された。名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』である。Pythonという英単語は爬虫類のニシキヘビを意味し、Python言語のマスコットやアイコンとして使われることがある。
オランダ人であるGuido van Rossumにより開発された。インデントによりブロックを表記するのが大きな特徴。文法がシンプルで覚えやすく、かつ奥深い。標準で必要十二分なモジュールが添付されている「バッテリ付属」言語。BSDライセンスに近くGPL互換のPSFライセンスで配布。ハッカー公認のプログラム入門言語としても名高い*1。
名前の由来は、BBC製作のコメディ番組『空飛ぶモンティ・パイソン(Monty Python)』。また英語で「ニシキヘビ」を意味するため、マスコットやアイコンとして使われることがある。
UNIXライクなシステムはもちろん,WindowsやNokiaの携帯,PSPからNintendo DSまで,マルチプラットフォームで稼働する。
多くのLinuxディストリビューションではPythonがプリインストールされている。FedraCoreのパッケージ管理システムyum,GentooLinuxのportageはPythonで書かれており,Pythonなしにはディストリビューションが成り立たない。ThinkPadにもPythonが入っているらしい(設定ツールで利用しているらしい)。MacOS XにもPythonがプリインストールされている(モデムの設定ツールで利用しているらしい)。
一般的に利用されるPython(CPython)の他にも,複数のPython実装がある。
Java,C++と並んでGoogleで利用されるプログラミング言語がPython。Googleは,サーバの運用管理,アプリのビルドやデプロイ,データログの管理にPythonを全面的に利用している。PythonはGoogleの機動力を支える重要な役目をになっている。Google Groupsのようなエンドユーザ向けサービスもPythonで書かれている。
創始者であるGuidoがGoogleで働いており,50%をGoogleの仕事に,50%をPythonの仕事に使っている。他にも,沢山の著名なPythonista(Python使い)がGoogleに雇われている。
Googleの他にも,YahooやMSN,eBeyのWebサービスにもPythonが使われている。また,HPやIBMのハードウェアテストなどに使用されている実績がある。
Pythonで作成されたアプリケーションサーバ「Zope」はあまりにも有名。Zope上に構築されたPloneというCMSも欧米を中心に人気。Ploneの創始者の一人であるAlexander Limiもやはり,UI設計者としてGoogleにスカウトされた。
最近では,RoR風の開発環境としてDjangoやTurboGearsなども人気がある。
モノシリックなアプリケーションを分散アーキテクチャに移行する際には次の3つの質問に答えられる様にしておく必要がある。 既存のアプリケーションは分解可能なのか? 必要なのはコードの書き直しなのか?それともリファクタリングなのか? 移行にかかる費用はどれくらいなのか? 例えば、CIOから次の様に質問が飛んで来るかもしれない 複雑なモノシリックアプリケーションをマイクロサービスにする移行作業にて、プロジェクトの初日CIOに次のことを尋ねられた。 「このプロジェクトの移行作業はゴルフボールサイズなのか?バスケットボールサイズなのか?旅客機サイズなのか?」 このときに、私はその質問に答えられなかったが、…
このサイトの目的:ソースコードのサイズと管理方法 モノシリックなアプリケーションを移行する際には、コンポーネントを特定し、サイズを図ることが最初の手順となる コンポーネントのサイズとは、コンポーネントが保有する機能の数のことである。 例えば、チケットの販売システムで購入ボタンに紐ずくイベントハンドラがSQLの発行を行うのは明らかにコンポーネントが担う役割の上を行っている。 その場合はイベントハンドラとDAOを別のコンポーネントとして分離しウェイトを減らさなければならない。 ここでのコンポーネントとは、Pythonであればディレクトリ構成による名前空間、C#でのnamespace呼び出しによる名…
この記事の内容 アーキテクチャスタイルに幾つかのケースがあるのと同じように、 リファクタリングの手法にも明確な6段階の手順が存在します。 今回の記事の目的はリファクタリングを行う2通りの方法について説明します。 大規模なリファクタリングを行う前に リファクタリングでやってはいけないこと-象の移行アンチパターン コンポーネントベース分解概要 戦術的フォーク コードベースが分解可能であるとは コンポーネントへの入力と出力の数から判断する 抽象度 アーキテクチャを分解する コンポーネントベース分解 戦術的フォーク 戦術的フォークのデメリット 備考 大規模なリファクタリングを行う前に リファクタリング…