Pythonことはじめ Python vs PHP

最近、Pythonを弄り始めたのですが、やっぱりそれなりに違います。
やっと{}を使わないブロックにも慣れはじめてきたのですが、色々今までの言語とは違うことが多いですね。
仕事柄一番使っているPHPと比較した記事Python本家にあったので、オレオレ訳してみました。
基本的にはPHP4との比較になるみたいなのですが、自分にとって重要でないところや、現実と違うところは省いていますので事実と違うところもあるかもしれません。


PHPにあってPythonにないもの
- CやPerlのような{}で囲む、変数を$で定義する事
- switch、do…while構文
- インクリメント・デクリメント演算子
- 三項演算子
- よく分からない命名規則でネームスペースのない組み込みライブラリ
- 一つの配列がリストと辞書を兼ねている。辞書は保持している順序でイテレートされる。
PythonにあってPHPにないもの
- 汎用的に使えるプログラミング言語
- ブロック構造を表現するのにインデントを使う。{}は使わない
- ネームスペースとモジュール
- コアとなる部分が小さい
- 明瞭簡潔な文法
- docstringとpydocでプログラム自身からドキュメントが作成できる。(PHP5ではreflectionとドキュメント文字列)
- 関数やメソッドにキーワード引数が使える
- 多重継承
- OOなファイルハンドリング
- メソッドチェイン
- 全てが参照
- delステートメントが全てのデータ型で使える。PHPは変数ではunsetをつかうが配列では別の方法を使う
- 大文字小文字を完全に区別する。phpでは関数は区別されないが変数は区別される
- 配列の簡単なスライスの文法
- ラムダや組み込み関数型プログラミング構造(phpのcreate_function)
- 演算子のオーバーロード
- SWIGインテグレーション
- スレッド
- 優秀なプロファイラ
- 高次元データ型が沢山(lists, tuples, dicts, mx.DateTimes, NumPy arrays, etc.)
- リストと辞書の区別
- 日時がunixタイムスタンプに制限されない
- バイトコードコンパイル機構
- データベースアクセスの標準化されたAPI
- メジャーなGUIフレームワークのサポート
- 強力な国際化とユニコードサポート
- 成熟して安定した前方互換性
- 大規模なアプリケーションで使われる傾向がある。モジュールをインポートするのはphpのようにインクルードするよりも安全。グローバル変数を安易に使わせない

  1. No comments yet.

  1. No trackbacks yet.