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

Line 1: Error: Invalid Blog('by Esehara' )

または私は如何にして心配するのを止めてバグを愛するようになったか

>> Zanmemo

あと何かあれは 「esehara あっと じーめーる」 か @esehara まで

Pythonを退職します

f:id:nisemono_san:20141003014701p:plain

Pythonが嫌いになったの?

Pythonについて嫌気が差したとか、Pythonが嫌いになったわけではありません。これからも一番好きな言語は恐らくPythonですし、実際のところ、機会があればPythonは書こうと思います。ですので、決して言語としてPythonが嫌いになったわけではありません。

そもそも、職業プログラマとして、ちゃんとしたオブジェクト志向を教えてくれたのはPythonでした。Pythonは、その言語仕様からして、出来るだけ簡潔かつ、綺麗に書けるし、Pythonについて深く知れば、プログラミングとはどういうことなのかについて、詳しく知れるほどの、わかりやすい言語であることは事実ですし、初心者向け言語として、Pythonは強く押したいという気持ちは今も変わりませんし、ずっとPythonならびにそのコミュニティに関して感謝の気持ちはずっと忘れないでしょう。

また、近年ではPythonを採用する企業も増えてきました(自分の印象では)。というのは、「出来るだけ同じコードとして書けるなら、同じように書いた方がいい」というPythonの理念の観点から、Pythonを採用する企業も増えてきました。確かにプロダクトとして、「皆が好き勝手に書ける言語」よりも、「書いたらだいたい一緒になる言語」のほうが、チーム開発において良い可能性がある。それは疑いようがありません。

実際に、過去のPythonについて、一年前に、実は辞めようとも思ったことはありました。

でも、現実としては、今年のPyCon2014で、個人スポンサーになれないほど困窮してしまったという事実があります。本当は個人スポンサーになりたかったけれど、無理だった。そういう状況に立たされたとき、Pythonという言語に執着することが出来なくなってしまった。

じゃあなんでPythonを辞めるの?

まず一つに、僕自身のスキルと、Pythonを使う人達がドメインとするものが、あまりにもかけ離れていたというのが現状にあります。実際に、djangoで受託を行っていた会社を辞め、Pythonを利用した各社に対して転職活動を行ったのですが、何処も書類選考までは通るのですが、自分のスキル上、面接で落とされることが多く、Pythonが好きであることと、飯を食うことというのは一致しないという時期がありました。

元々、Pythonというのはどちらかといえば研究開発に近い側面に強い印象があります。例えば、Numpy、Scipy、そしてDeep Leaningなど、それらはコンピュータサイエンスに近い人間ほど、その力を発揮するかと思います。しかし、僕自身はそういう素養がなく、単純にWebベースのアプリケーションを作りたい人間であり、たまたまPythonという言語が性にあっていた。

Pythonの素晴らしいところは、出来るだけ黒魔術やメタプログラミングを避ける傾向にあるかと思います。確かにその欠点は冗長性につながりますが、逆にそれは見通しのいい、初心者にやさしいコードになるという側面は疑い得ません。

しかし、やはり自分のように30代でかつWebサービスの経験も浅い、性格的にも破綻しているような人間が、Pythonを利用して飯を食っていくというのは厳しいものがありました。それはPythonを利用する会社の絶対量が少ないというのもありますし、逆にPythonを使う会社というのは、スキルの高い会社で、自分のような人間は足切りされてしまうのが現状なのではないかと率直に思います。

Pythonの言語が云々ということではなく、ただ単純に自分のスキルが足りなく、また人材としても魅力的ではなかった。実際、自分は性格的に破綻しているという自覚もあります。ただ、それだけの話です。だからPythonは悪くない。

本当は、こんなことは、書きたくないんですよ。俺は、本当に、Pythonが好きだから。単純に俺の力不足で、Pythonに報えなかった。それだけの話です。

言語は関係ない

PHP・⌒ ヾ(*´ー`) ポイ Rubyist is better than PHPerというエントリがはやったときに、思うところがあって、書いたnoteの記事があります。そこから抜粋します。

 とはいえ、2012から2013年頃にできたプロダクトでも、使われない変数の代入が多かったり、消したコードをコメントアウトしまくっていて、何が必要なコードなのかわからなかったり、一つの関数が100行~200行あったり、MVCの原則を多少というレベルではなく破壊しまくっていたり、とはいえユニットテストによる機能の保証がないものだからリファクタリングしようにも出来なかったり、さらに加えて開発上の問題点がエクセルで管理されているから、今どこが問題なのか把握しずらかったり、みたいなカオスなプロジェクトをたまに伝聞したり、関わったりしてきた。

僕は一方で言語オタクを趣味にしているのだけれど、言語によってプロジェクトの質は変わることはない。確かにThe Python Paradoxというのはある。それは否めないけれども、しかし、採用する本人たちがPythonのアーキテクチャを理解していなければどうしようもない。

一応公平のために言っておくけれども、Ruby on Rails製のWebアプリでも、例えばユーザーが連番のために、未来のユーザーに対してフォローが出来るという、本当にどうしようもないアプリをいくつか見かけた。そこらへんをちゃんと考えているのはCineMatch(シネマッチ)|ソーシャル映画レビュー&ランキングサイトくらいだったのは、ちゃんと付しておこう。

言語に銀の弾丸は存在しない。ある言語を使えば何かの問題が一気に解決することはない。フレームワークもそうだ。問題は、関わる人達が、如何に勉強し、成長していくかの一点にしかないと思う。

Pythonに思い入れありすぎね? (追記)

自分自身は、前にも言ったように、元々不安定な仕事についていて、正社員になる経験を与えてくれて、プログラマとしての第一歩を踏み出させてくれたのは他ならぬPythonでした。

確かに、プログラマとして一つの言語にこだわりを持つことは、ある意味で、「プログラミング言語なんか所詮道具であり、クライアント側にとってそんなことは一切関係ない」とするような立ち位置としては現実的にあると思います。プロダクトが満たすべき条件を満たしているのならば、プログラミング言語は関係ない。それは確かにある。実際に知人はC++は大好きだけど、PHPで仕事をしているということもあったし、Pythonでは解決できない問題があるならば、Pythonを利用するべきではない。それは当たり前の事実である。

だから、これが自分にとっての執着であり、プログラマとしてどうなの、というのもあるかとは思いますが、とはいえ、やはりPythonで仕事をもらっていたという関係があり、今後もPythonを使っていきたいと思っていたわけですが、もうそろそろ限界にありつつある、というのを目前にすると、正直辛い気持ちになる側面はあります。

そしてRubyへ

というわけで、恐らくこの一年間は暫くRubyを勉強することに注力しようと思っている。Ruby自体は「いい言語」だとは思うけれど、性に合わないところはいくつかある。もちろん、嫌いじゃない言語だよ。ただ、俺としてはPythonのほうが性にあっている。それだけ。だからどっちがいいとか、悪いとかではない。

もし、この就職活動が上手くいったら、PyCon2015では是非個人賛同させて欲しいと思う。ただ、もしかしたら、Pythonを書くことが無くなっているかもしれない。金にならない言語を学ぶ技術というのを偉そうにRubyHiroba2014で話したけれども、俺には金にできる言語すら金に出来なかった。その事実を受け止めて、真摯にRubyを勉強しようと思う。

f:id:nisemono_san:20141004010859j:plain

ありがとう、Python。さようなら、Python。そして、よろしく、Ruby。

あわせて読みたい

Python再就職の可能性はある?

あるとは思います。もしPythonでお金にできるのなら、喜んで書きたい。

ただ、前回の転職活動のときに非常に苦労したのと、直前において厳しいことがあり、またちょっと現状として精神的にもPythonを使う会社に対して積極的にアプローチする気力も折れているのは正直に伝えておきます。

もし「似非原さんみたいな、ちょっと性格は難でもいいPythonistaが欲しい」という人がいましたら、是非お声をかけてください。積極的にオフィスに伺いたいと思っています。