この記事はpycon.jpのKeynoteでpython3が残念っていう話があったので、それについて書きます。
なぜPython3を使わないのか
- 文法が少し変わったので習得にコストがかかる(特に3.0とか3.1はかなり互換性捨てられてた気が)
- C周りの補助機能が亡くなった気が(お陰でMeCabのCバインディングが使えない)
- 1, 2の理由もあり対応していないライブラリが多かった。現状だと割とでかそうなのがMySQL-python, thrift*1, Sentry*2, protobuf*3とか。
Python3の壁 https://t.co/634gxmSh3U #pyconjp
— エク(えぐざ・ふぃーるど) (@exafield) September 13, 2014
- その割に便利になるとこが少なそう(基調講演のNo Benefit (hahaha))
Windows XPが7に置き換われたように、いずれ3に移るという意見もありますが、一方でVistaのように存在自体が葬られる可能性もあります。
実際Python3はどうなのか?
ではPython3は全然よくなってないのでしょうか。そういうことはなさそうです。
- MeCabに関して:python3で動くものが出てきているようです python3対応 Mecabの紹介 - Python, web, Algorithm 技術的なメモ
- MySQL-python : methameさんがforkしてます。またpythonで実装してるmysqlコネクタはpython3でも使えると報告があります
- MySQL-python の Python 3 対応 - methaneのブログ
- 便利になるとこ : 特に日本人だとutf-8周りが大きいようです。python2のunicode周りは結構面倒ですしね。3.4から入ったasyncio*4なんかも便利そうです。
- Cへのアクセス周りは・・
今後どうすればPython3に移るか
- CentOS/Ubuntu(Debian)の標準がPython3になる :P virtualenvで2と3は共存できましたっけ?
- 便利になるとこ、Py2に戻れないよってとこを教えて欲しい(ググれという話もありますが)。私はPy2.6~2.7を使ってますが、Py2.4(RHEL5,CentOS5の標準)にはとても戻れないです。なぜならsetが使えないからです(Cのsetなら使えたっけ?)。そういった感じの便利点を挙げてもらえると嬉しいです。
- Python2で引っかかるところを克服する。Pythonのコアコミッタだけでなく普段使ってる人も問題を上げたり、既存のライブラリをforkして使いやすくするなどできることはあります。Do It Yourself.
私はどうするか
デメリットが減ってきたので今日から移るつもりです。つもりと書いてるのは、今日もpycon jpに参加して発表を聞くのでコード書くかどうかわからないからです :P