«前の日記(2007-01-08) 最新 次の日記(2007-01-10)» 編集

Matzにっき


2007-01-09 [長年日記]

_ [原稿] 仕事初め

本当は仕事初めなのだが、

  • 今日からの出張の準備
  • 金曜日のスライド
  • 日経Linux原稿

があるのに、今日になって

4日前に〆切だった原稿についてどうなってますか

というメールが来た。がーん、完全に忘れてたよ。 っていうか、そういう奴なんで、〆切当日に催促してください、お願いします。> 担当の人

仕方がないので、オフィスには行かないで(移動時間もったいない)、 自宅で超特急でスライドを仕上げて(今日〆切)、 夕方から東京に向かう飛行機で4日前〆切の原稿を仕上げ、 ホテルについてから日経Linuxの原稿。

これで私も立派なライターです(〆切を忘れる人は立派じゃありません)。

今回の日経Linuxのテーマは「AJAXとJavaScript」。

ちなみに4日前〆切の原稿は「Rubyレシピブック第二版」の前書き。 この調子だともうすぐ出るはず。

_ [Ruby] Ruby に今一番ほしいもの

は、IDEであるという話。

あんまり、リファクタリングツールとか使ったことないんだけど (私にとってはEmacs全体が巨大なリファクタリングツールなので)、 慣れ親しんだ人には必須なのかもしれない。

動的言語にはリファクタリングツールは難しいって思ってる人もいるみたいだけど、 リファクタリングツールの元祖は動的言語そのものであるSmalltalkなんだから、 難しいってことはないだろう。RubyだとRipperみたいな構文解析をする ライブラリの使い勝手がもっと良いとリファクタリングツールが作りやすい かもしれない。ParseTreeとか?

_ [言語] Ruminations of a Programmer: Why I should learn Lisp

「なぜLispを学ぶべきか」という話。

このエントリだけを見るとRubyでいいじゃんって思っちゃうんだけど、 S式を使った自己書換とかマクロの駆使とかはRubyでは逆立ちしてもできないね。 あと、MOPという概念がRubyにはないので、それを使いたい人も Lispが良いと思う。

_ プログラミング2.0

今風のプログラマ。

この分類で見る限り、私は限りなく1.0的だなあ。 以前の「ニュータイプ/オールドタイプ」の時もオールドタイプだったし。

まあ、結構古いプログラマなんで仕方がないと言えばそうだし、 昨今の2.0ブームも下積みになる1.0の層があってこそ存在できるわけだし。

1.0万歳。

でも、真似しなさいとは言えないな。

本日のツッコミ(全6件) [ツッコミを入れる]
_ ささだ (2007-01-15 21:59)

当日催促じゃ間に合わないような。

_ まつもと (2007-01-15 22:15)

分量によるでしょうね。今回はA5版1ページでしたから。<br>それでも4日後は....。

_ みずしま (2007-01-16 16:44)

> リファクタリングツールの元祖は動的言語そのものであるSmalltalkなんだから、難しいってことはないだろう<br><br>クラス名やローカル変数名の変更とかはそれほど難しく無い<br>と思いますが、メソッド名の変更はかなり難しいんじゃないか<br>と思います。例えばクラスAのメソッドfooをbarに変更したい<br>として、比較的安全にできるのは、クラスAを継承してる<br>クラスのメソッドfooをbarに変更することくらいですよね。<br>duck typingを使ってる可能性があるため、継承関係に無い<br>クラスのメソッドfooをbarに変更する必要がありますが、<br>これは無関係のメソッドfooをbarに変更してしまう危険性<br>があるので、できない。あと、メソッドの呼び出し側の<br>名前も変更する必要がありますが、そもそもどの型に対して<br>メソッドを呼び出しているかの情報がテキスト上は存在しない<br>ので、うまく型推論してやるとかしないと難しそうな気が。

_ まつもと (2007-01-16 17:01)

その変換を機械的に行うのは難しいでしょうね。<br>でも、人間がちょっと手助けしてやればいいんじゃないですかね。<br>Smalltalkのリファクタリングブラウザの仕様経験はありませんが、<br>だいたいそういうことをするツールのような。

_ みずしま (2007-01-17 00:21)

人間がちょっと手助けをしてあげるようにすることで、<br>確かに使えるものにはなると思うんですけど、その手助け<br>の部分で人間が間違うことがあるわけで、安心感という点で<br>微妙だと思うんですよね。それだったら、grepして置換する<br>のとあまり変わらないじゃん、みたいな。<br><br>一方、Java/C#のリファクタリングツールによる名前変更は、<br>基本的に間違えない(リフレクションを使用している<br>場合などを除く)ですから、安心して行うことができます。<br>で、結局何が言いたかったかというと、やっぱり動的型言語<br>で、特に名前変更のリファクタリングをちゃんと行うツールを<br>作るのは難しいのでは、ということです。

_ まつもと (2007-01-17 01:28)

えーと、難しいという点を否定したことはない(っていうか、厳密な安心という意味では不可能では?)ので「そうですね」以上の返答はないのですが。<br><br>Smalltalkの話を伝え聞く範囲内では「間違う可能性のあるリファクタリングブラウザ」でも嬉しいと思う人はそれなりにいるだろうということは分かります。<br>あと、「名前変更のリファクタリングをちゃんと行うツール」が欲しいと言う理由で静的言語を選ぶ人も、リファクタリングツールは間違えてもいいから動的言語を選ぶ人もいるだろう(私は断然後者)ということも分かります。

お名前:
E-mail:
コメント:
[]

«前の日記(2007-01-08) 最新 次の日記(2007-01-10)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.