2019/11/2にpython boot campに参加してきました。
目次
- python boot camp とは
- 内容
- あとで調べたこと
- 感想
python boot camp とは

PyCon JPではこれまでも年に1回東京で開催されるPyCon JPイベントでPythonを学べるチュートリアル講座を開催してきました。 今回は、以下のような人たちにPythonを知ってもらえる機会を提供できたらという思いで、Python Boot Camp(略してPyCamp)を企画しました。
python boot camp -connpass
主催は一般社団法人PyCon JP。
内容
スケジュール (全体13:00~17:00)
- 13:00~15:00 文法、データ型
- 15:10~16:50 ファイル入出力とモジュール、スクレイピング
- 16:50~ アンケートと写真撮影
下記参照のチュートリアルのうち、いくらか飛ばしてさくさく進めて行きました。
Python Boot Camp Text 2016.04.28 ドキュメント
あとで調べたこと
質疑応答の中で「cで実装されたpythonとjavaで実装されたpythonと、あとmicropythonとか、pythonで実装されたpythonがあって」というようなことを言っていて「!!??」となったので調べました。
pythonには実装形式が異なる様々なバリエーションがあるようです。
Cpython: C言語で実装されたPython
標準の処理系で、pythonの仕様を表したソフトウェアと言えます。計算はあまり早くありません。
Jython: Javaで実装されたPython
JVM(Java Virtual Machine)上に実装されたJavaなどの言語のメソッドが簡単に使えます。 ちなみに、Javaは仮想マシンJVM上で動きます。これによってOSに依存せず動きます。
ただし、Python3には対応してないみたいです。 =>News -Jython
IronPython: C#で実装されたPython
.NET FrameworkとPythonライブラリを使用でき、他の.NET言語はPythonコードを使用できます。
IronPython2.7はpython2.7対応。python3系対応バージョンは開発中らしいです。
PyPy: Pythonで実装されたPython
Python言語(2.7.13および3.6.9)で実装された言語。Just-in-Timeコンパイラによって、大規模なPythonコードを省スペースで高速に実行できます。
micropython: マイコン上で動くように作られたpython
マイクロコントローラー上および制約された環境で実行するように最適化された言語です。python3で実装されています。非常にコンパクトです。
Cython: pythonっぽいコンパイラ言語
Pythonプログラミング言語と拡張Cythonプログラミング言語の両方に最適な、言語兼コンパイラーです。Python自体と同じくらい簡単に、Python用のC拡張機能を記述できます。
Cythonの処理系ではソースファイルをCのコードに変換し、コンパイルするとPythonの拡張モジュールになるようにして出力します。
所感
pythonはグルー(のり)言語と言われているように、様々な言語と連携して使用することを目指して開発されているという印象です。しかし、python3系に対応しきれていないものが複数あり、python2からpython3になった当時の衝撃の鱗片を感じました。
.NETやマイコンでも使えるというのは興味があるので、ぼちぼち勉強してみたいなと思います。
参考
- Pythonの各実装(CPython/PyPy/Jython/IronPython)について -kakurasanのLinux備忘録
- PythonとCPythonって何が違うの?言語仕様と実装の話- Samurai Blog
- Cython -wikipedia
- なぜjavaで作るのか
- When will Jython support Python 3? -Stack Overflow
次に読みたい
[Cython ―Cとの融合によるPythonの高速化] O'Reilly Japan Kurt W. Smith (著), 中田 秀基 (監修), 長尾 高弘 (翻訳)
[退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング] O'Reilly Japan Al Sweigart (著), 相川 愛三 (翻訳)
Automate the Boring Stuff with Python
[ハイパフォーマンスPython] O'Reilly Japan Micha Gorelick (著), Ian Ozsvald (著), 相川 愛三 (翻訳)
感想
事前に記法はprogateでやった後、科学技術計算の本を読み終えていた。そのため、 参加する前に基本文法 モジュールのインポートやフロー制御は分かっていた。 また、DXFデータ(CAD用のデータ)の出力を自動化することができていた。(しばらくしたらブログ化する予定)
前半の内容はほぼ知っていたことだったが、集合setやタプルの使用シーンなどの細かい部分を改めて勉強することは有益だった。また、モジュールをインストールする環境を仮想環境venvにしておくことで、モジュールのバージョンが上がっても過去のモジュールが使用でき、過去のモジュールでしか上手く使用できないようなAPIを上手く使える、というような知恵も得られた。また、CpythonやJython, micropythonなどのように様々な方法で実装されたバージョンがあることが分かり、実装方法に興味がわいた。
エラーが出てもすぐに聞けるため、時間的なコスパは移動時間を含めてもかなり良かったのでは無いかと思う。また、参加やのほとんどはある程度pythonを自学していたり多言語を触ったりしたことがある人が多かったためか、作業中よりも質疑に対する回答が大変ためになった。全体的に、学びが多い勉強会だった。
この場で感謝申し上げます。ありがとうございました。