FLAGS

筆者おかあつ 大きな区分 記事の区分 記事の一覧 検索 ツイート

2006年6月20日火曜日

複雑な問題の解決策 (mixi05-u459989-200606202018)

ミクシ内で書かれた旧おかあつ日記を紹介します。
複雑な問題の解決策
2006年06月20日20:18
プログラミングをしていると、良く複雑な問題に出会う。 複雑すぎて、時間がものすごいかかたったり、人間業を超えたような複雑なロジックをおわないといけなかったり、想像を超えたようなテストパターンを完了させないといけなかったり...。

僕は、思うんだけど、

複雑な問題の解決策は一つしかない。

それは、後生、その問題にかかわらない事だ。

そういう複雑な問題っていうのは、その技術が持っている、根本的な不合理が原因している事が多い。 そういう問題は、時間がたてば、絶対に、誰かが根本的な解決策を考えて発表するものだ。 歴史的にみても、そういうややこしい時代が来てから5~6年たつと、必ず革新的な技術が現れてきた。

それがおこると、複雑な問題を逐一解析して、せっかく莫大な時間とお金と労力をかけて蓄えた膨大なノウハウが全部人生のムダになっちゃう。

何年もかけて苦労してあつめたビックリマンのシール。ある日問屋さんでまとめ売りしているのを見つけてしまった... っていうのと同じくらいショックだ。

でも、そんなびっくりマンシールを、某NEC社からたくさん買った人って多いんじゃないだろうか。 たった十数年前の話だ。 今も携帯電話と名前を変えたビックリマンシールがありはしないか。

そういう不毛なノウハウを要求する技術っていうのは、10年ぐらいのスパンで見ると、必ず破滅してる。

だから、そういう技術には近づかないのが一番だと思う。

難しくて複雑な技術って、みんなそれを研究した結果、何になるのかを見通せなくなってしまい、嬉々として目先の複雑性をおいかけてしまいがちだ。

次のニュースを見てそう思った。

皮肉が過ぎるだろうか...。

──────────────────────

http://headlines.yahoo.co.jp/hl?a=20060615-00000011-inet-sci
Adobe、『Ajax』ベースの Web サイト開発を簡素化

『Ajax』ベースの Web アプリケーションを開発することは、スキルのあるプログラマにとっても簡単な仕事ではなく、ましてスキルが主に『HTML』と『CSS』に限られる Web サイト開発者にとってはなおさらだ。難しさのポイントは Ajax にある。

デスクトップパブリッシング (DTP) や Web パブリッシング関連ソフトウェアに強い AdobeSystems ( NASDAQ:ADBE ) は、そうした難しさを乗り越える方法があると考えている。それは、Ajax 用の新しいパブリッシング フレームワーク『Spry framework for Ajax』(Spry) だ。同社は5月10日に Spry のプレリリース版 (バージョン1.0) を発表したばかりだが、このたびバージョン1.1を発表した。

Adobe の『 Dreamweaver 』担当製品マネージャ Jennifer Taylor 氏は、次のように言う。「(Web) デザイナは、(Web パブリッシング) 市場で Ajax に悪戦苦闘している。なぜなら、Ajax がプログラマ向けだからだ。わが社は、Ajax インターフェースを、そうしたデザイナでも手早くかつ容易に作成できるようにしたいと思っていた」

Web ページデザイナは、HTML と CSS に関するスキルに強いが、Ajax という手法の根幹を成す『JavaScript』関連スキルにいささか弱いことが障害になっている。

Spry は、最小限の JavaScript を使うだけで XML データを HTML 文書に組み込めるようにして、Web デザイナを支援する。だが、Adobe によると、Web デザイナたちは、それ以上のことができるようになりたいと望んでいるという。

同社のプラットフォームマーケティングおよび開発者関係担当ディレクタ Todd Hay 氏は、次のように述べている。「われわれが分かっていることの1つは、Web 上で (ユーザーに) 提供する体験により多くのことを期待するデザイナが大勢いることだ。デザイナたちは、より Ajax 風の体験を自分たちのページで提供したがっている。Spry を使えば、プログラミングに深入りしなくとも Web サイトに Ajax を組み入れられるようになる」

Taylor 氏によると、Spry はまだ開発のかなり初期段階にあり、早期アルファ版に過ぎないという。現在 Adobe は、開発者からフィードバックを受けながら、将来的に Spry 技術を同社の『InDesign』『DreamWeaver』といったパブリッシング製品のどれに組み込むかを決める予定だ。

「Spry は特定のツールに依存しない。例えば、(簡単なテキストエディタ)『Notepad』と Spry だけで、Ajax 対応インターフェースの開発を始められる」と Taylor 氏は述べた。

http://headlines.yahoo.co.jp/hl?a=20060615-00000011-inet-sci
コメント一覧
ウミガメ   2006年06月21日 15:50
先日、キリン生茶のタイ販売戦略ってのをテレビで見ました。おかあつさんとこでも売ってますか?
矢本   2006年06月21日 16:26
ニーチェも
「愛せないものは通り過ぎよ」と
言ってます。
って、少しちがうか。。。
おかあつ   2006年06月22日 19:49
>ウミガメさま
リョクチャはすごい流行ってて、たくさん種類売ってるんですが、 生茶もこのあいだ見かけましたよ!

>矢本様

いがいと、そんな崇高なヤツじゃなくて、たまにいるこんな人... 「オレが18の時に中古で買ったカローラなんか、今じゃオールペインしたし、ブレーキはブレンボに変えたぜ。シートはレカロ、サスペンションはテインだぜ。バリバリだ!」 「 (-_-) ...いい加減買い換えろ... 」みたいなノリかなぁ。

バカみたいな例えだけど、結構IT系の人って、コレ、意外とやっちゃうんだよね。
oxoofo   2006年06月23日 02:14
それが好きな場合は?
おかあつ   2006年06月24日 17:14
プログラミングってエンジニアリングでサイエンスじゃないから、「好き」っていうところにとどまっちゃいけないんだと、僕は思う。

プログラミングは、数学みたいに

質問者「数学なんか研究していったいなんの役に立つんだ!」
数学者「何の役にも立ちません。面白いから研究しているだけです。」

っていう風にはいかないと思う。(ノリ的には非常に好きな考え方なんだけど...。)

それは、サイエンスの数学と違って、エンジニアリングであるプログラミングは、必ず最終目標があるからじゃないか、と思う。 それにそぐわなければ、残念だけど捨てるしかない。

「速く走る」ためには、(それがいくら楽しくても)カローラを改造するんじゃなくて、スカイラインGTに買い換えるのが一番理想的なわけで、カローラの改造がいくら、知的に高度で芸術的なことであっても「速く走る」という命題がある限り、残念だけど、捨てなければならないんだと思う。

厳しいけどね...。


AJAXの目的は優れたユーザーインターフェースを、WEBの配布の容易性を保ちつつ、効率よく作る事を目的としているけど、それを実現するAJAXよりも良い方法は他にいくらでもあるよね。
oxoofo   2006年06月28日 22:20
面白がるパート と、 売るパート が協調する って、夢は?
↑         ↑
売られるコトを   んーと、..
ちょっと意識し、  ..?

商売としては、会社としては、別にフツーに成り立つ?

。。。?
いけない って 何だ? 何的に何だ?。。

何のため?? ん? それぞれがそれぞれに何のため?何ねらい?

んーー ま、人生はとりあえず楽しいですな。・∀・

>ajax
そーよね。大騒ぎで注目されて学ばれるコトじゃ元々なにのに、騒がれすぎよね。、でも現実解よね。
おかあつ   2006年06月28日 23:35
>>ajax
>そーよね。大騒ぎで注目されて学ばれるコトじゃ元々なにのに、騒がれすぎよね。、でも現実解よね。

僕はちょっと大穴狙い的なところがあるので、ちょっと感覚が違うのかもしれない。

現実解っていうのは、正にそのとおりなんだよね。

ただ、ノウハウを積むのってとても時間がかかる。だから、目の前に問題が現れてから始めたのでは、もう遅いんじゃないかっていう感覚が僕にはある。

この感覚は、僕が小さかった頃NEC/PC-6001とかSHARP/X-1とかに振り回された記憶によるんだと思う。 苦労して時間をかけて覚えた技術が明日から突如無意味になってしまう、という愕然とするような苦い実経験が僕にはある。 この「なんだってぇー!!!」という感覚は実に忘れがたい。

僕は今でも、そんな今では使わなくなったゴミのような技術をいっぱい持ってる。いまだにPC-6001のバイアスルーチンのアドレスを覚えてるとか、Z80のコード変換表を暗記しているとか、MSXのバンク切り替えルーチンのややこしいアルゴリズムを熟知してるとか、X-1Dっていう超マイナーパソコンでのコーディング経験が2年以上あるとか、PSG音源のレジスタ番号と機能を覚えてるとか...、切りが無いや。

数学や科学と違って、コーディングテクって 一瞬にしてゴミになっちゃう事があるんだと思う。 僕には、そういう感覚が、痛い経験とともに叩き込まれてる。

20年以上前の話になってしまうけど...。

僕は、その後、そういうハードに振り回された時期を経ていたので、PC-9801のグラフィックボードの仕様変更だけで新製品として発売するNECの戦略をみたときに、直感的に、バカらしく感じてしまったんだよね。 それでパソコンやめちゃった。 だから、セグメントを必要とするややこしい不幸な時代は知らない。


WEB技術では、それまでの固定的なプラットフォーム=ハードウェアという時代の開発と違って、プラットフォームはハードではなくてソフトで支給される。 だから、コーディング時に必要とされるノウハウが、ころころ変わる。 そして、それは、世の中に配布されているプラットフォームの普及具合に関連している。 だから、20年前よりも少し難しい要素があると思う。

今は、IEっていう1つのプラットフォームがある。 そして、Firefoxがそこに少し食い込んでる。 でも、IE5.5~6が最適解じゃないっていうのは明らかだと思う。 最適解になりえない理由は、互換性や標準準拠・標準自体の抽象性によるんだと思う。

かたや、ブラウザ上にはプラグインという世界もある。 これも抽象的にみれば、一つのプラットフォームであって、結局は普及率によるんだよね。

プラットフォーム

今は、まだ、プラットフォームの配布方法がきちんと洗練されていない。

僕もバンコクのネット喫茶を練り歩いたりするけど、どこも、Flashのバージョンがまちまちで、J2REのバージョンも低いままだ。

せっかくオートアップデートがインストールされていても、管理者権限が無いために「インストールするときはこのボタンをクリックしてください」⇒ 「エラー。管理者を呼んでください。」を無限に繰り返していて、それがほったらかしになっていたりする。

しかし、この問題は近いうちに劇的に改善する可能性がある。解決不可能な問題では決してない。 こうしてプラットフォームの配布が簡易化されるとなると、わざわざ困難なAJAXで実装する必要ってそれほど無くなってしまう。


では、そうなったときにどういうノウハウが必要とされるのか、って言うところを目指して今から準備をしておかないと、それが起こったときには、一瞬にして浦島太郎になってしまうぞっていう切迫感が僕にはある。
oxoofo   2006年06月29日 01:47
>とどまる
何が手前で、何がその先?
何処へ向かう場合?それぞれが。22人が。あ、いや10億人が?

>切迫感が
今を求められる売れるテードに工夫して楽しむだけでいいんじゃ。
どーせ、パソコンも通信網も一切合財、今、いきなり全部無くなったって、別に誰も死にゃしなにですから。
あるとちょっと便利だなの世界の中のコトなんだから。
oxoofo   2006年06月29日 01:57
>コーディングテクって 一瞬にしてゴミになっちゃう事があるんだと思う。 僕には、そういう感覚が、痛い経験とともに叩き込まれてる。

僕の場合、一瞬にしてゴミになってもいたくないんですよね。。コーディングした時間楽しんだ分で自分的にはペイしちゃってるので。。後はかかわった周りの人がどうかという問題が残るだけで。

ごみになっちゃって企画的にペイしなかったけど、もう楽しんじゃいました。すません。ゴチでした。えへ!

*) 「えへ」
see
 仲間 由紀恵
 http://www.wonder-okinawa.jp/018/artist/profile/n_04.html
 http://d.hatena.ne.jp/keyword/TRICK
おかあつ   2006年06月29日 20:53
うむ。 まぁそれも一つの生き方だと思うよ。

だいたい、物事の進む方向っていうのも、見方しだいで、戻ったとも進んだともいえる。 だから、まぁ適当に楽しんじゃえっていうのも、一つの価値観だよね。

ただ、一言言わせてもらえば、意識の持ち方っていうのは、むしろ、いくらでも低く出来るものじゃないだろうか。 高く維持するほうがよっぽど難しい。 そういう前も後ろもわからない混沌とした中で、自分なりのビジョンを一つ決断して方向を決めて進んでいくって、貴重な事だと、僕は思うんだよね。

>僕の場合、一瞬にしてゴミになってもいたくないんですよね。。コーディングした時間楽しんだ分で自分的にはペイしちゃってるので。。後はかかわった周りの人がどうかという問題が残るだけで

間違えないでほしいんだけど、それはそれで一つの大切な事だと僕も思う。 色々あったけど、まぁコーディングが楽しかったからいいか...みたいな。 だから僕もプログラミングが好きなわけだし。

ただ、

>ごみになっちゃって企画的にペイしなかったけど、もう楽しんじゃいました。すません。ゴチでした。えへ!

この意識の持ち方だと、いずれ仕事がなくなってしまわないだろうか。

お客さんが言うことをウノミにしないで、お客さんがホントウにやりたいことっていうのを察してあげて、お客さんが思いつくよりももっといい方法(安かったり 安定していたり 高性能だったり、用件によるけど...)を提案していかないと、お客さんのホントウの満足って得られないと僕は思う。

そういう、プログラミングだけのプログラマから一歩すすんだ、大人のプログラマにならないと。 なんちゃって。


それに、コーディングって二次方程式みたいにはっきりした解がある問題だからね。 コーディングに関連する問題の中でも浅い問題(互換性がどうとか、仕様がどうとか...)はさっさと片付けちゃって...

その後ろの問題(仕事だったら、プレゼンテーションの仕方とか、プロジェクトにあった効果的な技術の選択法とか、かかるコストと技術の対応とか、プロジェクトマネージメントとか ─── 趣味だったら、オープンソースでフリーウェアを作るとか、フリーウェアを公開して社会にどういう影響が出るのか実際に試してみたりとか、効率の良い開発手法を研究したりとか、失敗しない設計のパターンを研究したり、色々ある方法論の中からアンチパターンの研究したり、ソフトが人間や社会に与える影響を考えてみたりとか)のほうが数段面白くて難しい問題だと、僕は感じるんだよね。
oxoofo   2006年07月04日 02:10
>高い
それはほかの人から見ても高いの?
おかあつ   2006年07月04日 15:30
それは、自分で考えて自分で決めるんじゃないだろうか。 oxoofo氏からみると、矛盾しているように聞こえてしまうかもしれないけど...

昨日、テレビを見ていたら、村田製作所の社長が出てた。 すごい人だなと思った。 今ある手ブレ補正の基本となる部品を作ってるのが村田製作所なんだよね。 ソニーもパナソニックもカシオもこの部品を使っていて、年間の売り上げも膨大な額になっているそうだ。

この社長が、「技術者には10年先の技術を読め、と言っている」っていっていたのがすごく印象に残った。

「面白いと思う物に何でも飛びついていいわけじゃない。自分の持っている物(才能・技術・ノウハウ)を良く知って、選ばないといけない。」ともいっていた。

そういう「技術屋魂」 ⇔「ポップ感覚」のバランス感覚が無いと、「0.1度単位で検出できる超小型・超高性能・水平検知器」(視点を変えれば手ブレ補正の基本部品)の開発って出来ないんだろうな、と思った。
 
出展 2006年06月20日20:18 『複雑な問題の解決策』