SSブログ

Pythonがどうしても好きになれない。 [プログラミング]

なんというか、メジャーなだけに傲慢さがあるというか。

なんでそんなことを思うのかだけど、Macでeasy_installというコマンドがあったからである。またOSXに変な独自コマンドがあるなぁと思ってmanを開こうとしても出てこないので、適当な引数をつけてUSAGEを出してみた。Python系なのとパッケージを扱うっぽいぐらいしかわからなかった。ググるとここに書かれているようにパッケージ関係は統一されていなくてわかりにくいんだそう。

http://www.yunabe.jp/docs/python_package_management.html#easy-install

一般的なコマンドとして、言語がわかるような名前付けをするのが普通だけど、easy_installなんてどの言語にも共通するような名前をつけないと思うんだよね。さも当たり前のように普通の英語を一般的な単語で名前をつけるってことは、それなりにメジャーである前提が必要だと思うんだけど、Pythonはそこまで一般的な感じはしない。比較的新しいLLとしては一番だとは思うんだけど、だからと言って名称がeasy_installはやりすぎだと思った。


特に日本以外だとRuby以上にメジャーなスクリプトなんだろうなぁ。細かいことはよく知らないけど、Javaみたいに設計図通りにかっちりと作り込むことができるとか聞いたことがあるのだけれども、日本にRubyという良いものがあるのにどうして使う意味がある、と思っていたりしていた。

それとバージョンに齟齬があって、ちょっと前には2系と3系の乖離があったみたいでした。言語にはバージョン間の非互換性は必ずと言っていいほどあるのだけれど、Pythonは結構問題があるほど違うみたいですね。Rubyだと移行を素直にできるように1.8 -> 1.9 -> 2.0とあまり非互換性を生まないようにバージョンアップしてきた。だからそんなに手を入れなくてもそのまま動くレベルなんじゃないかと思う。

Macでは

$ python --version
Python 2.7.10

未だに2.7系でOSのサポートってこんなもんだよねというところで。RubyもLinuxではずーっと1.8だったり1.9だったりしていたから、RVMとかrbenvとか入れて使うのが普通になっていった。そのせいかOSのサポートも普通のアプリケーションよりもかなり適当になっている気がする。

まぁ一部システム(OS, ディストリビューション)に組み込まれている感じがあって、次世代Perlみたいな雰囲気があるのだけれども、使う人が多ければシステムに組み込まれる可能性も高くなるということで。でも、なんとなくPythonがガッツリ入れこまれるのがうれしくない。

いろいろ問題が多すぎるからなのもあるけど(調べてから知ったので後付けなんだけども)、日本人的にはRubyじゃなくPythonをやるというのは、何か特別なきっかけがないとないんじゃないかなぁと思う。そこそこベテランな人では、Google贔屓でApp Engineを使うためにJavaは嫌なのでPythonを使った人もいるだろうし、世界的に使われているという意味で選んだ人も多いと思う。

僕的には日本語ドキュメントが多いRubyを選んだわけだけど、英語がそこそこできるからこそ、英語読むのしんどいなぁと思ってRubyにしたところがあります。でも、Ruby on Railsで外国からブレイクしたのは、やっぱり日本のガラパゴス言語だったのだなぁと思わざるをえませんでした。


んで何で今更Pythonなのかというと、ディープラーニングでChainerというソフトウェアがPythonで書かれているらしいからです。

https://research.preferred.jp/2015/06/deep-learning-chainer/

なんか開発者が日本語で書いている感じですね。翻訳している感じじゃないみたいですが、日本製のソフトがあるのは嬉しいことです。そこまでやるつもりは全くないですが、開発者に問い合わせする時に英語を使わないで済むのは、技術的な側面だけを考えればいいので楽ですよね。

ここでも使われているのが、Python2.7だったりするので、言語的にタコツボ状態になるのは嬉しくないなと思わないでもなかったり。でもGPGPUが使えるのはいいのではないかなと思ったりもする。やっぱりニューラルネットワークを再現するにも、ある程度負荷はかかると思うし。今はバッチ的に行っていることでもオンタイムで対応したいという点では、NVIDIAの車載コンピューター構想でも考えられているところだし。

RubyでChainerみたいなのがあればいいなぁ。Rubyのは探してないけど、DSLで書けるってことはPythonと同じようにできるのだろうし。今は画像処理に重きを置かれているのだけれど、言語的なところを深くえぐれるようになれればいいなぁ。でも、与える餌が悪いと、マイクロソフトのAIみたいにナチズムに傾倒してしまうだろうし、ある程度はステレオタイプに傾向を与えてあげたい気はする。

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0