tcl/tkは何故メジャーになれなかったのか?
■ このスレッドは過去ログ倉庫に格納されています
>>1
そもそも言語からして、普及していた言語とはかけ離れた独自言語であった
時点でメジャーになるわけ無いのに、>>1 の感覚が分からない。 >>29
Rubyは、BATファイルよりは強力だったので、Better BAT として使ってきた。
それは TCL/TK にはあてはまらない。 まず、CGIを動かすための無料の言語としてperlがあって、perlには関数定義
の仮引数の書き方や参照渡しの書き方に問題があった。Rubyは、
perlのリストやハッシュなどの便利さはそのままに、それらの不具合を修正し、
ブロック関数などの新しいアイデアも導入した。また書き方やライブラリ
の感覚が perl に似ていたため perl を覚えた人には以降が簡単だった。
ところが、Tclにはそういうものがなかったのではないか。全く新しい言語を
覚えるのは意味がなく苦痛。 変態度で言えばperlも相当なもんだが
なぜこんなに差が付いたのか
90年代初頭ではtclの方が勝ってたろ 変数がテキストとして処理されるというのが使いにくいからだろ
使いにくさは認めざるを得ない
それでも既存のコマンドを繋ぎ合わせるのには便利だし
Expectはネットワークじゃまだまだバリバリ使われてるんだろ? [PDF]Exploring Expect V413HAV - Busindre
h ttps://www.busindre.com/_media/exploring_expect.pdf おいおいV413HAVって違法のやつだろ
2003年くらいいる本田がそんなんでどうする 原理主義な言語はマニアを産むけど流行らない宿命
原理というのは単純なものだから、十年おきくらいにそれ名前変わっただけだろみたいのや再発明がまた流行るけど
lisp系、forth系しかり >>27
>set abc {ABC}
>pack [button .hoge -text hoge -command {puts $abc}]
>set abc {AAA}
>
>だとボタン押したときに実行されるのが
>ABC
>の方なんだよね
そんなはずないと思う
-commandの {puts $abc} はglobalなコンテキストで評価されるから、
abcがglobalならputs $abcはAAAになる
そうじゃなくて -command "puts $abc" であれば、
buttonコマンド実行時に$abcが置換されるからABCになる
慣れないうちは混乱する
こんなところが嫌われる man tcl
を読めばわかる話
変に日本語の解説を読むと混乱する。
コマンド 引数 …
という形態であるということと置換の意味がわかればどうということはない。 >>40
>慣れないうちは混乱する
>こんなところが嫌われる
それな >>40
>そんなはずないと思う
それがハマりどころ
set abc {ABC}
button .hoge -text hoge -command {puts $abc}
pack .hoge
set abc {AAA}
ならAAAがでてくるけど
set abc {ABC}
pack [button .hoge -text hoge -command {puts $abc}]
set abc {AAA}
ならABCが出てくる
はず
後者は[]で$abcが展開されちゃうんだよね 全てが文字列
変数名に$をつけると中身と置換
1行1コマンドで最初のフィールドがコマンド名、残りのフィールドが引数
フィールド内に空白文字を含む場合は""か{}で括る
""で括られると変数置換
{}だと置換なし
[]で括るとコマンドとして実行結果と置換される
ifもforもwhileもprocも全てコマンド、コメントもコマンド
これがTclの全てです。知らんけど tclのスクリプトは似てないけど
tclをCでモジュール描いたりリンクしてみると
pythonとそっくりだよ ■ このスレッドは過去ログ倉庫に格納されています