読者です 読者をやめる 読者になる 読者になる

なぜ python を選んだのか

このエントリは PyCon JP Advent Calendar 2016 の6日目です。 昨日は @nasa9084 さんによるPythonとわたしでした。

テーマは「Python と私の想い出」と言うことで、Python を使い出したきっかけとして選んだ理由を書こうと思います。 この話は PyCon JP 2012 でスピーカーとして話してます。

この時は当時所属していた会社で開発部作る話になって、言語どうしようかなと思って Python に目をつけたのでした。 (現在は所属が変わって、Perl に戻ったと思いきや PHP 製アプリのお守りをしていますが、 デプロイツールに Fabric 使うように仕向けたり、PyCon JP の web サイト保守で Python にちょこちょこと触れてます。)

Python を選んだ理由としてはチームで使う言語として、ほどよく足並みをそろえられそうで良いなと言うところが大きかったです。 これまでの Advent Calendar にも出てきてましたが、やはり PEP8 があるのは大きかったですね。言語側にコーディングスタイルがあるのは良いなあと。

Perl の TMTOETDI も個人的には好きなんですが、 Perl ベストプラクティスを読んで、ほんとはこういう方が良いんじゃ無いとか議論が先行しちゃうとか、そういう話は楽しいけど横道感もあるよなぁと。 (Perl ベストプラクティスで三項演算子をテーブルのように並べるの良いなと思って、三項演算子書くときはベストプラクティスに沿ってるけど、共感得られたことない……。)

インデントが block 扱いになるとか、モジュールのディレクトリパスがそのまま名前空間になるとかも良いと思うんですよね。だって、 if とか for とかのブロック内インデントするし、モジュール分けるときにディレクトリ名分かりやすくつけようと思ったら対応する名前つけてるからね。

まぁ、どんな言語でも読みやすく書く人は読みやすく書くし、書き散らす人は書き散らすので、最近はコードレビューするとかが大事なんだなとは思いましたが、それを言うと元も子もないので……。確か、matz のコードの世界で言語が思考を制限するみたいなことが書かれててそういうこともあるかなとか。手元に本がないのでうろ覚えだけど。

あとは、採用していかないと行けないのでそのときに例えば Perl で行くと DeNA とか mixi とか大きいところに持ってかれるし、 Ruby も同じようにコミュニティとしては大きくなった感あって、当時ちょうど Python mini JP とかやってて、海外では盛り上がってきてる感あるし今のうちからにスポンサーで出しといたら目立つんじゃないかとかそういう事言って会社にスポンサー出してもらった記憶。 2016 もスポンサーしていただいてました。

www.cb21.co.jp

ちなみに最近は言語を選ぶというよりは、ツールとかフレームワークとか使いたい機能があるもの、必要なものに合わせて選んで、それがその言語使ってるから、で良いんじゃないかなと思ったりしてます。目的から考えたら普通そうなりますかそうですかそうですね……。 すでに動いてるプロジェクトにアサインされるとそもそも動いてるものがあるので言語の選定も何もないけど。

そういうわけで、今はアサインされたプロジェクトで PHP なアプリケーションの面倒を見てますが、メンテナンスの自動化がなされていなかったのを良いことに Fabric 導入して周りの人に Python 薦めたりしてます :-p (Capistrano とか Deployer とかちょこちょこと見たんですけど Fabric がちょうど良かったので。Fabric そのものもほどよく読める量だったりとか)

言語の選択はコミュニティの文化も大きいかなとは思いますが、Python どうなんだろうと思った人は PyCon JP にスタッフ参加してみるのは良いかもしれません。

docs.google.com

いきなり応募するのはちょっと、と言う人は connpass をチェックして賑やかしで申し込んでみるというのもありだと思います。

PyCon JP の website は github で管理されていて、website ハッカソンを実施してますが、もちろんこっちもスタッフじゃなくても参加可能ですよ!

github.com

明日書く人も募集中です! >_<