Smalltalk総合 Squeak Pharo
人気ないみたいだけど
Smalltalkは現役だし
スレがないとまずいっしょ http://smalltalk.smalltalk-users.jp/
こんなサイトが・・・
エイプリルフールの残骸らしい
ちゃんと掃除しとけよw しかし超重要言語なのに極端に人気ないよな
D言語より書き込みないってどうなの このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所 個人的にはDolphin Smalltalkの完成度が好き。Win限定だけど。
http://www.object-arts.com/
Amber Smalltalkは面白いけれど、まだいろいろと荒削りっぽい。
http://amber-lang.net/
名前から正統派と誤解されがちだけど実はかなり変わり種のGNU Smalltalkも
リニューアル後、頑張っている。
http://smalltalk.gnu.org/
変わり種と言えば、もはやSmalltak処理系と呼んでいいのか分からないGemStone/Sも
MagLevとか永続化で知名度を上げてきている。実はかなり古くからある処理系のひとつ。
http://www.gemstone.com/products/gemstone
http://seaside.gemstone.com/ Smalltalkは興味はあったけど仕事にならんかった
つか、廻りの誰も知らんかった オブジェクト指向を鍛えるにはひたすら便利だと思う。実行しているアプリをインスペクトして
オブジェクトグラフを書いて、各クラスの役割を考えるのはかなり役に立ったし。 結局、よくわからんかった。Squeakの本とか読んで試してみたけど
何でも出来るのかもしれないけど、「作法」?みたいなのがまったくわからんかった >>12
具体的にSmalltalkでどんなことを試してみたかったかを
書いてくれればなにか手助けできるかも >>12
良いサンプルプログラムがあると良いんだけどね
Smalltalk、「クラスライブラリ」のサンプルとしてはとても良いと思うけど
「アプリケーション」を書こうと思うと「なんか違う」感が強いね
「隅から隅まで知ってないとダメ」見たいなノリも嫌い ノリとか以前に、そもそもそういうコンセプトで作られた環境だから仕方がない。
Smalltalkの底を流れる設計思想
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24# >>15
具体的にはどういうところが「なんか違う」と思った?
Smalltalkはオブジェクトの協働というそのコンセプトから、アプリケーションソフトという概念が希薄で
環境内でアプリに見えるものも、使いやすいようにそう見せているだけだったりするのだけれども
そういうことについてだろうか。あるいはイメージベースによって処理系ごと永続化されていて、
アプリケーション配布のときに余計なものを含めないといけないことに不自由さを感じた? >>17
「箱庭」というのは言い得て妙かも。
そもそものスタートがアラン・ケイの「ぼくのかんがえるさいきょうのOS」の
試作環境だから。 MessageCaptureってなんでわざわざnewせなあかんの?
MessageCaptureに直接Message送られるようにしとけばよかったんちゃうん?
ProtoClassをMetaClass objectが直接継承してないから? ネット調べると、どう書くorgでも一人頑張ってたid:suminしかいないイメージ
いにしえの日本語化関連の人たちとかは脱Smalltalkしたのか
まあどのソフトでも日本語化関わる人たちってだいたいいなくなるよね
ユーザーとは違うんだろうな Smalltalkって何がすごいの?
ライブラリがしょぼくなったRubyだよね? >>23
Rubyよりはイントロスペクションが強力で、デバッグ時の静的・動的トレースが楽ちん。
あと目的によってはユーザーが気ままに処理系をいじれるってイメージがあるけど >>23
> ライブラリがしょぼくなったRubyだよね?
このたとえがわからん。Rubyってそんなにすごいの? ユーザが多い分使えるライブラリは多いんじゃなかろうか
そんな事言ったら fortran 最強だけど >>25
それってRubyの潤沢なライブラリを捨ててまで使いたくなるものなんでしょうか?? Rubyってそんなにライブラリーあるのか?
総量からするとSqueakの半分も無いんじゃないか? >>18
>アプリケーション配布のときに余計なものを含めないといけないことに不自由さを感じた?
そんな感じ
「2チャンネルの専用ブラウザ使おうとしたらVisualStudioが付いてきた」
みたいな感じになるでしょ
昔のQKS Smalltalkだったかな?開発環境とか不要なクラスを除外したイメージが書き出せますってんで買ったけど
イメージファイルが1.44MBのフロッピーに収まらなかったんでガッカリ来た またこうしてRuby使いがいらぬ恨みを買うのであった
自重してくだしあ rubyって、REPLに先祖帰りしたSmalltalkでしょ? >>31
そのライブラリーだけじゃSmalltalk環境一つ作るだけでも
相当追加でコード書かなきゃならんだろう まず大前提として、Smalltalk環境なんてゴミは
求められてないって理解しようね
要らないもの作るためのライブラリが揃ってないのは
誰も必要無いものは作らないってだけの話 使う人がいるからいっぱいSmalltalk環境があるんだろ 正規表現ライブラリーが100個あったりとか、
fcgiをラップするライブラリーが100個あっても仕方ないんだけどね。
1000ライブラリーがあるならせめて700通りの問題に対応できなきゃ
ゴミじゃね?50個ライブラリーを集めたら10000行掛かった
プログラムが20行程度、むしろコードは一切書かず数回の
クリック操作で完成するとかじゃないと嬉しくはないなぁ。 >>36
つまり、君の大好きなRubyには、Smalltalkのそのゴミがごとき環境を
経ずとも必要とされる機能が通過不足なく用意されているんだよね。
それはよかったじゃん。で、ここにはいったい何しに来たんだい? >>36
で?そのゴミからの返答を求めているお前の存在価値はどこにある? Smalltalk環境ってOSの上にOSモドキ作ってるだけだからなぁ
普通にOSの機能使ってれば要らないよね Ruby信者ってキモイな。こんなSmalltalk使いのマッタリスレにまで来て、
自言語の優位性を誇示しにくるのか? どんな言語/環境でもOSへのI/F持ってるよね。
OSへのI/Fをその言語/環境のパラダイムでモデル化してるよね。
結局、どんな言語/環境でも内部にOSモデルを持ってるよね。
そのOSモデルがその言語/環境とシームレスに繋がる言語/環境は優秀だね。
普通にOSの機能を使ってるだけに見える言語/環境はモデル化がクソだね。
で、>>41さんが大好きなRubyはどっちなんだい? http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm
>他の言語(LispとSmalltalkは中でも特筆に値する)はみんなオペレーティングシステムが存在しない振りをしようとして、
>リストがすべてだとか(Lisp)、オブジェクトがすべてだ(Smalltalk)と言っているのに対し、Perlはまさにその逆のことをしている。
>ラリーが言っている。「Unixと文字列処理が、物事をやり遂げるために必要なすべてだ」
>そして多くのタスクに対し、これはまったくもって正しいのだ。
>だからPerlはUnixとの統合と文字列処理においてこの惑星上の(1つを除く)どの言語よりも優れている。
>そしてその例外となる1つが舞台に登場したのはごく最近のことで、それはゴジラの国でのことだ。
>おおよそのところ、 RubyはPerlの文字列処理とUnix統合をそのまま取り入れた。
>つまりシンタックスまで含めて同じなのだ。
>だから他の何かを待つまでもなく、すでにPerlの最良の部分を手にしているのだ。 C#が見ているOS .Net Framework
Javaが見ているOS JRE
どっちもSmalltalkの真似事じゃあるけど十分普及してるわな
てか、GUIが気に入らんだけならDolphinみたいに自分で表示させるようにした
GUIかつ、OSネィティブデザインのGUIしか表示させないようにする手もある。 >>43
ダン=インガルスがそんな感じのこと言ってたな。
OSの機能は言語に内包されるべきだとか何とか。 .net も JVM も複数言語で使えるのが人気の秘訣
引きこもりSmalltalk環境とは違いますから 興味あるから試してみたいんだけど、
既にあるコード資産を活かしつつ、徐々にSmalltalkに移行できるかな?
例えば、以下のようなシェルスクリプトの処理があったとき、
mapperだけをSmalltalk製に置き換えられたりする?
cat data/* | mapper | sort -k1 | reducer > result.txt
一応GNU Smalltalkなら可能らしい所までは分かったんだけど、
何かニセモノ扱いっぽいので、ちょっと躊躇してしまう…… その手の用途ならheadlessとかOSProcessとかで調べたら
色々出てくると思う ありがとう。その単語で検索したら
知りたい内容のStackoverflowのページが見つかった シェル端末みたいなSmalltalk環境って無いんですかね。
bashやzshみたいに日常作業をこなしやすいやつ。 せめてself inspect.できたり
self help.できたり
ファイル名補間できるものが欲しいです。 >>55 個人にどうこう言うつもりはないけれど、こういうのよく見かけるので書くけど、
(すでに好きで制約があっても使いたいととかではなく、そもそも使ったこともないのに)
シェル端末だけで使えるならSmalltalkしたいけどって人は、例えば (3/4) inspect とかが
どんな風に出力されればいいと思うのだろう… ちょっと理解に苦しむ。
denominatorやnumeratorとかのインスタンス変数の値を表示するところまでは
いいとして、その書き換えは(普通はもちろんそんなことしないけど、インスペクト
しているのが開発中の自作オブジェクトだったりで仮に必要なら)インスペクターは
介さずに直接 instVerNameAt:put: とかでやりたいということ? さらに、
インスペクターはある種アプリケーション様の振る舞いをするから別ウインドウに
保持しておきたいよね。そういうのはEmacsやvimみたいなエディタを介在させて
インスペクターの起動毎にペインやバッファを切るということだろうか。
もちろん、そういうニーズがあるのなら作るし作るべきなのがSmalltalkのスタンスだけど
そんな不完全なものでSmalltalkを学んだり使ったりして何が嬉しいのか、誰か説明して!w シェルとして使いたいならinspetの出力とかはgstの形式で満足だよ
用途は (File path:'/home') list display.とかでbashを置き換えたいだけ
で。できれば自分でシェルオブジェクトを書換えて
タブ補完とかしたい。
そんでシェルスクリプトをSmalltalkで書いてしまいたい。
さらに出来るならDBusの呼出をメッセージ式にしてしまいたい。 後でわかることだが
これがあの有名なシェルを作ってしまうプロジェクトの始まりであった >>58
それはもうすでに好きで、制約があっても使いたいパターンですよね? UNIXも飽きたからSmalltalk的環境が普及して欲しい。
その時の言語がRubyでも構わんよ。 実行環境入れるのも面倒だから
まずは日常会話に取り入れていけばいい
例えば嫁さんとのメールとか
かおり 買った?: おかず.
俺 後で買うよ: 夕方頃. SqueakでもPharoでもVisualWorksでもいいから、好きなSmalltalk処理系をビジュアルシェルとして使えばいいじゃん? 起動が重い上他との親和性が低いからなぁ
sshで使った時、他のshellと交換できるぐらいの
可搬性は欲しいな はあ?Squeakが重いか?
よくいるよね、20年前のイメージで重いとか遅いとか高いとか言っちゃう人。 >>68
端末としてつかうにゃ起動終了が重いよ。
gnome-terminalやKonsoleの10倍以上遅い。
ちょっとした作業のためにこれだけ待たされるのは辛い。 >>70
え?
ウィンドウマネージャとしてX.orgを起動してからずっとSqueakを使うんじゃないの?
どうしてgnomeとかKDEなんて必要なの? 面白い言語で案件があるのなら使いたいけど、いろんな技術トレンドの元ネタ的存在にも
関わらず商業的に失敗したな。後続の言語に美味しい所を持って行かれたというか。音楽
でいう既に廃盤済みの知る人ぞ知る名盤という感じ。 むしろ最初は商業ベースがメインだったんだよ
ただ使い物にならず他言語に流れた
いまは一部の物好きの玩具 一部の物好きのリストがこれ
ttp://smalltalk.cincom.jp/main/successes/ >>74
さすがに、そのリストは少なすぎる
普通に使われてる言語はそんなもんじゃない >>71
vlcやらvimやらOperaがSqueak上にあればええけど
現実はそうじゃ無いじゃん。
Squeak上にLinux移植できたなら話は変わるだろうね。 Athena Smalltalk
http://bergel.eu/athena/
Little Smalltalk の作者自身による Java 拡張移植 SmallWorld から派生
シェルで使うには
java -cp athena-0.1.jar athena.engine.AthenaShell -i
ちなみに Java なためか日本語も大丈夫っぽい 2.7のときに大学でsqueakでHTTPサーバを作って遊んでたのだが、そのときのソースを流用できたらいいなぁ squeakは環境全部が一体だからサーバ系は致命的なバグを混入させてしまったときに、次にそのsqueakそのものを起動できなくなるようで怖い All in one をダウンロードしたらexeファイルがあるフォルダにimageファイルがなかったからあせった Squeakって、もしかして Windows7 は対応してなかったりします?
起動した直後にエラーが出るんですけど >>81
普通に使えている。
エラーメッセージはちゃんと読んだのか? よく見たらzipファイルの解凍に失敗してた
解凍ソフト変えて解凍したらとりあえずエラーなしで起動できた たしかに all in one + 解凍レンジだと警告が出る ためしたいけど、SqueakとPharoの違いが分からないです >>85
分からないうちは、日本語化されたSqueakを使っとけ 入門書でお勧めってある?
「Smalltalkで学ぶオブジェクト指向プログラミングの本質」は、
若干宗教臭いのと、このコード入力して実行してみてで説明が終わってる部分が多くて、
今一だった >>87
サクサクSmalltalk―オブジェクト指向のアートとサイエンス
実際の所、smalltalkはコードからしか学べない。 「Smalltalkベストプラクティス・パターン - シンプル・デザインへの宝石集」が良かったが
入門書ではないかもしれん >>88
これは読み易そう
無理してVisualWorksやPharo使うより、素直にSqueakからはじめたほうが、楽かもしれませんね
>>89
考え方が身につきそうな内容っぽいですね
中古価格も手頃だし…
>>90
長く使えそうだったので以前、購入しました
斜め読みした後、積読中ですが… ExterenalStream系にbinary送って
StreamEncoderにbigEndian:false
とかおくってもほぼ全部のEncoderがこれ無視しててBigEndianしか考慮してないのな。
結局ちまちまとバイト単位で読んでbig<->littleの変換を手動でしなければいけないという
もうちょっとこの辺直してくれよ・・ パソコン初心者向けの本か、専門家向けだけど古くてタイプライターで文字打ったような本のどちらかしかない印象 Pharo1.4ではダイアログって標準的にはどうやって作るものなのでしょう?
まずはOKボタンだけがあるダイアログを出そうとして、workspaceで以下をdo itしてみました。
| theme dialog |
theme := UIManager default theme.
dialog := theme builder newPluggableDialogWindow: 'OK?'.
dialog useDefaultOKButton.
dialog open
でもOKボタンのない空のpaneのダイアログが出てしまいます。
OKボタンつきのmodalなダイアログを出すにはどうしたらいいのでしょうか? >>97
Pharoは使っていないので、はずしていたらごめんなさい。
(ふだん使っているSqueakも、かなりあやしいんで言い訳にはならないんですが^^;)
#useDefaultOKButton の senders から #exampleBasicControls というメソッドを見つけて
この中身を削りながらためしてみたんですが、
どうやら何かしらコンテントを追加した状態で改めていったん #model: をコールしとかないと
OK ボタンは出てこないみたいですね。
| dialog builder |
builder := UIManager default theme builder.
dialog := (builder newPluggableDialogWindow: 'OK?') useDefaultOKButton.
dialog contentMorph: dialog newRow.
dialog model: nil.
dialog open なんだそうでしたか。>98
コンテントはあるのが普通なので、それなら問題ないですね。
ありがと。 aTextMorph中で、改行部位は単語の区切りの空白に限るようにすることはできますか?
transcriptやworkspaceがやってるように、行末で英単語が分断されないようにしたいんです。
例えば下のようにダイアログの中に英語を書くと、単語の区切りとは関係なく改行されます。
つまり、行末でaaaaaaaaという単語が、aとかaaとか、途中で分断されてしまいます。
| string |
string := ''.
100 timesRepeat: [string := string, ' aaaaaaaa'].
LongMessageDialogWindow new
textFont: UIManager default theme textFont;
title: 'example';
text: string asText;
open
これを、workspaceやtranscriptみたいに、空白部分だけで改行するようにしたいんです。
どうすればいいのでしょうか?
Pharo1.4を使っています。'UIManager default theme textFont'はMS UI Gothicの10pointです。