Oh 脳《117》アナログ思考 Java からディジタル思考 Jython への扉を開く

記事一覧Oh 脳: after ZERO《其之佰拾漆》

アナログ思考 Java から
ディジタル思考 Jython への扉を開く

《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2009/06/15

セミナーの枕で紹介した小ネタ集です。息抜きや話題作りにどうぞ (^.^)

■ 関連記事
  • 2009-06-27《118》続・アナログ思考 Java からディジタル思考 Jython への扉を開く
  • 2009-07-04《119》続々・アナログ思考 Java からディジタル思考 Jython への扉を開く
From: ひよ子のきもち 
件名: 《セミナー通信》受講者のみなさんへ@2009.06.15
日付: 2009/06/15 14:33

------------------------------(きりとれません)------------------------------
今年もはや6月、衣替えの季節ですね。
梅雨入り宣言の翌日には夏空がのぞき、そして、
今週は雷が多発するなどの予報(予想?)がなされています。
紫陽花の見頃には、鎌倉散策を実現したいものです。


米国では「地デジ化」が見切り発車となり、
まだ、多くの世帯が「移行」できない状況が続きます。
そこで、今回の話題は、
「アナログ Java 思考からディジタル Jython 思考への扉を開く」としました。
受講者のみなさんのパラダイムシフト(移行)は順調に進んでいますか?


《何が問題か》アナログ思考からディジタル思考への扉を開く
このセミナー課題では、JFC/Swing を使って階層構造を持つ情報を提示します。〈GoFIterator/Composite/Command/Visitor パターンを導入すると、if/for 文が不要になるだけでなく、配列の境界問題も解消できるので、要求仕様の変更にも柔軟に対処でき、簡潔で見通しの良いコードを記述できるようになります。


Jython には、伝統的な(C言語風の) for/switch 文がありません 。それには、理由があります。それを理解しないまま、C++/Java で記述したコードを Python に置き換えたツケは、後に清算を余儀なくされます。なぜなら、伝統的な if/for 文や配列の境界問題などによって、 コードは汚染され 、要求仕様が変更されるたびに「メンテナンスの悪夢」が待ち受けているからです。


デザインパターンを導入するときによくある落とし穴は「 GoF を鵜呑み 」にして「損」をしていることです。C++/Java の事例を踏襲したまま Jython を導入するなど、パターンの表現(how)を踏襲しただけで、パターンの本質(what)を伝承していないコードをよく見掛けます。


たとえば「我が輩は猫である」を「I am a cat.」と訳したらどうでしょう。構文はそのままに単語を「置き換える」だけでも「意味は通じる」かもしれません。しかし、そこからは原文の趣を再現できません。本来の趣を損なわず、英語らしい表現にしたいと願うなら、原文の背景を理解できているかが鍵になります。


同様に、C++/Java で記述したままのコードを Python に「置き換える」だけでも「プログラムは動く」かもしれません。しかし、そこからはパターンの趣を再現できません。本来の趣を損なわず、Python らしい表現にしたいと願うなら、パターンの背景を理解できているかが鍵になります。


デザインパターン聖典として〈GoF〉が引用されます。しかし、それは先人の功績を示すカタログにすぎません。みなさんは、日本人講師と外国人講師のどちらから、外国語を学びたいと思いますか。同様に、パターンの本質を学びたいなら、本場のルーツに触れることで、〈GoF〉が何を伝え、 何を伝えなかったか が分かります。


... zap ...
詳細は、以下をご覧ください。

(1)はじめの一歩:GoF を反面教師に Java の隘路を開く
(2)Iterator パターンの隘路:for と別れる50の方法
(3)Composite パターンの導入:配列と別れる50の方法
(4)Command パターンの隘路:if と別れる50の方法
(5)Visitor パターンの隘路:動的スキーマの適用
(6)末の千里:次に目指すのは…明日のためにその2

  • -