https://github.com/okusama27
- Pythonの歴史
- Pythonの思想
- Pythonの特徴
- Pythonの言語仕様の決め方
大村亀子( @okusama27 )といいます。
BeProudという会社で、Pythonオンライン学習サービスを作っています。
I'm Kameko Ohmura, please call me "kame-chan".
世界中にある女性のPython利用者をつなぐ団体。
スタッフやっています。
PyCon JP 2018 のテーマをお借りしました。
PyCon JP は日本で開催される、プログラミング言語 Python に関する国際カンファレンスです。 毎年、1000人規模で行われています。
今年は、2018/9/15 〜 9/18の間で開催されます。
オランダ人の Guido van Rossum がクリスマス休暇中に暇だったので開発を開始したのがはじまり。
イギリスで大人気だったテレビ番組「空飛ぶモンティ・パイソン」(Monty Python's Flying Circus)から取って、Pythonと名付けた。
Pythonソフトウェア財団、PSF( PythonSoftwareFoundation )が組織される。
Python関連の知的所有権を所有するために作られた非営利団体。 Pythonのリリースはすべて オープンソース です。
Guidoさんが、ソースコードを公開
サポートは2020年までと発表されている。( PEP404 )
言語を掃除してリフレッシュすることが目的としてリリースされた。
Python2.xとの後方互換が失われていることでPython2系から気軽にPython3系に移行できない問題がある。
Pythonは母体となる企業、営利団体もなしに長期間に渡って開発を継続し、安定したリリースを続けています。
1990年台に使われていたPythonのキャッチフレーズ
Python gets the job done
「Pythonは仕事を終らせる」という意味。
現実に処理しなければいけない仕事を片付けるために用意された実用品。 Pythonは華やかさよりも、シンプルな機能美を信条としています。
対話型インタプリタに import this
と打つと、Pythonの哲学が表示される。
- 醜いより美しい方がいい。
- 暗黙より明示の方がいい。
- 複雑より単純の方がいい。
- 読みやすさは大切だ。
- 実用性は純粋性に勝る。
- 仕事をするための当然の方法はひとつある。
(略)
PEP 20 -- The Zen of Python にまとまっています。
私も翻訳してみました。 The Zen of Python - 鉄は熱いうちに打て
- 見ただけで意味が理解できるように、普通のアルファベットの英単語で書ける様になっている。
- 見ただけで意味がわからない記号はなるべく使わない
- インデントを正しく付けないと動かないので、誰が書いても同じようなコードになり読みやすいです。
- Python利用者が全体で守るコーディング規約 PEP8 が定められています。
初心者のうちは「人が書いたコードが読みやすい」は学習しやすい要因の1つです。
以下のような言語です。
- 手続き型言語
- オブジェクト指向プログラミング
- 動的型システム
- インタープリタ
- オープンソース
いろいろなところで利用されています。
- Googleなどの欧米の企業で使われている
- 適応範囲はWebプログラミング、GUIベースのアプリケーション、CAD、3Dモデリング、数式処理など幅広い分野に及ぶ。
- スクリプトとして利用される。
- NumPy、SciPyなどの高速な数値計算ライブラリの存在により、科学技術コンピューティングにもよく用いられる。
- 機械学習などのライブラリが豊富でその領域でも利用されている。
- 教育用にも利用されている
転載: Wikipedia
PEP はPython 拡張提案(Python Enhancement Proposal)の略語です。
大きな変更が行われるときは、PEPという文書が書かれて議論されます。
PEPについて詳しくは、 PEP 1 -- PEP Purpose and Guidelines に記載があります。
また、 PEP 0 -- Index of Python Enhancement Proposals (PEPs) を参照すると、PEPの歴史を一覧で参照できます。
Pythonの新しい機能や実装について説明するドキュメント
Pythonの設計上の課題や、Pythonコミュニティに知らせる一般的なガイドラインや情報などを説明するドキュメント
Pythonを取り巻くプロセスについて説明をしたり、プロセスや、プロセス中のイベントについて提案したりするドキュメント
Pythonの言語に関するアイデアは特定のメーリングリスト( python-ideas@python.org 、python-list@python.org)や SIG's などで議論されている。
アイデアを思いついたら、メーリングリストやSIG'sに投げて議論します。
PEP編集者が承認するとPEP番号が割り当てられます。ステータスは"Draft"(草案)になります。
グイドや、彼が選んだコンサルタントにレビューされて、"Accepted"(受理)、"Rejected"(却下)、差し戻しになります。
PEPのドラフトの最終決裁者は、BDFL(慈悲深き終身独裁者, グイドさんのこと)です。
忙しいときは他の人にBDFLの権利を移譲したりします。
参照: https://mail.python.org/pipermail/python-dev/2017-December/151054.html
例
Reminder: INADA Naoki was nominated as the BDFL-Delegate. 「稲田さん, 代わりによろしく」
承認されて、 リファレンス実装(Reference implementation) が完成し、main source code repositoryに取り込まれたら、"Final"(確定)になります。
流れはこんな感じだそうですが、違う場合もあるそうです。
図は、 PEP1 より参照。
Deferred(延期)、Withdrawn(取り下げ)、Active(完成させることを意図していない。PEP1など)などに設定されることもあります。
日本人にもPEPを作り確定した方がいらっしゃいます。
- Atsuo Ishimoto さんの PEP 3138 -- String representation in Python 3000
- INADA Naoki さんの PEP 545 -- Python Documentation Translations
私もこの発表のためにPEPを読みました。
これまでは、Pythonコードのコーディング規約が定めてある PEP8 しか読んだことがなかったので、これからはもうちょっと読んでいこうと思います。
また、INADA Naoki さんが、定期的に 最近のPython として、PEPの変更点などを紹介してくれています。
この資料をレビューしてくださった、Atsuo Ishimoto さん、 tomo さん、ありがとうございます。
- PSF: https://www.python.org/psf/
- PEP: https://github.com/python/peps
- 最近のPython: http://dsas.blog.klab.org/archives/2018-04/python-dev.html
- INADA Naoki(@methane): https://twitter.com/methane
- Atsuo Ishimoto(@atsuoishimoto): https://twitter.com/atsuoishimoto
- tomo(@cocoatomo): https://twitter.com/cocoatomo