| tags: | python, column |
|---|---|
| created: | 2005-10-30T21:34:04 |
日本でPythonユーザが少ないことについて。 なぜ日本においてPythonユーザはマイノリティーなんでしょうか?
1. ~ 3. がPythonならではの長所でしょう。 後半は成熟したオープンな言語環境なら多くの言語が持っていると思います。
1. はPythonの最も判りやすい特徴です。 (ぜひソースを読んでみてください。)
2. についても実際にPythonではコメントやドキュメントが重視されているように感じます。 (ぜひソースを読んでみてください。) この機能があるおかげでユーザは一様な手順で関数やクラスのドキュメントを参照する事ができます。
3. についてですが、Pythonが増強されていく手続きはより健全に行う仕組みを持っています。 Python Enhancement Proposal (PEP)を事前に公開し、 この案の議論をちゃんと行ってから次期バージョンの仕様が決定していく。
このことはバージョンアップによる混乱を最小限にとどめる効果を発揮しています。
4. については、標準添付されるライブラリだけでもかなりの範囲をカバーしていますし、 おそらく英語圏では他のどんな言語環境でも追随できないほどの多種多様なライブラリが公開されているでしょう。
5. は、Pythonの著作権表示をドキュメントに含めておきさえすれば、 自己責任の範囲で自社アプリの中に組み込んで利用する事に制限がありません。 ランタイムのバンドル配布にしてもライセンス料金などは一切かかりません。
6. 1行コードから、数十万行のプロジェクトまで十分な実績があり、1人から多人数の分担作業もこなす事ができますので、 手元のバッチ処理から分散ネットワークアプリケーションまで十分構築できる言語仕様を持っています。 テスト・デバッグ機能も重視して設計されているので、巨大アプリケーションでも問題点を発見するための支援を受けられます。
こんなにいいところを持つ「Python」が日本においてマイナーなのはなぜなのでしょう?
日本語ドキュメントがないといわれていた時代はとっくに終了しています。 標準ドキュメントの最新版でもほとんどは日本語への翻訳を終えています。 オンラインドキュメントに関しては最も充実しているグループに入ると思われます。
書籍数はたしかに少なめですが・・・
結構最近のリリースですがPythonのバージョン2.4以降であれば、 CJKコーデックをバンドルするようになりました。 標準で日本独特のコード体型「ShiftJIS」やその他の形式も相互変換可能になりました。 (以前のバージョンでは、追加モジュールのインストールで対応できます。)
Pythonをはじめ動的スクリプト言語はWebサービス分野への活用が多く、 クライアントアプリケーションとしてはまだまだ利用されていません。
サービスとして利用する事はあっても、手元にPythonをインストールする状況はほぼ無いでしょう。
Red Hat系Linuxなどでは、 カスタマイズやコンフィギュレーションを容易に行うためのユーティリティなどに Pythonが使われだしています。
Linuxの多くはPythonインストールが必須になっていると言えます。
Googleの多くのサービスなどはPythonで開発されているようです。 つまり、PythonによるWebサービスを利用した事が無い人を探す方が困難であるという事が言えます。
ほんとはPythonは世の中のあちこちで利用されているのに目に見えにくいだけなんです。
Pythonでできていたり利用しているアプリケーションを挙げていくと・・
オールインワンパッケージのWebアプリケーションサーバー。
日本ではPythonよりこちらの方が有名らしい。
といった高機能なサーバーをインストーラ一発で運用開始できます。
また膨大な「プロダクト」が公開されており、 ありがちなアイディアは探せば実現済みのものが見つかるでしょう。
オープンソース系3Dモデラとしては高機能な部類に入るのがこの「Blender」です。
内部プラグインの標準言語としてPythonを利用しています。
Pythonを用いた主な活躍は、
などがあります。 すでにかなり多くのプラグインが公開されています。
ネイティブSVGを取り扱うベクター系ドローツール
このInkscapeでもPythonによるプラグインの作成が可能になっています。 まだ公開されたプラグインは多くありませんが。
海外でのメジャーP2Pプロトコルの一つ。Pythonで開発されました。
最近ではLinuxディストリビューションをBitTorrentで公開するという場合も増えています。 BitTorrent対応やBitTorrentベースのファイル共有アプリケーションはたくさんあります。
P2Pって同じプロトコル利用者が多くネットに接続する事が重要ですね。
そこでメジャーであるという事はすごく価値のあることだといえるでしょう。
Note
BitTrrent -> BitTorrent ミススペルしてました。お恥ずかしいです。
Pythonランタイムの.Net対応版。
上記三種類があります。
IronPythonはCLR(.Net中間言語)で構築されており、Python本体も作ったコードもCLR上で動作します。 つまり、従来のPython用に作られているライブラリは利用できません。多くの機能が揃っている.Netライブラリが利用できますが。 CLRの最適化のツボにはまると元祖Python(区別するのに「CPython」と呼ばれています)よりも演算が早いというデータもあります。
Python.NetはCLRのライブラリも利用できるPythonです。もちろんPythonの従来のライブラリも使えます。 その代わりランタイム依存がより多く発生するでしょう。
現段階はマイクロソフトからはベータ版としてリリースされていますが、 VisualStudioの次期バージョンにバンドルされる可能性は十分あるでしょう。
PythonランタイムのJava対応版。
Javaランタイム上で動作し、Javaの膨大なライブラリとの融合を実現しています。 Javaライブラリが呼び出せる程度ではありません。Javaライブラリが提供するクラスを継承したPythonクラスを派生できます。
WindowsにおけるPythonの実績を積み立てていくしかありませんかね~。