日常的な話に近いけど技術的な要素が話の軸になってるので、こっちに書きます。
大学院生活は良くも悪くも大変です。良いことは人がたくさんいるからもたらされ、悪いことも人がたくさんいるからもたらされるという。結局一長一短なのです。
そんなことはさておき、最近受けた講義で変わったものがあったのでちょっと書きたいなと思います。
id:t-wadaさんのテスト駆動開発に関する講義だったんですが、出席必須ではなかったものの気になって聴講してきました。こういう外部の人が来て講義するって感じのが、大学内でタダで受けられるのって大変素晴らしいと思います(東京の勉強会とかだとたいてい金が掛かります、世知辛いのじゃ~)。これぞ学費払ってるんだから回収しに来たぜってやつですよ!
それで、一番印象的だったのは、Javaでテストを書いていたんですが、そのメソッド名を日本語で書いていたこと。氏曰く、テストコードは「動く仕様書」なので、母国語を使えるなら母国語で書きましょうとのことでした。ローマ字で日本語の関数名付けたりすると大抵バカにされますし、よく日本語で書けるプログラミング言語とか馬鹿にする人が居たりしますが、これに関してはメソッド名だけマルチバイトの本当に漢字含めた日本語で書くって感じなので後者よりになるのかな。まず、一番驚いたのは Java ってメソッド名に日本語使えるんだーってことでしたが、よく言われることと真逆ですよね。それで、私自身も以前にこんな記事を書いて禄に考えもしないで英語にするのやめろよみたいな事言いましたが、
結局英語で縛ってくのって格好つけたいだけだと思うんですよね(実際ダサいからでしょ?)。でもこれは、目的を見失ってるというか思考停止してますよ。大事なのは「誰向けなのか」と「わかりやすさ」なので、ダサいからって内部のものまでひたすら外見にこだわってわかりにくくするのって至極最悪、非効率です(でもそんな人に限って日本はダメだとか言ってたりするんでどうしようもねぇなぁって感じ)。もちろん日本の企業で日本人に共有する場合を想定してのお話でしたが、ごもっともな意見だなと思いました。
あと、大学院に進んで研究分野が性能重視のところに来たら、思いの外プロセスだのスレッドだの、並列処理、 分散処理に関することをより深く学ぶ運びになりました。なんかただプログラムが書けるだけじゃなくて、どういう仕組みでどういうふうにすればちゃんと早く無駄無く動くのかを系統立てて学べて、かなりいい感じだと思ってます(工学的で)。 GCだったり、メモリ確保がスタックとかヒープだったりするあたりはまだちゃんと理解してないので、そのあたりは今後もっと勉強したいと思っています。
じゃけんがんばりましょうね~(台無し)