アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
レンタルとは… (スコア:2, 興味深い)
U.S. Roboticsの商売方法はこれでしたし。
メンテナンスとか管理の問題はレンタルの方が、メーカーもユーザーも楽だし。
あ、陽電子頭脳の方です>U.S. Robotics
jmz
Re:レンタルとは… (スコア:2, おもしろおかしい)
三原則をそのままインプリメントできるような代物じゃないから期待薄かな。
Re:レンタルとは… (スコア:0)
でも、ASIMOのソースの先頭3行には3原則がコメントアウトした状態で入っているに違いない!
それはいいとして、「スーザン・カルヴィン女史がフィールドサービス」ってぜひ見てみたいなぁ。
---Anony---
先頭? (スコア:2, 参考になる)
どこを先頭と呼ぶんだろう?と悩んでしまった。
ロボットって、特にASIMOみたいな歩きを重視したロボットって多分イベント駆動なので、
少なくともmain()を先頭だと考えることにはなんら意味が無いように思えるし。
まぁ、ASIMOの元となった人間もイベント駆動ですし(^^;
そういやJavaはどこが先頭か悩む必要が無い言語でしたよね。
Classの定義「順序」を気にせずプログラム書けるという。(OOPにとっては)素晴らしいことだ。
Re:先頭? (スコア:1)
それと、イベント駆動という概念装置をまっとうに(first classに)実装した言語って未だないんじゃないでしょうか?
まだハイブリッドの段階の様な気が?
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:先頭? (スコア:1)
>に特に異論がある訳じゃございませんが:-)
あるClass(またはObject)を書くにあたって、コンストラクタを最初に書かないとならない言語
ってのは、とりあえず見たことが無いですし、そもそもあれは隠蔽の結果として順序自由になってる
のではなくて、本質的に順序が意味を成さないというものだと思います。
メソッドの呼ばれる順序を仮定することには、なんの意味もないです。
たまたまコンストラクタは最初に呼ばれますが、他のメソッドがそれに「続けて」
呼ばれるわけではないので、順序を維持する必要がありません。
色んな実装をしてる言語が有り得ますが、例えば連想配列にメソッド名とメソッド実装のペアを
必要な数だけぶらさげておけば、それをObjectやClassだと見なす(という言語を作る)ことは可能ですし、
まぁ自然じゃないかと。連想配列ってのは順序には意味が無いということで。はい。
またC++の(?)VMTみたいな奴でも、コンストラクタがVMTの第一メンバである必要は無いでしょうし。
必要なメソッドとその参照を、任意の場所に置いといて、必要に応じて呼べば良いんです。順序はどうでもよくて。
>イベント駆動という概念装置をまっとうに(first classに)実装した言語って未だないんじゃないでしょうか?
それは確かにあんまり無いかもですが、受け身であるという意味では、OOPとイベント駆動は似たようなものかと。
まぁ、どこからを真っ当と呼ぶかってのもあるし。
VBやDelphiみたいなイベント受け口の参照の永続化までサポートした言語を真っ当と呼ぶかどうかとか。
Re:先頭? (スコア:1)
「オブジェクトを生成する」
時点を先頭という事で捕らえてました。この辺の用語の感覚がそもそもかみ合っていない感じ>オレ
それと、メソッド単位ではたしかに時系列は存在しないですが、メッセージの伝達自体はある程度時系列という概念がないと困りますよね。
というよりも、私は
「そもそも時系列/状態/遷移という概念を無視して純関数的にプログラム出来るのか」
という命題については不可能だと思いますので、G7さんの仰る意味が掴みかねてます(^^;)
「状態/変数」という概念を隠蔽するために「イベント駆動」という概念装置が発明されたのは1970年位ですが、いまだマトモに定式化出来てない状態ですし。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:先頭? (スコア:1)
>必要な数だけぶらさげておけば、それをObjectやClassだと見なす(という言語を作る)ことは可能ですし、
>まぁ自然じゃないかと。
スクリプト言語だとそれがフツーみたいです。
実装を確認したのはRubyだけど、多分perl、Javascriptとかもそう
イベント駆動 (スコア:1)
1.制御構造がない
2.状態がない。
イベント->結果がダイレクトに現れて完結する為に状態は不要
3.オブジェクトが協調するための仕組みは必要だがこれが変数と同じを持つようじゃこまる。なんらかの隠蔽方法が必要
という訳で、自分の感じとしては、どこがイベント駆動?>Java,Delphi,VBという感じです。ええ。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:イベント駆動 (スコア:1)
(1) 一つにまとめておくべき処理を、わざわざ複数のイベントハンドラに分割することになり、かえってわかりにくくなりませんかね?
(2) 結局、イベント内容とイベントハンドラの状態が、そのままプログラムの状態になるだけじゃないでしょうか?
(3) また、画面のオブジェクトが相互に関係しだすと、場合分けが大変でデバッグが困難になっちゃいそうです。
#ピュアで厳格なのは人間向きではないのかも。
Re:イベント駆動 (スコア:1)
勿論です:-)
だいたい、ピュアな言語で実用的なアプリケーションが組めるんだったら、それでノーベル賞もらってもおかしくないと思います。
ただ、「ピュアな」と銘打つ以上それくらいをターゲットにしてもらわないと、という積もりです。実際、こういう純理論的な発表(昔bitに載っていたような奴)ってどんどん減って来ている気がするし。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:先頭? (スコア:1)
>時点を先頭という事で捕らえてました。この辺の用語の感覚がそもそもかみ合っていない感じ>オレ
でも「ソースの先頭」って書いてあるしなあ(^^;
わざわざ、任意の場所に書き得るコンストラクタ(やコンストラクタ呼び出し)のところに
そのコメントを埋めても、後で面倒なだけかと。
あ。どうせなら、三原則をコンストラクタの引数として渡したらどうでしょうか?(^^;
#なお間違った引数を入れると良心回路の挙動が不定になりますんでよろしく…
>メソッド単位ではたしかに時系列は存在しないですが、メッセージの伝達自体はある程度時系列
>という概念がないと困りますよね。
互いにメインルーチンvsサブルーチンの関係にあるメソッドについてはその通りですが、
そうでないものについては無関係だと思います。
乱暴にいえば1つのプログラムにmain()が多数有るようなもんですかね。
というわけで、
>「そもそも時系列/状態/遷移という概念を無視して純関数的にプログラム出来るのか」
そこまで濃い世界に踏み込んだわけではないです(^^;
>「状態/変数」という概念を隠蔽するために「イベント駆動」という概念装置が発明されたのは1970年
>位ですが、いまだマトモに定式化出来てない状態ですし。
無学(?)なんで知りませんでした。イベント駆動の「当初の目的」がそういうものだったとは。
全然思い至った事が無かったなあ。今ここで聞いてもなお「関係無いじゃん」としか思えず。
Re:イベント駆動 (スコア:1)
最近手習いを始めた(笑)んですが、webアプリって、
もろにイベント駆動の世界かも、という気がします。
あの世界ではルーチンの単位は頁つーかURLであるわけだけど、
ある頁を呼ばれたというイベントに対応するルーチンから
別の頁(以下同文)のルーチンをCallすることは、
その頁にジャンプすれば(JavaServletだとブラウザを経由しないジャンプも有り)
可能ですが、考えてみたらその後のReturnに相当する動作が出来ないんですよね。
Returnってそもそも何処に戻ることなんだ?という問いの答えは、
Callをしたルーチン内の特定個所に、なんですよね。
で、webアプリには、頁単位より細かく任意(?)の場所に飛ぶような
ProgramCounterみたいな概念は、無い。
なるほど、制御構造が「無い」わけですね。うひゃー。
SessionにProgramCounter覚えさせますかねえ?
でも今度はJavaとかの開発言語のほうがその概念に対応できるかどうか怪しい。
俺知らないけど、「継続」を使える言語なら何とかなるのかなあ?
>2.状態がない。
> イベント->結果がダイレクトに現れて完結する為に状態は不要
ん?昔の偉い人がどう定義したのかはよく知りませんが、
イベントによって「何を」駆動するという世界観なのでしょうか?
「状態を」駆動しても構わないような気がするのですが…