2008/9/12 金曜日

言語とか仕事とか

カテゴリー: プログラミング — えーりん @ 2:41:03

プログラミング言語は適材適所があって、やりたいことが増えるほど、色々な言語を使いこなす必要がある。

個人的には、実行速度が求められるときは C++、それ以外はすべて Ruby を使いたいけど、Excel の中でスクリプトを書こうと思ったら VBA(Visual Vasic 6.0 相当) を使わざるを得ないし、ブラウザ上で実行させるなら JavaScript を、リレーショナルデータベース(RDB)を操作するには SQL を書く必要がある。あとは欲しいライブラリの関係で、Perl が必要になったり。(さすがに Lisp や Scheme、Haskell など関数型言語が必要になったことはまだない(笑) )

生まれて始めて使った言語は FBASIC とかいうもので、当時はそれが大好きだったが、同じ系統の Visual Basic の仕様はどう間違ったのかかなり腐っていて、大嫌いだ。なので、未だに構文が覚えられないし、覚える気もない。Visual Basic は Micr○soft の製品と親和性が高いので使いこなしたいんだけど、スクリプト言語なのに色々不便で、使う気が起こらないんだよなあ。

JavaScript は、やってみたら意外に良い言語だった。ブラウザ上に限らず、普通に使うスクリプト言語として覚えるのも悪くないんじゃないだろうか。プロトタイプベースという、他の言語とは違うパラダイムであるところも良い。C言語の次に何かスクリプト言語を習得しようとしてる人は、JavaScript を覚えるのもいいかもしれない。
個人的に JavaScript の言語仕様はとてもしっくりきたのだけれど、これは間違いなく Scheme を知っていたおかげだと思う。色々な言語のバックグラウンドがあると、他の言語を理解するのも楽。JavaScript は Java はほとんど関係なくて、 C + Scheme という感じがしました。感覚的に。

SQL自体は悪くないが、RDBの実装依存の機能が多くて少し嫌になる。今仕事で Micr○soft製のSQLServer 2005を使っているけれど、Micros○ft は標準規格にしたがわずに独自路線を進む傾向があるので、あまり深入りしたくない。まあ無料版を使わせてもらってるし、なかなか高機能なので、文句が言える立場ではないけれど。
深入りしたくない気持ちから、SQL Server の本を買っていなかったけれど、5000円の良さげな本を会社で買ってもらったら、これがかなりの良書で大分理解が進んだ(それにしても、プログラミング関係の良書は洋書が圧倒的に多い)。Web上にドキュメントは大量にあるといっても、やはり本の形で体系的にまとめられたものは強い。本によって数時間以上の節約ができるなら、迷わずに買ったほうがいい。自分の時間を浪費するのも会社のお金を使っていることと同じことだからね。ただし、2、3000円の安い入門書は買わないこと。全く未知の分野を勉強するならそういう入門書も買ってもいいけど、会社の金は使いづらいので買うなら自分の金で。

Windows のシステムに近いことをやろうとすると、やはり C 言語が一番。会社で1万円近くする Windows プログラミングの本(Advanced Windows だったか)を買ってもらったが、内容がものすごく濃くてちょっと読みきれていない。Windows 自体はビジネスシーンでは圧倒的なシェアを誇っていて、「Micr○s○t 嫌だなあ」とかわがまま言ってられない。「こういうのってプログラムでできる?」って言われたときに、瞬時にできるかどうかを判断し、適切な手段を選んでさくっと実装できるレベルになりたい。

昔は「いちいち新しい言語覚えるの億劫だし、将来使わないかもしれないので手を出したくないなあ」とか思ってたけれど、今は色々な言語があるのは面白いし、扱える言語が増えるとできることが広がるので、最近はどんどん手を出してる。

今の会社では、仕事を与えられる時に使う言語や環境の指定がなくて、「要件を満たすもの」だけが求められる(要件自体も曖昧だったりする)。だから VB でやるのが楽だったら (嫌々)VB 使うし、無理矢理 Ruby でやる方法を調べて Ruby でやってみたり、これからも使いそうな処理だったら C++ でライブラリの形にしたり。選択の自由がある時は、まず環境を選択するところから始めなくてはいけなくて、それは結構難しいけれど、適切な選択をするために、コンピュータの上で動いているものは全て理解しようというモチベーションにもなる。(学生のときにこういうモチベーションがあったら、計算機アーキテクチャとかOSとかもっと真面目に勉強したんだけど。まあそのうちヘネシー&パターソンや、タネンバウムなど有名どころの本を買ってちゃんと勉強しなおすつもり。やっぱり洋書がいい。もちろん読むのは訳書だがw)

色々な言語を覚えるのもそうだけど、プログラマに必要なこと くらいはやっぱり必要だと思う今日この頃。そして全然足りていない自分がいるorz

プログラマとして、というよりエンジニアとしての具体的な将来像はまだないけれど、とりあえず技術に精通していればそうそう食いっぱぐれることはない(というよりは、技術に精通していないエンジニアなんて無価値)だろうから、今のうちに色々勉強しておきたい。

どんな分野をやっていても、足を止めなければきっと大丈夫だと思うから、頑張ろうと思う。

P.S

なんか色々なプログラミング言語のことを書こうと思ったら、 ちょっと違う方向に。できることを増やしていきたいと言う意味では同じことか。

いつものことだけど、何か書いているうちに派生して別のことを書きたくなるので、全体の構成に一貫性を持たせようとすると、最初から書き直さなければならなくなることが多いような(だが面倒なのでやらない)。そもそも思考は決して一次元ではないのに、文章は一次元なので、考えていることを、情報を失わずに文章に変換することは難しいと思ったり。

明日も仕事なのに、なぜ今日こんなに書いているかというと、明日の朝提出の課題があって、その現実逃避なのです > <

2008/7/26 土曜日

7月の誕生石はルビー

カテゴリー: プログラミング, — えーりん @ 22:20:07

この前買った”Beautiful Code”を読んでたら、プログラミング熱というか、Ruby熱が高まってきたので、最近出版されて結構評判のいい“初めてのRuby”と、勢い余ってなぜか”Ruby on Rails 入門”を買ってファミレスにこもって読んできました。

“初めての Ruby”は、プログラミング初心者という意味の初めてではなくて、他言語の経験者向けをターゲットに絞っていて、いい内容だった。入門書は、「こうやったらこうできますね」で終わってしまうものが多いと思うんだけど、この本は「こうやったらどうなるかな。これはなんでこうなってるんだろう。」と興味をくすぐりながら展開していくのが面白かった。読後は、もっとRubyのことを深いところまで知りたくなったので、ちょっと処理系のコードでも読んでみようと思う。

“初めてのRuby”は2200円という破格の値段でかなりの良書。これから Ruby をやってみようという人にもおすすめです(JavaかC++、というかオブジェクト指向プログラミングについてある程度知らないときついかもしれない)。まあ入門書だから入門者におすすめなのは当たり前なんだけど(笑)

個人的に Ruby の好きなところは、一番はなんといってもブロック。ブロックは超強力で、好きな制御構造を自分で作れるし、ファイルなどのリソースを扱う処理で解放を忘れないようにすることができるし、(1..10).select{|i| i%2==0} みたいに直感的に書ける。

あとはメソッドチェーンとか。メソッドの引数の括弧は省略できて、引数なしのメソッドをつらつらと連鎖させるとすごく楽しい。ワンライナーにも便利。

本当にすべてのものがオブジェクトになっているのもいい。また、すべてのクラスはObjectクラスをスーパークラスとして持つが、Objectクラス自体はClassクラスのインスタンスになっていたりするのも面白い。全体的に一貫性があるので、「多分ここはアレと同じようになっているだろうな」という直感が当てはまりやすい。

さて、無料で公開されている資料を参考に Ruby のソースでも読もう。

ソースコードを読むための技術

http://i.loveruby.net/ja/misc/readingcode.html

Ruby ソースコード完全解説

http://i.loveruby.net/ja/rhg/book/

2008/5/28 水曜日

The Ruby Way

カテゴリー: プログラミング, — えーりん @ 4:01:21

Ruby は Project Euler で遊ぶための言語だったけど、明日から仕事で Ruby を使えそうなので、前から狙っていた The Ruby Way を買った。

今まではトップダウンに必要なところを調べて適当に使ってきたけど、そろそろ初心者を脱却するために、この本でボトムアップに幅広い知識をつけていかないと。

ざっと読んだ感じでは 、訳は読みやすいし説明も分かりやすくていい感じ。取り扱う題材が広い分、個々の内容は少し薄いかも。 あとは、分厚くて重たいので、持ち歩けないのがちょっと痛い。

追記:1.9の変更点への言及が多くてよいです。Symbol の to_proc とか、String の each が使えなくなるよとか。 訳は部分的におかしいところも少し気になったけど、比較的良いと思う。

2008/5/18 日曜日

Project Euler

カテゴリー: プログラミング — えーりん @ 2:57:06

時間を見つけてProject Eulerの問題をコツコツ60問くらい解いているけど、実はこのサイトの問題は数論やアルゴリズム的な知識が必要な問題はほとんどないので、単なるプログラミングの練習場としていい気がしてきた。

ローカルで計算して答えを出せばよいので基本的に時間制限はないし、自分の好きな言語で解くことができるので、プログラミング初心者にもお勧めかも。

こういう問題集のいいところは、答えが合っているかどうかを教えてくれるところ。現実の問題なんて、答え合わせをしてもらえる機会なんてほとんどないから。

HTML convert time: 0.721 sec. Powered by WordPress ME