Pythonをめぐる話題
「Sublime Text」をカスタマイズしたくって、 Pythonをちょこっとカジってみた。
【 目次 】
Pythonをめぐる話題
Pythonはパイソンと読む。
恥ずかしい話であるが、私はポイトンと読むのかなと思っていた。
「Google三大言語」(C++、Java、Pythonのこと)のひとつ
PythonにはPerl(やRuby)とは真逆の「やりかたはひとつ」というポリシーがあるという事で、読みやすく、それでいて効率もよいコードをなるべく簡単に書けるようにするという思想が浸透しておりわかりやすいコードをよしとする傾向が強いらしい。
この点は、Pythonの長所ということだあるが、
言い方をかえると、コードの書き方をプログラマーが強制させられるとみる事もでき、この点は好みのわかれるところであると思う。
コードの読み易さと自由度はトレードオフの関係か。
Ruby vs Python
「書くのが楽しい」というプログラミングおたくの言語Rubyとはポリシーがまったく異なるが(と私は思うのだが) オブジェクト指向スクリプト言語としてはRubyのライバルということになる。
PythonとRubyの支持者の事をそれぞれ、PythonistaとRubyistと呼ぶらしい。
大人数のプロジェクトの場合はPythonが、少人数のハッカー集団の場合はRubyってところかな。
Pythonに対する批判も
とは言っても、日本ではマイナーだが世界ではメジャー、無視するわけにもいかない。
これくらいで、どちらが良いかという無益な宗教論争は止めにしよう。
Pythonic
パイソニックとはPython的なって意味かな?
Pythonの精神にのっとった良いプログラミングって事かな?
- Be Pythonic ! - Pythonチュートリアル第二版 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記
- Pythonにまつわるアイデア:Pythonic その1 - Life with Python
Pythonのバージョン
Pythonには2.x系列と3.x系列あり、両方とも使いたいところ。
対応するライブラリ等が多いメジャーな2.xと進化した3.xどっちを選ぶか。
3.xは後方互換性がない。
「Python3は普及してない」らしい。
2.x系列と3.x系列を共存できるらしい。
Pythonファミリー
Pythonには複数の実装が存在。
- CPython
c言語で書かれた元祖Python - Jython
JVM上に移植されたPython,Javaとの親和性が高い。 - IronPython
.NET Framework上に移植されたPython
JythonがJava言語との連携ならIronPythonはC#やVB.NET等の.NET Frameworkの言語との連携。
batteries included
Pythonのbatteries included(電池付き)という哲学があって、 Pythonのインストールパッケージの中に、開発環境IDLEとか、開発に必要なものはなんでも付いているのだそう。
乾電池が付属しているので「買ったその日からすぐ使えます」という事か。
PE8
PythonにはPEP8と呼ばれる標準のコーディング規約が存在する。
スクリプトを実行形式に変換
Py2exe や Pyinstaller という ツールが存在する。
Pythonの用途,応用分野
Pythonの用途はいろいろあると思うが、自分が使いたいなというものをあげてみた。
- Google App Engine
- 「Sublime Text」をカスタマイズ
- cliborのマクロをつくる
マクロ機能 | amuns:code
Pythonのメジャーなフレームワーク(?)としてはDjangoとGoole App エンジンがある。
プログラミング言語を選ぶ時に、言語そのものの良さの他に目的の用途に便利なラィブラリがそろっているかという事も重要。
そういう意味ではPythonが有利であると思う。
Pythonの参考サイト
使いたいPythonの文法を手早く調べるには以下のサイトが便利。
個人的な感想
私自身はpythonよりrubyの方が言語的には好きだ。
それは私が日本人だから日本生まれのrubyが好きだという意味では無い。
それはおいといて、なんといってもpythonの魅力は「やりかたはひとつ」というポリシーよりもむしろ、海外でのpython人気による影響力(googleや名だたる欧米の有力企業に採用されているという)とpythonでできないものは無いというほどの豊富なライブラリィにあると思う。