X



Smalltalk総合 Squeak Pharo
0005デフォルトの名無しさん
垢版 |
2013/02/16(土) 22:43:27.68
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0008デフォルトの名無しさん
垢版 |
2013/02/16(土) 23:48:41.78
個人的には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/
0010デフォルトの名無しさん
垢版 |
2013/02/17(日) 20:34:48.78
オブジェクト指向を鍛えるにはひたすら便利だと思う。実行しているアプリをインスペクトして
オブジェクトグラフを書いて、各クラスの役割を考えるのはかなり役に立ったし。
0012デフォルトの名無しさん
垢版 |
2013/02/18(月) 00:07:01.38
結局、よくわからんかった。Squeakの本とか読んで試してみたけど

何でも出来るのかもしれないけど、「作法」?みたいなのがまったくわからんかった
0015デフォルトの名無しさん
垢版 |
2013/02/19(火) 23:05:27.09
>>12
良いサンプルプログラムがあると良いんだけどね

Smalltalk、「クラスライブラリ」のサンプルとしてはとても良いと思うけど
「アプリケーション」を書こうと思うと「なんか違う」感が強いね
「隅から隅まで知ってないとダメ」見たいなノリも嫌い
0018デフォルトの名無しさん
垢版 |
2013/02/20(水) 08:54:35.03
>>15
具体的にはどういうところが「なんか違う」と思った?
Smalltalkはオブジェクトの協働というそのコンセプトから、アプリケーションソフトという概念が希薄で
環境内でアプリに見えるものも、使いやすいようにそう見せているだけだったりするのだけれども
そういうことについてだろうか。あるいはイメージベースによって処理系ごと永続化されていて、
アプリケーション配布のときに余計なものを含めないといけないことに不自由さを感じた?
0019デフォルトの名無しさん
垢版 |
2013/02/20(水) 08:57:51.54
>>17
「箱庭」というのは言い得て妙かも。
そもそものスタートがアラン・ケイの「ぼくのかんがえるさいきょうのOS」の
試作環境だから。
0020デフォルトの名無しさん
垢版 |
2013/02/20(水) 21:24:14.37
MessageCaptureってなんでわざわざnewせなあかんの?
MessageCaptureに直接Message送られるようにしとけばよかったんちゃうん?
ProtoClassをMetaClass objectが直接継承してないから?
0022デフォルトの名無しさん
垢版 |
2013/02/21(木) 14:36:48.59
ネット調べると、どう書くorgでも一人頑張ってたid:suminしかいないイメージ

いにしえの日本語化関連の人たちとかは脱Smalltalkしたのか
まあどのソフトでも日本語化関わる人たちってだいたいいなくなるよね
ユーザーとは違うんだろうな
0025デフォルトの名無しさん
垢版 |
2013/02/21(木) 16:03:58.90
>>23
Rubyよりはイントロスペクションが強力で、デバッグ時の静的・動的トレースが楽ちん。
あと目的によってはユーザーが気ままに処理系をいじれるってイメージがあるけど
0026デフォルトの名無しさん
垢版 |
2013/02/21(木) 16:07:27.28
>>23
> ライブラリがしょぼくなったRubyだよね?
このたとえがわからん。Rubyってそんなにすごいの?
0027デフォルトの名無しさん
垢版 |
2013/02/21(木) 19:36:24.37
ユーザが多い分使えるライブラリは多いんじゃなかろうか
そんな事言ったら fortran 最強だけど
0029デフォルトの名無しさん
垢版 |
2013/02/21(木) 21:06:46.77
Rubyってそんなにライブラリーあるのか?
総量からするとSqueakの半分も無いんじゃないか?
0030デフォルトの名無しさん
垢版 |
2013/02/22(金) 00:36:01.88
>>18
>アプリケーション配布のときに余計なものを含めないといけないことに不自由さを感じた?

そんな感じ
「2チャンネルの専用ブラウザ使おうとしたらVisualStudioが付いてきた」
みたいな感じになるでしょ

昔のQKS Smalltalkだったかな?開発環境とか不要なクラスを除外したイメージが書き出せますってんで買ったけど
イメージファイルが1.44MBのフロッピーに収まらなかったんでガッカリ来た
0035デフォルトの名無しさん
垢版 |
2013/02/22(金) 21:40:06.99
>>31
そのライブラリーだけじゃSmalltalk環境一つ作るだけでも
相当追加でコード書かなきゃならんだろう
0036デフォルトの名無しさん
垢版 |
2013/02/23(土) 00:32:53.14
まず大前提として、Smalltalk環境なんてゴミは
求められてないって理解しようね

要らないもの作るためのライブラリが揃ってないのは
誰も必要無いものは作らないってだけの話
0038デフォルトの名無しさん
垢版 |
2013/02/23(土) 00:52:34.33
正規表現ライブラリーが100個あったりとか、
fcgiをラップするライブラリーが100個あっても仕方ないんだけどね。
1000ライブラリーがあるならせめて700通りの問題に対応できなきゃ
ゴミじゃね?50個ライブラリーを集めたら10000行掛かった
プログラムが20行程度、むしろコードは一切書かず数回の
クリック操作で完成するとかじゃないと嬉しくはないなぁ。
0039デフォルトの名無しさん
垢版 |
2013/02/23(土) 03:19:08.02
>>36
つまり、君の大好きなRubyには、Smalltalkのそのゴミがごとき環境を
経ずとも必要とされる機能が通過不足なく用意されているんだよね。
それはよかったじゃん。で、ここにはいったい何しに来たんだい?
0041デフォルトの名無しさん
垢版 |
2013/02/23(土) 07:40:15.84
Smalltalk環境ってOSの上にOSモドキ作ってるだけだからなぁ
普通にOSの機能使ってれば要らないよね
0042デフォルトの名無しさん
垢版 |
2013/02/23(土) 07:44:23.49
 Ruby信者ってキモイな。こんなSmalltalk使いのマッタリスレにまで来て、
自言語の優位性を誇示しにくるのか?
0043デフォルトの名無しさん
垢版 |
2013/02/23(土) 07:57:26.11
どんな言語/環境でもOSへのI/F持ってるよね。
OSへのI/Fをその言語/環境のパラダイムでモデル化してるよね。
結局、どんな言語/環境でも内部にOSモデルを持ってるよね。

そのOSモデルがその言語/環境とシームレスに繋がる言語/環境は優秀だね。
普通にOSの機能を使ってるだけに見える言語/環境はモデル化がクソだね。

で、>>41さんが大好きなRubyはどっちなんだい?
0045デフォルトの名無しさん
垢版 |
2013/02/23(土) 12:11:18.09
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の最良の部分を手にしているのだ。
0046デフォルトの名無しさん
垢版 |
2013/02/23(土) 13:51:10.85
C#が見ているOS .Net Framework
Javaが見ているOS JRE
どっちもSmalltalkの真似事じゃあるけど十分普及してるわな

てか、GUIが気に入らんだけならDolphinみたいに自分で表示させるようにした
GUIかつ、OSネィティブデザインのGUIしか表示させないようにする手もある。
0047デフォルトの名無しさん
垢版 |
2013/02/23(土) 14:48:09.78
>>43
ダン=インガルスがそんな感じのこと言ってたな。
OSの機能は言語に内包されるべきだとか何とか。
0048デフォルトの名無しさん
垢版 |
2013/02/23(土) 21:11:46.87
.net も JVM も複数言語で使えるのが人気の秘訣
引きこもりSmalltalk環境とは違いますから
0049デフォルトの名無しさん
垢版 |
2013/02/24(日) 10:41:15.44
興味あるから試してみたいんだけど、
既にあるコード資産を活かしつつ、徐々にSmalltalkに移行できるかな?

例えば、以下のようなシェルスクリプトの処理があったとき、
mapperだけをSmalltalk製に置き換えられたりする?

cat data/* | mapper | sort -k1 | reducer > result.txt


一応GNU Smalltalkなら可能らしい所までは分かったんだけど、
何かニセモノ扱いっぽいので、ちょっと躊躇してしまう……
0053デフォルトの名無しさん
垢版 |
2013/03/03(日) 11:45:49.86
シェル端末みたいなSmalltalk環境って無いんですかね。
bashやzshみたいに日常作業をこなしやすいやつ。
0055デフォルトの名無しさん
垢版 |
2013/03/03(日) 13:39:52.00
せめてself inspect.できたり
self help.できたり
ファイル名補間できるものが欲しいです。
0057デフォルトの名無しさん
垢版 |
2013/03/03(日) 16:05:59.40
>>55 個人にどうこう言うつもりはないけれど、こういうのよく見かけるので書くけど、
(すでに好きで制約があっても使いたいととかではなく、そもそも使ったこともないのに)
シェル端末だけで使えるならSmalltalkしたいけどって人は、例えば (3/4) inspect とかが
どんな風に出力されればいいと思うのだろう… ちょっと理解に苦しむ。
denominatorやnumeratorとかのインスタンス変数の値を表示するところまでは
いいとして、その書き換えは(普通はもちろんそんなことしないけど、インスペクト
しているのが開発中の自作オブジェクトだったりで仮に必要なら)インスペクターは
介さずに直接 instVerNameAt:put: とかでやりたいということ? さらに、
インスペクターはある種アプリケーション様の振る舞いをするから別ウインドウに
保持しておきたいよね。そういうのはEmacsやvimみたいなエディタを介在させて
インスペクターの起動毎にペインやバッファを切るということだろうか。
もちろん、そういうニーズがあるのなら作るし作るべきなのがSmalltalkのスタンスだけど
そんな不完全なものでSmalltalkを学んだり使ったりして何が嬉しいのか、誰か説明して!w
0058デフォルトの名無しさん
垢版 |
2013/03/03(日) 17:02:30.98
シェルとして使いたいならinspetの出力とかはgstの形式で満足だよ
用途は (File path:'/home') list display.とかでbashを置き換えたいだけ
で。できれば自分でシェルオブジェクトを書換えて
タブ補完とかしたい。
そんでシェルスクリプトをSmalltalkで書いてしまいたい。
さらに出来るならDBusの呼出をメッセージ式にしてしまいたい。
0059デフォルトの名無しさん
垢版 |
2013/03/03(日) 21:12:44.30
後でわかることだが
これがあの有名なシェルを作ってしまうプロジェクトの始まりであった
0062デフォルトの名無しさん
垢版 |
2013/03/04(月) 18:34:05.93
UNIXも飽きたからSmalltalk的環境が普及して欲しい。
その時の言語がRubyでも構わんよ。
0063デフォルトの名無しさん
垢版 |
2013/03/06(水) 00:27:26.06
実行環境入れるのも面倒だから
まずは日常会話に取り入れていけばいい
例えば嫁さんとのメールとか

かおり 買った?: おかず.
俺 後で買うよ: 夕方頃.
0065デフォルトの名無しさん
垢版 |
2013/03/09(土) 13:00:35.34
SqueakでもPharoでもVisualWorksでもいいから、好きなSmalltalk処理系をビジュアルシェルとして使えばいいじゃん?
0066デフォルトの名無しさん
垢版 |
2013/03/09(土) 19:32:27.88
起動が重い上他との親和性が低いからなぁ
sshで使った時、他のshellと交換できるぐらいの
可搬性は欲しいな
0068デフォルトの名無しさん
垢版 |
2013/03/10(日) 09:19:14.10
はあ?Squeakが重いか?

よくいるよね、20年前のイメージで重いとか遅いとか高いとか言っちゃう人。
0070デフォルトの名無しさん
垢版 |
2013/03/10(日) 10:04:06.71
>>68
端末としてつかうにゃ起動終了が重いよ。
gnome-terminalやKonsoleの10倍以上遅い。
ちょっとした作業のためにこれだけ待たされるのは辛い。
0071デフォルトの名無しさん
垢版 |
2013/03/10(日) 10:13:43.04
>>70
え?
ウィンドウマネージャとしてX.orgを起動してからずっとSqueakを使うんじゃないの?
どうしてgnomeとかKDEなんて必要なの?
0072デフォルトの名無しさん
垢版 |
2013/03/10(日) 13:37:07.11
面白い言語で案件があるのなら使いたいけど、いろんな技術トレンドの元ネタ的存在にも
関わらず商業的に失敗したな。後続の言語に美味しい所を持って行かれたというか。音楽
でいう既に廃盤済みの知る人ぞ知る名盤という感じ。
0073デフォルトの名無しさん
垢版 |
2013/03/10(日) 13:42:41.96
むしろ最初は商業ベースがメインだったんだよ
ただ使い物にならず他言語に流れた
いまは一部の物好きの玩具
0076デフォルトの名無しさん
垢版 |
2013/03/10(日) 21:28:05.79
>>71
vlcやらvimやらOperaがSqueak上にあればええけど
現実はそうじゃ無いじゃん。
Squeak上にLinux移植できたなら話は変わるだろうね。
0077デフォルトの名無しさん
垢版 |
2013/03/14(木) 15:15:23.05
Athena Smalltalk
http://bergel.eu/athena/
Little Smalltalk の作者自身による Java 拡張移植 SmallWorld から派生
シェルで使うには
java -cp athena-0.1.jar athena.engine.AthenaShell -i
ちなみに Java なためか日本語も大丈夫っぽい
0078デフォルトの名無しさん
垢版 |
2013/04/01(月) 00:03:25.79
2.7のときに大学でsqueakでHTTPサーバを作って遊んでたのだが、そのときのソースを流用できたらいいなぁ
0079デフォルトの名無しさん
垢版 |
2013/04/01(月) 02:04:54.84
squeakは環境全部が一体だからサーバ系は致命的なバグを混入させてしまったときに、次にそのsqueakそのものを起動できなくなるようで怖い
0080デフォルトの名無しさん
垢版 |
2013/04/02(火) 01:25:56.27
All in one をダウンロードしたらexeファイルがあるフォルダにimageファイルがなかったからあせった
0081デフォルトの名無しさん
垢版 |
2013/04/09(火) 02:29:30.92
Squeakって、もしかして Windows7 は対応してなかったりします?
起動した直後にエラーが出るんですけど
0083デフォルトの名無しさん
垢版 |
2013/04/09(火) 23:06:41.76
よく見たらzipファイルの解凍に失敗してた
解凍ソフト変えて解凍したらとりあえずエラーなしで起動できた
0087デフォルトの名無しさん
垢版 |
2013/05/15(水) 00:06:22.07
入門書でお勧めってある?

「Smalltalkで学ぶオブジェクト指向プログラミングの本質」は、
若干宗教臭いのと、このコード入力して実行してみてで説明が終わってる部分が多くて、
今一だった
0089デフォルトの名無しさん
垢版 |
2013/05/15(水) 20:26:42.75
>>87

サクサクSmalltalk―オブジェクト指向のアートとサイエンス
実際の所、smalltalkはコードからしか学べない。
0090デフォルトの名無しさん
垢版 |
2013/05/15(水) 20:45:29.52
「Smalltalkベストプラクティス・パターン - シンプル・デザインへの宝石集」が良かったが
入門書ではないかもしれん
0091デフォルトの名無しさん
垢版 |
2013/05/16(木) 02:13:59.81
>>88
これは読み易そう
無理してVisualWorksやPharo使うより、素直にSqueakからはじめたほうが、楽かもしれませんね

>>89
考え方が身につきそうな内容っぽいですね
中古価格も手頃だし…

>>90
長く使えそうだったので以前、購入しました
斜め読みした後、積読中ですが…
0092デフォルトの名無しさん
垢版 |
2013/06/03(月) 08:37:35.34
ExterenalStream系にbinary送って
StreamEncoderにbigEndian:false

とかおくってもほぼ全部のEncoderがこれ無視しててBigEndianしか考慮してないのな。
結局ちまちまとバイト単位で読んでbig<->littleの変換を手動でしなければいけないという

もうちょっとこの辺直してくれよ・・
0093デフォルトの名無しさん
垢版 |
2013/06/14(金) 03:36:25.67
パソコン初心者向けの本か、専門家向けだけど古くてタイプライターで文字打ったような本のどちらかしかない印象
0097デフォルトの名無しさん
垢版 |
2013/07/23(火) NY:AN:NY.AN
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なダイアログを出すにはどうしたらいいのでしょうか?
0098デフォルトの名無しさん
垢版 |
2013/07/24(水) NY:AN:NY.AN
>>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
009997
垢版 |
2013/07/25(木) NY:AN:NY.AN
なんだそうでしたか。>98
コンテントはあるのが普通なので、それなら問題ないですね。
ありがと。
0100デフォルトの名無しさん
垢版 |
2013/08/12(月) NY:AN:NY.AN
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です。
レスを投稿する


ニューススポーツなんでも実況