なんだか、知らないうちに1年くらいアメリカでの生活が過ぎてしまった模様です。全然ブログ書いていませんでしたが、まぁ実際いつでもこういったことは三日坊主なのでこうなることは若干予測してました。そして、「ブログ全然書いてないね!」と数名の方に指摘される度に、心にグサリときてました。反省してますが、またちょっと頑張ってみようと思います。
最近meetupにもまたよく行くようになったので、それ関連のネタを書いていこうと思います。技術寄りの話になりますが、その辺はご理解を。。。
先日、Women Who Codeというmeetup団体がやっているPythonのmeetupに行ってきました。Pythonの人気が高まってきているのか、Women Who Codeのメンバー数(母数)が単純に増えたのか、それともPythonを作った中の人Guidoが来るからなのかは知りませんが、定員(60人くらい?)を大きく上回る参加希望者がいました。ちなみに、Women Who Code主催のイベントなだけに今回は参加制限がかけられ、参加者は女性のみ!
会場は、Dropboxのオフィス(なんと10GB増量クーポンもらった!)。こちらのmeetupは、どこかの企業が場所などを提供してスポンサーしてくれます。たいてい、夕食もついてます。サーモン美味しかったです。
内容としては、前半1時間でGuido van RossumさんとカジュアルにQ&Aをして、後半1時間半ほどはPythonのお勉強をしましょうという流れでした。
Pythonのお勉強の方は、一応「一緒にPythonを勉強しよう!」というイベントなので、まずは初歩的なところをイベントホストの方がハンズオン形式で説明して、最後にみんなでFizzBuzzを作った、といった感じでした。
Guidoさんとのトークも、カジュアルなQ&Aというだけに、参加者がざっくばらんにQをしてGuidoさんがAするといった流れでした。そのQ&Aの内容を紹介したいと思います。(全て私の勝手な意訳です)
Q: なぜPythonには、Stringの中にtitleという名前のファンクションがあるんですか?あんまり使ってる人いなさそうなんですが…(titleファンクションは、単語の頭文字を大文字に変換するファンクションです)
A: Stringには色々なファンクションがあります。このtitleというファンクションは、新聞記者のような、単語の頭文字を大文字にする機会が多い人のために作られました。このように、今日ではあまり使われてない、もしくはもう使われていないと言ってもいいくらいなファンクションもPythonのスタンダードライブラリの中にはいっぱいあるんですが、もし「いらないだろう」とdeprecateしてしまう(消してしまう)と、万一使っている人に支障が出るのでなかなかdeprecateするというのは難しい問題です。
Pythonのポリシーとしては、よっぽど他に影響を及ぼすような危険なファンクションでない限りは、極力deprecateしないこととしています。一定のスパンでソースコードをキレイにしているのですが、これは大変骨の折れる作業です。
Q: 就職の面接で聞かれそうなPython系の問題ってなんですか?何を知っていればPython技術者と言えますか?(こっちの就職面接では、専門知識の問題が出ます)
A: それは難しい質問ですね。まぁ、シンプルに言えば「何年Pythonやっていますか?」と聞けば、その人が素人かどうかは分かるでしょう。スタートアップなどのWeb Applicationを作るような会社に就職したいなら、Djangoを勉強しておくべきでしょう。DjangoはPythonでWeb Applicationを作る上でのデファクトスタンダードとなっています。
Q: (質問が聞き取れなかったが、多分)スタンダードライブラリで、これは明らかにいらないっていうのはありますか?また、新しい言語を作るとしたらどんなものにしますか?
なにせPythonが作られたのは20年も前なので、スタンダードライブラリの中のいくつかは、もう有用とは言えないでしょう。例えば、スタンダードライブラリの中にCGI.pyというライブラリがあります。これはリクエストに対して動的なレスポンスを作成するためのライブラリで、その昔まだ動的なレスポンスの手段が少なかったときに作られました。これは、今では完全にいらない子と言っていいでしょう。こんな風に、スタンダードライブラリの中には使えない物がたくさんあるのが現実です。
もしこれから新しい言語を作るとしたら、Pythonとはまったく違うものをつくりますね。Haskellはとても機能的な言語で気に入ってるので、新しい言語は影響をうけるでしょう。(Haskellを気に入ってそうでしたが、彼でもHaskellを勉強するのは難しいようです)
Haskellはとても美しい言語ですが、実用にはあまり向いていません。もしHaskellで実用的なコードをつくろうとしたら、一気にそれは美しいどころか醜くなるでしょう。一方、Pythonは美しいとは言えませんが、だれでもまぁまぁクオリティのコードをかけます。これはPythonのいいところですね。
Q: Global Interpreter Lock (GIL)の歴史と問題を教えてください
A: (すみません、私自身がGILを理解していなかったので、しかも英語で内容が全然分かりませんでした)
Q: 私の周りのデザイナーでプログラムをしよう、という人はPythonよりRubyを選びがちなんですが、これはコミュニティーのせいでしょうか?
A: コミュニティーというよりは、ファッションのように周りの影響ではないでしょうか。みんながブーツを履いたら自分も履くように、みんながPython使ってるから自分も使う。もし、ある業界の誰かが何かの言語を使い始めるようになると、その人たちはその周りの人達にもその言語を使うように勧めるでしょう。そうして、いつの間にかみんな使っているというような状態になると思います。
例えば、Pythonでweb系のことをやりたかったらDjangoを使う。みんなが使ってるから使う。たとえDjangoと似たようなweb frameworkが出てきたとしても、この「みんなが」という概念がないので、シェアを奪うのは難しいでしょうね。
Q: なぜ新しい言語を作ろうと思ったのですか?
A: アカデミックな人たちの間では、みんなが作りたがってた、作りたがっているからです。Pythonを作る前にも、言語の作成に携わっていましたが、これが「新しい言語」を作る上での基礎を作ってくれました。その言語は結局成功しなかったのですが、その後にちょっと自由な時間が出来たので、自分で新しい言語を作ってみることにしたんです。
以上がQ&Aの内容でした。参加者には、Pythonをよく知っている人もいればあんまり知らない人もいましたが、全体的に、Python歴4ヶ月の私でも理解できる内容が多く、とても興味深かったです。話し方もとても気さくで、楽しかったです。話の中に、多く「Pythonを作ったのは20年も前」といったような言葉が出て、その言葉に合わせて現在の要望と必ずしもマッチしたものを提供することはできていないと語られていたのが印象的でした。技術の進歩というのはほんとに早くて、作られた当時は考えもつかなかった技術が実現可能になっています。使い続けられている言語は、もちろん時代に合わせてアップデートもしていくのですが、私も過去の技術にとらわれず、今ある技術を習得し続けて、今実現できる最良の策を追求していきたいし、また提供していきたいなと思いました。
なんか長くなってしまった…ちゃんと次からはもっと短く読みやすく(できればおもしろく、文才ないけど…)書こうと思います。あと、せっかく英語でメモをとったので、英語版も続けてポストしたいと思います。
追記:今回このブログを書くにあたって背中を押してくださった @yusukey さん、ありがとうございます!
Leave a Reply