冬コミ (C91) の寄稿情報: mypyだよ

コミックマーケット91 新刊情報と予約開始

The Web Explorer 3

雑誌の寄稿の話なんていう話も特にないので、今冬も粛々とTechBooster推しです。

今回はプログラミング言語Pythonのサポートツールの一つとして急成長している「mypy」について書きました。

http://mypy-lang.org/

Mypy is an experimental optional static type checker for Python that aims to combine the benefits of dynamic (or "duck") typing and static typing. Mypy combines the expressive power and convenience of Python with a powerful type system and compile-time type checking. Mypy type checks standard Python programs; run them using any Python VM with basically no runtime overhead.
mypyはPython向けの実験的・オプショナルな静的型チェッカーです。動的型付け(いわゆる「ダックタイピング」)と静的型付け双方の利益をPythonにもたらすことがこのプロジェクトの目的です。mypyによって、Pythonの高い表現力・記述の容易さと、強力な型システム・コンパイル時型チェックを組み合わせることが出来ます。mypyは標準的なPythonプログラムに対して(事前に)型チェックを行います。任意のPython VMを用いて型チェックを実行可能で、それに伴う実行時オーバーヘッドは基本的に発生しません。

2016-11-21 に本体が更新されるとか、まさに執筆中の最中で実にいい感じです。ガチで「開発段階」であるということで、使ってたら必要に駆られて関連プロジェクトにパッチを送る羽目になったでござるというほどです。まぁよくある、のかな。

これだけガチに「開発段階」だと、本来は本番とかで使うとヤケドする印象なんですが、mypyだとそれがほぼないので、それも地味にすごいなぁと。

散々本家が主張する通り、mypyを筆頭とするPythonの型ヒントの仕組みは「オプショナル = 任意」です。方向性としてはむしろflake8みたいなLintツールに近いです。ちょっとアレな例ですが、導入途中でいったん型の記述を止めてしまっても、メインのプログラムの実行に深刻な副作用が及ぶということがない設計になっています。

なので、mypyを導入したとしても型が「ある」「ない」の2極に分かれることはなく、「型があるようでない、ちょっと型がついたプログラム」を選ぶことが出来ます (漸進的型付け)。こういう実用指向の中途半端なの、きらいじゃないよ。

Python作者のGuidoが主導しているプロジェクトだけあって、Python本体との連携も十分。オリジナルの言語設計が動的一辺倒なことを考えると、アプローチとして「実に見事な……」と思います。まだまだ潰えない Python 2.7 もサポートしている点も実用指向で好印象です。後付けなので、型チェックの仕組みとして満点にはならないあたりは仕方ない。型がない状態から一部Any乱舞になるだけだ、決して悪くなったわけじゃないよ。

Python需要、感覚的にはものすごく増えてますから、そういう意味ではPythonに興味ある人は、今からmypyの存在だけでも知っておくのがお薦めです。

Q: ところでそれってWebの話?
A: Python関連の寄稿者が増えればいいんですよ

このブログの人気の投稿

LibreOfficeで表紙、目次、本体でフッターのページ番号のスタイルを変える

技術書典2 あ-03 『もわねっとのPythonの本』

WiiUのコントローラが通信不良に陥った話