Google検索

Google
 
ラベル Programming の投稿を表示しています。 すべての投稿を表示
ラベル Programming の投稿を表示しています。 すべての投稿を表示

2008年2月2日土曜日

[books] 塹壕から来た?!プログラマのための本…Code Craft --- The practice of writing excellent code

今読んでる本が結構面白いので、まだ読み終わっていませんが紹介したいと思います。
Code Craft ~エクセレントなコードを書くための実践的技法~
Code Craft: The Practice of Writing Excellent Code


私はプログラマ本を読むのが好きなので、目新しいのがあるとついつい買ってしまうのですが、この本は前書き(Preface)にやられました。

This book comes from the trenches. Well, it actually comes from deep within the software factory, but sometimes there isn't too much difference.

(拙訳:この本は塹壕から来た。まあ、本当はソフトウェア工場の奥のほうから来たんだけど、でも時々、それってそんなに大きな違いはないんだ。)


いや、深いですねぇ…私の実感からいっても、確かに「時々」死屍累々という感じで、救いがたくなる現場がある(あるいは「あった」)のは事実だと思います。そんなところから来る悩めるコーダーたちへの福音とはいったい?俄然興味が湧いてきて、今読んでいるというわけです。

ちなみに参考までに拙い訳をつけてみましたが、これは単に英語版の本しか持っていないからで、日本語訳も出ていますので、それを見ればもっとまともな訳が載っていると思います(汗)

肝心の内容ですが、プログラマのタイプ別分析や、その人たちと一緒にどう働けばいいのかなんていう処世術っぽい話もあります。他にも業界別のプログラミングに関する特徴というか法則というか、そんな話題もあって、コーディング・テクニックだけ、というよりは、もう少し社会的・ライフハック的な観点が入っているようです。ソースコードが大量に出てくるわけでもなく、割と楽に読めると思います。とはいえ、私は英語に負けて日本語版も買ってしまいそうです(^^;

コーディングの話だけじゃないところが私は気に入っています。海千山千のソフトウェア業界で苦労されている方にお勧めしたい一冊です。

2008年1月30日水曜日

[language] Objective-C, Java, Perl, Haskell, Scheme そして Ruby…興味のあるプログラミング言語の話

Mac OS X ではありがたいことに、いろいろな言語を試すことができます。
私は汎用機用の開発をしていた関係でCOBOLだとか、ツール作りでCなどをよく使う機会がありました。独立してからは Visual Basic や VB.NETや、JavaScript、Perlを使うようになりました。(さすがにMacではVisual BasicはMicrosoft Office用のものしか使えませんが…まあ、今のところはそれで十分かなぁ)

最近興味を持っているのが、RubyとHaskellとJavaScriptです。これからいじり倒して、ちゃんと使えるようになりたい!

Rubyは前々から知ってはいたものの、自分の中でみんながなぜ「イイ!」というのか理由が実感できてない。これは使い倒すことでそのうち実感できると思います。もっとも、それだけ使い倒すとなると on Rail を使って、サイトを構築してみればわかるのかなぁなどと思っています。本は「プログラミングRuby 第2版 言語編」が評判が良いようですね。買ってから気がついたのですが、原書の「Programming Ruby: The Pragmatic Programmer's Guide」と同じなんですね。両方買ってました…

HaskellはGHCがメインストリームらしいですが、Leopard用のパッケージが出ていない。なのでうちではPBG4+Tigerな感じで使っています(これがPBG4をLeopardにできない理由のひとつだったり…)。あちこちのサイトや本を覗いて思ったのですが、大学関係者には関数型の言語が好きな人が多いように思います。数学や物理の素養がある人が多いからなんでしょうか。お勧めの本は「ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門」です。私は今これで勉強中です。

Schemeは有名な"魔術師本"「計算機プログラムの構造と解釈」がありますね。これをきっかけに知ったのですが、ちゃんと理解しているとはいえないので、これも使えるようになるつもりです。SchemeはLisp系の言語ですが、私はLispには大学時代のトラウマ(?)があってちょっと敬遠気味でした。Lispは乗り損ねたので、今ひとつ苦手でした。(故中西先生の講義を受けたことがあるにもかかわらず…うう、不勉強ですみません<(__);)>)でも使えないのはもったいないですよね。苦手意識を克服するところからはじめたいと思います。(魔術師本(本の表紙が「魔術師」とか「錬金術師」に見えるのでそういわれているらしいです)は敷居が高い!いや、そんなことを言っていてはいかんのですが、他にも良書がありましたらお教えいただければ幸いです)

Perlは本気でつかうと、便利ですね。すっかりファンになりました。書き方がいろいろあって、私なぞはまだPerlらしいスタイルにはなってないけど、「"ラクダ本"プログラミングPerl〈VOLUME1〉, プログラミングPerl〈VOLUME2〉」片手にコーディングするのは楽しいです。奥が深いし、何より便利に使える仕組みがいろいろとそろっているのがありがたいです。Perlを評して「Webプログラマの接着剤」という表現を見たことがありますが(確かオライリーのHackシリーズ本のどれか)「言い得て妙だなあ」と思いました。

Objective-CはCocoaに採用されましたから、これから長い付き合いになりそうです。gccでかなりまえに採用されていたとは、Cocoaが出てくるまで知りませんでした orz

JavaはMacのプログラムを(無理やりにでも)Windows用に使えるようにできるということで、いいかも、と思います。(そういう開発スタイルがいいかどうかはさて置き)
まあ、JavaはVMを使うのがよくもあり悪くもあり…と思ってましたが、最近はマシンパワーもあがってきて、VMの性能も改善されて、昔よりは使い勝手が気にならなくなってきましたね。AWTではなく、Swingが出てきたのもいいと思います。

JavaScriptはなんといっても手持ちのブラウザがあれば試せる手軽さがいいですね。かなりいろんなことができるし、GWTのようなものを使うことで表現力が格段にアップできますね。JavaScript+Perlとかそういう組み合わせでできるのはJava EEまでいかなくてもいろいろできそうなので、そんなにPage Viewのない個人サイトでは手軽さがいいかも。PerlもMOD_Perlとかにすれば早いんですけどね…まだ自分的にはコンフィギュレーションのしかたがいまひとつ…(--;

トレンドからは数年乗り遅れている感じで恥ずかしいですが(^^;
やはりプログラミングは楽しいなと思います。これからもいろいろ挑戦していきたいですね。

追記:プログラミング言語というわけではないですが「正規表現」はわかると楽しいです。「BNF記法」も理解していると、あちこちでそういう表現を見かけると「ニヤリ」とできるので、まだの方は是非お試しください :-)