Python
Pythonのパッケージ管理はpip・pipenv・poetry・EasyInstallなどのパッケージ管理システムによっておこなわれる。バイナリパッケージのフォーマットにはwheelがあり、これをインタフェースとしてビルドシステムとパッケージ管理システムの分離が可能になっている。
Python Package Index (PyPI) と呼ぶ公式のパッケージリポジトリが存在する。
パッケージ管理および実行環境管理を含めた統合開発環境としてはAnaconda (Pythonディストリビューション)が存在する。
Pythonは動的型付けシステムをもつ。同時に任意の型ヒントを持っており外部ツールによる静的型チェックを可能にしている。
値自身が型を持っており、変数はすべて値への参照である。
基本的なデータ型として、論理型・整数型・浮動小数点数型・複素数型・文字列型・バイト列型・関数型がある。整数型は(メモリの許す限り)無制限の桁数で整数計算が可能である。浮動小数点数型を整数型にキャストすると、小数点以下が切り捨てられる。
組み込みのコンテナ型として、リスト型、タプル型、辞書型、集合型がある。リスト型および辞書型はミュータブル、タプル型はイミュータブルである。集合型には変更可能なものと変更不能なものの2種類がある。タプル型とリスト型は、多くのプログラミング言語では配列と呼ばれるものに類似している。しかし、Pythonではタプル型は辞書のキーとして使うことができるが、リスト型は内容が変わるため辞書のキーとして使うことはできないという理由から、これら2つの型を区別している。
多くのオブジェクト指向プログラミング言語と同様、Pythonではユーザが新しく自分の型を定義することも可能である。この場合、組み込み型を含む既存の型を継承して新たな型(クラス)を定義する事も、ゼロから全く新しい型を作り出す事も出来る。
Pythonは基本的にメソッドや関数の引数に型を指定する必要がない。そのため、ダック・タイピングという、内部で必要とする演算子やメソッドに対応していれば、関数やオブジェクトの設計時点で意図していなかったオブジェクトを引き渡すことも可能である。
イテレータを実装するためのジェネレータが言語仕様に組み込まれており、Pythonでは多くの場面でイテレータを使うように設計されている。イテレータの使用はPython全体に普及していて、プログラミングスタイルの統一性をもたらしている。