遅ればせながら、あけましておめでとうございます。
一応、定番の2007年の振り返りと2008年の抱負といいますか、方針でもつらつらと。たぶん駄文なので、ここでsボタンを押して次の未読フィードにいくことをお勧めします。(何
2007年
生活的に
まずは就職しましたね。割と大企業でして、仕事もそれほど忙しくなく、いい感じです。福利厚生は分厚いです。プログラマのバイトを始めてから、学生ながらほんとにそればかりをやるような、そんな生き方しかしてこなかったので今はすごく新鮮です。
いわゆるアフター5というやつですか。仕事は仕事で趣味は趣味、という。割と興味が発散するタイプなので、このほうが自分のやりたいことをできていいかもしれません。バイトしてるときはWEB系の知識ばっかり、って感じだったんですけど自由な時間ができたので全般的な知識がついてきたのではないかな、と思っています。
もっと技術的にチャレンジングなところに戻っていくのかもしれません。ただ、やはりそれだけチャレンジングな場所にいくと技術的に見るとやはり若干偏ってしまうんじゃないか、っていうのもあってもう少し独学で全般的に知識をつけたいな、と思っています。
技術的に
アウトプットとか
そんなにアウトプットしてないですが
-
お手軽Python Pluggableモジュール
-
javascriptのパーサコンビネータ
-
Python版Yahooテキスト解析APIライブラリ
-
Python版Lingr APIライブラリ
-
PythonによるNESエミュレータ
あたりですかね。NESエミュレータというとタイムリーにnaoyaさんがPerlで8ビットCPUを書かれていましたね。よければPython版もよろしくおねがいします(さりげに宣伝)。
ちゅーわけでですね、やっぱりPythonが多いですね。最近Railsはゲットーだなんちゃらと盛り上がってますけど、なぜかRails、Ruby界隈からはほぼ手を引いてしまいました。
最近自分の趣向というか、そういうのに気づき始めまして。Rubyよろしく、Railsよろしく急激に広まるモノって決してスーツ達の思惑だけじゃないんです。そういう「キャッチーさ」をもってるんです。なにか。でもですね、どうやら俺はそういうのが苦手らしいんです。どこかとっつきにくい、そういうものに惹かれるというか。Schemeとか、Perlってそういうタイプだと思うんですよ。そしてそういうモノのユーザーの底力って、やっぱりすごいなあ、と。
というわけでRubyから離れ日本では若干マイナーなPythonのほうにうつちゃったのかな、と(まぁ前にも書いているようにRubyのProcあたりがどうしてもキライってのもありますけどね)。
そしてPython以外ではScalaですよ。どう書くorgにチビチビ投稿しちゃってます。しかし、これだけ投稿してるのに、Scalaに関してほとんど書かない、という(笑 いい機会だから書いちゃおうかな。
なぜScalaか?
はじめはですね、そこまで深い意味はなくって。とりあえず今年はどの言語やろう、ってなったときにチョードErlangのおかげでActorを持つScalaが注目されまして。個人的に、単なる計算にしか使えない言語はキライで実用性(ネットからなんかとってきたりとか、ファイルいじったりとか)もないとあんまやる気にならないんです。
Erlangは・・・ねえ。もちろんやりましたよ。でも軽量プロセス以上のものを見出せなかった。一方ScalaはJAVAベースなので極端に言えばJAVAでやれることはほぼやれる。っちゅーかいっぱいいろんなものが詰まってるので色々おもしろそう、それだけ。
やってみた結果・・・いや、Scala面白いですよ。特に型に関して。今まで型推論ってOcamlかHaskellくらいしか触ったことが無かった。ジェネリックも正直そこまで深追いしてなかった。Scalaをやると型の奥深さに気づかされます。Scalaはアカデミックなベースをもっているってのもあって、文献も多くて学べることは非常に多かった(よくあるような紹介記事じゃなくてScalaのちょっと深い記事が読んでみたいよ、というかたは俺のブクマでもどうぞ。あんまりないですが・・・)。
Scalaの型について概観的にまとまっているのはコレかな。とっても面白いのでゼヒ。
あ、あとScalaのMLは絶対入ったほうがいい。関数型のバックグラウンドを持つ人が多く、関数型言語チックな議論、そして当然型について、結構良質な議論が多いですよ。
なんでもアリ
っという感じで型が一番なんですけどね、ほんと、なんでもありなんですよ。
JAVAのようなクラスもある、Haskellのような遅延評価も、関数合成も、パターンマッチも、モナドもある、モナドのための構文もある、型推論もある、でもダックタイピングもある、Ocamlのようなバリアントもある、Erlangの軽量プロセスのようなActorがある、Rubyのようなブロックも、ミックスインも、既存クラスの拡張もある、Pythonの__call__のようにクラスを関数として扱えたりもする。そしてJAVAのライブラリが使用できて、JAVAのクラスファイルを吐いて、チューニングしだいではJAVAと大差ないパフォーマンスをたたき出す。(ここであげた機能はあくまで「ような」もので元言語使いに言わせると色々文句おおいんですけど(笑))
ちょっとワクワクしませんか。
その他は・・・
結構言語よりの年だった気もしますが、若干低レイヤよりもあったかなあ、と。NESエミュレータなんかは割りとレイヤ低めですし、あとはですね微妙にFPGAに手を出してみたり(いやー秋葉が近いっていいですね)。他は・・・そうですね、一応ネットワークエンジニアの資格をとったりもしましたねえ。一応、一発合格でした。最近、ネットワーク周りでも技術的な記事を公開してくださる企業さんとかも多くてですね(書いちゃっていいのかな、Klabさんとか)、そういう記事をきちんと理解していく上でいい知識の整理になったと思います。WEBプログラマだとまぁ、keepalivedとかLVSの話とかですね。でも実は結構VRRPってなんじゃらほい、見たいな人も多いんじゃないかと。意外とネットワークって知らなくてもなんとなーく動いちゃったりするんであいまいになってたりすることも多い気がするんですよね。
2008年
そして2008年ですよ。とりあえず
-
なにか1言語勉強する(基本)
-
FPGAとかもっとやりたい
-
アルゴリズムにもっと強くなろう
-
Functional、手続き的、両方常に書けるように頭をキープしたい
-
流行に流されない知識をつけよう
-
音楽的なアウトプットも出していきたい
といったところですかね。俺、大学は文学部ですしずっと文系できたので計算機関連の知識ってここ3年くらいなんです。それまでPCは音楽を聞いたり、作ったりする道具だったんです。自分でいうのもなんですが、ここ3年、デキない文系アタマを酷使してそこそこのペースで勉強してきたな、と思っていたりします。もちろん、それでも全然、ほんとに全然ダメダメなんですけど。でもプログラミングのセンスもない、理系のアタマも持ってない、そんな奴が一応プログラムかいたりできるようになってるってことは結構がんばったのかもね、と。というわけで、今年は若干ペースを落として「充電」したいと思います。音楽はその充電に役立つと思います。
というわけで、今年もこのブログにはちょくちょく技術系の駄文だったり、Scalaあたりの記事、WEBプログラミング関連の記事でも書いていくと思いますのでよろしくお願いします。