X



Smalltalk総合 Squeak Pharo

0204デフォルトの名無しさん
垢版 |
2015/02/09(月) 06:09:40.75ID:UYOrkYUA
PharoやSqueakならコードはmonticelloで管理するのが普通だし、
filetreeでgitでコード管理する人もいるしで、
イメージの中でこねくり回し続ける人はそう多くないと思うよ。

自分もイメージなんて1週間も経たないうちに捨てる。
新しいイメージに必要なパッケージ群を一通り入れるのは
metacello使えば1行のコードで各パッケージをそれぞれの
レポジトリから最新版をダウンロードしてきて初期化まで
自動的にやってくれる。
0206デフォルトの名無しさん
垢版 |
2015/02/09(月) 08:33:43.52ID:Sty7eEqu
つまりSmalltalkerが他言語との差異のひとつとして挙げる事が多い
イメージ方式は問題だらけのオワコンで
結局は普通の言語と同じ方式に落ち着いたわけだ
0207デフォルトの名無しさん
垢版 |
2015/02/09(月) 09:08:37.00ID:u8pz/p6G
>>206
そう。だからキミは Smalltalk のことなんか気にせず
先進の他言語ライフをエンジョイしてください。おしあわせに。
0208デフォルトの名無しさん
垢版 |
2015/02/09(月) 09:35:59.91ID:u8pz/p6G
ただ口が悪いだけで悪意は無かったという可能性もあるから
念のためマジレスしておくと(でもなきゃ煽って情報を得ようとする方略を助長するようで残念なんだけど)
イメージベースのメリットはソース管理だけじゃなくて
たとえば再現困難なデバッグの状態を保存できるとか
(いうまでもなく保存できるかは状況にもよるけど、同等機能をいっさい欠いているよりはマシというレベルで)
オブジェクトメモリ内のオブジェクトの状態保持が主なので
ソース管理の方法が他言語に倣ったからっていちがいにオワコンということはないと思う。
0209デフォルトの名無しさん
垢版 |
2015/02/09(月) 17:36:40.61ID:UYOrkYUA
>>206
外部ストレージにパッケージを保存できることとイメージベースは全く矛盾しないどころか
むしろ長所を伸ばしあう関係にあるわけだけど、まあ君には関係ない話だね。さよなら。
0210デフォルトの名無しさん
垢版 |
2015/02/10(火) 07:31:44.72ID:Ojr93FaP
これからはスマホの時代だけど
Smalltalkでスマホ開発ってどしたらいいの?
やっぱWebアプリにするのかな
0214デフォルトの名無しさん
垢版 |
2015/02/10(火) 10:37:51.08ID:SrGhIMrb
Smalltalkの最大の欠点はOSの上にOSモドキを乗っけるナンセンスさと
マイナーな独自UIを強制するところにあるから、

一からスマホOSをSmalltalkで作って
UIをiPhoneに似せれば天下取れるかもよ
0215デフォルトの名無しさん
垢版 |
2015/02/10(火) 13:36:11.97ID:TIteOp3H
まだいたのか、キミ… ^^;
ナンセンスということなら、キミがここにいること自体がナンセンスだよ。

とりあえず、これ↓を10ぺんくらい読んでみることをお薦めすることしか今はできない。

「Smalltalkの底を流れる設計思想」
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
0216デフォルトの名無しさん
垢版 |
2015/02/10(火) 17:42:43.44ID:f6VLwhXv
>>214
UIが気になるんなら、下みたいに簡単にOSの関数呼べるんだから関数のUI使えばいいじゃん。

俺はGNU Smalltalkを使うときAndroidのUI使ってるぞ。

Object subclass: #Bridge.

DLD addLibrary: 'libc'.

! Bridge class methodsFor: 'cross language' !
abs: anInteger

 <
  cCall: 'abs'
  returning: #int
  args: #( #int )
 >.
!!

Bridge abs: 0.
0220デフォルトの名無しさん
垢版 |
2015/02/11(水) 02:48:11.00ID:kCQdnFWd
クラスライブラリの実装見ると
たいてい使える機能から予想するよりも
短い記述になってる印象なんだけど
なんで?

文法が簡潔で記述量が少なく書けるから?
書き手がOOマスターしてるから?

それとも継承しまくってるから
(継承を追って見るくらいはしてる)
総量は多くても個々が少なく感じるだけ?

じつはシステムブラウザから見えない部分
(インライン)で下処理を済ましてるから?
0221デフォルトの名無しさん
垢版 |
2015/02/11(水) 06:47:42.77ID:Ids2Eeke
>>220
本当に実装量程度の機能かもしれないし、
からくりがある場合もある。
具体的には、どのクラス?(できれば処理系も)
0222デフォルトの名無しさん
垢版 |
2015/02/11(水) 09:08:37.73ID:WHehhV2d
>>217
基本的にGNU SmalltalkにAndroid用の追加Packageがちょこっと乗ってるだけ。
GNU Smalltalkの部分はLinuxやWindows上と使い勝手は変わんないよ。

因みにGNU Smalltalkは方言が激しすぎると思うかもしれないけど、
他の環境と同じような書き方もできるよ。

"Smalltalk User Exampleといい名前空間を作る。"
Smalltalk addSubspace: #User.
Smalltalk User addSubspace: #Example.

"Smalltalk User Example に移動する"
! Namespace current: Smalltalk User Example !

Object
 subclass: #Someoen
 instanceVariableNames: 'name'
 classVariableNames: ''
 poolDirectory: ''.

"ClassのInstance変数の登録(省略可)"
Someone class instanceVariableNames: ''.

"name変数の読み書き用Method登録。defaultは初期値"
Someone
 createSetMethod: 'name';
 createGetMethod: 'name' default: ''.
0223デフォルトの名無しさん
垢版 |
2015/02/11(水) 09:09:08.40ID:WHehhV2d
"Instance用のMethod登録"
! Someone methodsFor: 'example' !
something

^ '何か処理を書く'.
!!

"Class用のMethod登録"
! Someone
class methodsFor: 'instance creation' !
withName: aString

^ self
 basicNew
  name: aString.
!!

"現在の名前空間を変更して保存すると、名前空間が変更しっぱなしになるので戻す。"
! Namespace current: Smalltalk !

"
Imageに保存。引数を指定しなければ/mnt/sdcard/ls4a/gst.imに保存される。
元のgst.imはどこかに保存しとくこと。
"
ObjectMemory snapshot.
0224デフォルトの名無しさん
垢版 |
2015/02/11(水) 09:36:26.45ID:WHehhV2d
GNU Smalltalkの注意点

1. 親の名前空間が持っている名前空間を子の名前空間は作れない

ダメな例
 Smalltalk Test Something Test.

大丈夫な例
 Smalltalk SomethingA Test.
 Smalltalk SomethingB Test.

代わりに子の名前空間から親の名前空間を参照するとき
参照する親より上の名前空間を省略できる。

Smalltalk Test Something ExampleAという構成の時ExampleAから
TestのClassをExampleBを参照するとき
下記のいづれでも参照できる。

ExampleB
Test ExampleB
Smalltalk Test ExampleB

2. 大文字で始める変数、または大域は宣言してないとnilになる。
つづりを間違えた時に結構ハマる。
Method内で書いた小文字の変数は宣言が無いと翻訳失敗になる。
また、名前空間をSmalltalk.Something.と「.」で区切れば、
親の名前空間が存在しない時翻訳失敗にしてくれる。
ただし、最後の名前空間名やClass名まで存在するか見てくれない。
0225デフォルトの名無しさん
垢版 |
2015/02/11(水) 09:53:20.80ID:WHehhV2d
3. 例外を捕まえるClassの種類ににExceptionから派生した
 Class以外を指定すると訳の分からない例外になる。

[
]
 on: NotFound "NotFoundが存在しない場合nilになっており例外処理が暴走する。"
 do:
 [ :exception |
 ].

4. nilを継承できる。nilを継承するとMessageに
 存在しないMethodを指定されてもErrorにしない。

"SuperSomethingは実はnilだが継承できてしまう。"
SuperSomething subclass: #Something.

"helloは無視される。"
Something new hello.

ただし、nilを継承すればあらゆるMessageを
doesNotUnderstaedで受け取ることができるいう利点もある。
Objectを継承しているとObjectが実装しているMessageは受け取れない。
0226デフォルトの名無しさん
垢版 |
2015/02/11(水) 10:04:46.87ID:WHehhV2d
sl4aでGNU Smalltalkを使う時のヒント。
GUI は下記のような感じで作ることができる。

PackageLoader fileInPackage: 'Android'.

| os event |
os := Android.

"UI表示"
os fullShow:
'<?xml
version = "1.0"
encoding = "utf-8"
?>
<LinearLayout
xmlns:os = "http://schemas.android.com/apk/res/android";
os:layout_width = "match_parent"
os:layout_height = "match_parent"
os:orientation = "vertical"
>
<EditText
os:layout_width = "match_parent"
os:layout_height = "wrap_content"
/>
</LinearLayout>
'

"Event待ち"
event := os eventWait.
0227デフォルトの名無しさん
垢版 |
2015/02/11(水) 19:11:13.96ID:kCQdnFWd
>>221
処理系はSqueak
クラスは「Kernel-」系のクラス

こんなコアな部分でもこれだけで済むの?
ってのが素朴な疑問だった

(とくに昔の)C++とかのソースだと
1ファイルに何千行もドバッと書かれてるから
小分けで錯覚してるだけかもしれないけど

自力で分かったのは
Kernel-Objects BooleanのifTrueが
インライン展開されてるから書かれてないってこと
0228デフォルトの名無しさん
垢版 |
2015/02/11(水) 20:49:58.18ID:Ids2Eeke
>>227
> Kernel-Objects BooleanのifTrueが
> インライン展開されてるから書かれてない

もし Boolean >> ifTrue: のことなら、処理が書かれていないのではなくて、
self subclassResponsibility 、つまりサブクラスでオーバーライドせよというコードで指示がされているだけで、
実際にそれに従い、True >> ifTrue: 、False >> ifTrue: の方に(普段はインライン展開されてしまうので
無視されますが、明示的にコールしてやりさえすれば)動くコードが書かれています。

たとえば True >> ifTrue: メソッドは、こんな風に明示的にコールできます。
true perform: #ifTrue: with: [3] "=> 3 "
True >> #ifTrue: valueWithReceiver: true arguments: {[4]} "=> 4 "

他のインラインされるメソッド群は MessageNode class >> initialize で確認できますが、
(Kernel-Objects MessageNode の class 側に切り替えてでてくる initialize メソッド定義内)
whileTrue: を除いては、前述の ifTrue: 同様、明示的にコールしても
動くコードで書かれているので短い記述になっていることにはあまり寄与していないように思います。

そういう意味では Float >> + のように <primitive: 41> などといった記述があるメソッドは
実処理が仮想マシンやプラグインにあるので、具体的なソースは書かれていないことになります。
これはちょっとコード量の削減に寄与しているかもしれません。

余談ですが、<primitive: 41> などの後に書かれているのは、仮想マシンなどに記述された関数のコールが
失敗した場合に実行されるフォールバックコードで、これは Smalltak で記述されています。

個人的には Smalltalk のコードが短く感じるのは、出来ることの印象に反して
実質的にはコード量なりの機能しか実装されていないからだと思います。
C++ などで書かれたものと厳密に(たとえば数理学的に)同等の機能を記述しようと思ったら
それなりのコード量になるのではないでしょうか。
0229デフォルトの名無しさん
垢版 |
2015/02/11(水) 22:16:32.83ID:kCQdnFWd
>>228
うわー詳しい!
触ったばかりとはいえ雑な理解で恥ずかしいです^^;

>実質的にはコード量なりの機能しか実装されていない
パッと見で気づかれないていどに
うまく手を抜いてるってことですかね

たしかにC++みたいな巨大な仕様の言語と
細部の挙動が違うのは想像できます

もしそれが気に入らなければ
Smalltalkは仕様自体をカスタマイズできるんだし
YAGNI的にも開発リソース的にも
それが現実解の気がします

なぜそこが気になったかというと
少ないコード量で実現してるというのは
設計の参考になるからです
0230デフォルトの名無しさん
垢版 |
2015/02/11(水) 22:52:16.50ID:Ids2Eeke
正直、どうしてこんないい加減なものが動くのか、私もかねてから不思議に思っています。^^;
まあそこが興味の対象であり、数理学的に論じると味わいのなくなる面白いところでもあるわけですが。
手抜きのことも含めて、もちろん他にも短く書くための工夫らしきことはあるので
もう少し、システムの中身を覗いてみてください。

設計の参考ということでは、しばらくいじってみて興味をひかれた機能を
その動作から実装を予想し、実際にそう実装されているか確認してみると
「その手があったか!」というような発見もあって楽しみながら学べると思います。
(あるいは時間の無駄で終わるかもしれませんが…)

個人的によくお薦めするところでは、print it(式を選択して右クリックメニューなどから
print it すると返値が挿入される機構)がどのように実装されているか、コンパイラの
実装やその動作などと併せて予想・確認してみるのは比較的よい題材かと思います。
0231デフォルトの名無しさん
垢版 |
2015/02/11(水) 23:29:09.42ID:kCQdnFWd
>>230
>どうしてこんないい加減なものが動くのか
不思議ですよねー
古くからあるから職人芸なのかな

記述が短いから拡張や改造が楽で
助かる面はあります

>実装やその動作などと併せて
>予想・確認してみるのは比較的よい題材
それは良さそうですね
じっくり取り組んでみます
0232デフォルトの名無しさん
垢版 |
2015/02/12(木) 00:10:33.54ID:EWCUv8cS
>>228

value := 1 < 2 ifTrue: 3 asValue ifFalse: 4 asValue.

こんな場合もInline展開されないでしょ。
VisualWorksだと最適化しないって警告がでる。
0233デフォルトの名無しさん
垢版 |
2015/02/12(木) 01:13:27.37ID:DTXdCLax
>>222-226
> 基本的にGNU SmalltalkにAndroid用の追加Packageがちょこっと乗ってるだけ。
> GNU Smalltalkの部分はLinuxやWindows上と使い勝手は変わんないよ。
それならSmalltalk使う意味あるね
ほかの処理系でももっと出てきて欲しい

WindowsPC全盛期はマルチプラットフォームに
あんま魅力感じなかったけど
今みたいにPCもスマホもでOS乱立してると
同じように書けることって大きいと思う

PCはC++かC#で
WebアプリはPerlとかPHPで
AndroidはJavaで
iPhoneはObjective-Cでとか
覚えることがあまりにも多すぎる

PCもWebもスマホも
同じ言語で書けたら楽だなと思う
まあその本命は一昔前ならJavaだったし
今ならJavaScriptなんだろうけど
0235デフォルトの名無しさん
垢版 |
2015/02/12(木) 09:00:56.49ID:FbfONYzU
>>232 あ、ほんとだ。ブロックリテラルで書かないと、インライン展開されないんですね。…とのことです。>>229

true ifTrue: [3] ifFalse: [4]. thisContext method symbolic "=> '33 <71> pushConstant: true
34 <99> jumpFalse: 37
35 <21> pushConstant: 3
36 <90> jumpTo: 38
37 <20> pushConstant: 4
38 <87> pop
39 <89> pushThisContext:
40 <D3> send: method
41 <D2> send: symbolic
42 <7C> returnTop' "

true ifTrue: 3 ifFalse: 4. thisContext method symbolic "=> '33 <71> pushConstant: true
34 <21> pushConstant: 3
35 <22> pushConstant: 4
36 <F0> send: ifTrue:ifFalse:
37 <87> pop
38 <89> pushThisContext:
39 <D4> send: method
40 <D3> send: symbolic
41 <7C> returnTop' "

| block | block := [3]. true ifTrue: block. thisContext method symbolic
"=> '<略> 36 <71> pushConstant: true
37 <10> pushTemp: 0
38 <E1> send: ifTrue:
39 <87> pop
40 <89> pushThisContext:
41 <D3> send: method
42 <D2> send: symbolic
43 <7C> returnTop' "
0236デフォルトの名無しさん
垢版 |
2015/02/12(木) 09:26:20.70ID:FbfONYzU
>>232
調べてみました。なるほど。
引数がブロックかどうかをチェックしてインライン化を判断しているのですね。
(以下は Squeak の場合ですが、VisualWorks でも似たようなことをしていました。)

MessageNode >> transformIfTrue: encoder
 (self transformBoolean: encoder)
  ifTrue:
   [arguments :=
    Array
     with: ((arguments at: 1) noteOptimizedIn: self)
     with: ((BlockNode withJust: NodeNil) noteOptimizedIn: self).
   ^true]
  ifFalse:
   [^false]

MessageNode >> transformBoolean: encoder
 ^self
  checkBlock: (arguments at: 1)
  as: 'argument'
  from: encoder
0237デフォルトの名無しさん
垢版 |
2015/02/12(木) 15:47:56.01ID:1WRWm2Rj
>>235
自作ClassのObjectに対してはMessage送信省略しないお陰で、
数値計算に自作ClassのObjectをツッコむことができるんだよね。
以下はGNU Smalltalkの例。

nil
subclass: #NumberDelegator
instanceVariableNames: 'delegate'
classVariableNames: ''
poolDictionaries: ''
category: 'Example'.
! NumberDelegator methodsFor: 'accessing' !
delegate: aNumber
delegate := aNumber
!
generality
"primitive扱いされると例外を吐くことになるので、primitive扱いできないようにする。"
^ 0.
!!
! NumberDelegator methodsFor: 'forwarding' !
doesNotUnderstand: aMessage
^ aMessage sendTo: delegate.
!!
! NumberDelegator class methodsFor: 'instance creation' !
forwardTo: aNumber
^ self basicNew delegate: aNumber.
!!
| result |
result := 1 + ( NumberDelegator forwardTo: 10 ).
0238デフォルトの名無しさん
垢版 |
2015/02/12(木) 17:47:15.72ID:FbfONYzU
>>237
言いたいことがよく分かりません。
それはコンパイル時の ifTrue: 、whileTrue: などのインライン展開とどういう関係があるのでしょうか?

そもそも 1 + 10 と 1 + MyClass new とではコンパイル結果は変わらないですよね?
そのコードも SmallInteger >> + のプリミティブが失敗して普通にフォールバックしているだけだと思うんですが…
0239デフォルトの名無しさん
垢版 |
2015/02/13(金) 03:23:10.58ID:ftS8kcXE
>>234
Smalltalkならではの伝統ですね
新しい言語だと何十年もリファクタリングした
コードを見る機会はないし

>>235-236
>引数がブロックかどうかをチェックして
>インライン化を判断している

インライン化とそうでない処理に分けることについて
なぜそうするか、思いついたメリットとしては

インライン化のほうが早いだろうけど
もしインライン化しかないと
ifTrue系の命令を自分で改造するのが大変だからかな
0241デフォルトの名無しさん
垢版 |
2015/02/14(土) 09:31:23.95ID:+jQ5RdmI
他言語でも同様のものを作れなくはないと思うのですが
Smalltalk環境の機能自体があまり多くの人に知られていないのと
他言語では同様のものを(Smalltalkほどには)簡単には
作りにくいのかもしれませんね。

Clojure 向けですが、最近ではこんなIDEが話題になっていました。
http://cloxp.github.io/cloxp-intro.html
0243デフォルトの名無しさん
垢版 |
2015/02/14(土) 10:10:59.12ID:KJLqYxlY
補完とか名前変更とかSmalltalkのIDEはウンコすぎるじゃん
本当に開発してると一番差が出るところなのに
本当にJavaやC++のIDE使った事あんのかよ
0246デフォルトの名無しさん
垢版 |
2015/02/14(土) 10:38:06.59ID:KJLqYxlY
無関係な候補が補完されたり、無関係な名前まで変更されてしまうゴミじゃん
0247デフォルトの名無しさん
垢版 |
2015/02/14(土) 10:54:34.66ID:+jQ5RdmI
粘着アンチ君、まだいたのか。
他言語で幸せになれなかったのかな…。かわいそうに。
0248デフォルトの名無しさん
垢版 |
2015/02/14(土) 11:01:59.33ID:+jQ5RdmI
>>244
この人は補完の精度のことを言っているんですよ。
動的型言語である以上、どうやったって精度はだせない。
よって、補完がないとコード書けないユーザーにはウンコで使えない、と。
0249デフォルトの名無しさん
垢版 |
2015/02/14(土) 11:34:10.14ID:Z9ZmRxLI
>>241
> 他言語では同様のものを(Smalltalkほどには)簡単には作りにくい
Smalltalkは最初からGUIのことまで考えて言語が設計されてるからかな

>>242
まだ一般人が使えるようにはなってないのかな

>>245
ちなみにおれが言ってるほうのIDEはSqueakね
0250デフォルトの名無しさん
垢版 |
2015/02/14(土) 12:11:34.81ID:Z9ZmRxLI
まあ静的型付けほどの精度はないし
多機能さとか総合力でスコアつけたら
VSとかメジャーなIDEのほうが上だろうよ

でも主観的な使い心地はすごい良く感じる
純粋OOPLとか動的とかイメージベースとか
いろんな仕様がかみ合ってるから使いやすい

逆にVSっつーかC++は
かみ合ってないから疲れる

そもそもIDEよりエディタで気軽に書くほうが
好きだったりするんだけど
Smalltalkに関してはIDEじゃないと魅力半減
0251デフォルトの名無しさん
垢版 |
2015/02/14(土) 12:46:41.71ID:+jQ5RdmI
>>249
> Smalltalkは最初からGUIのことまで考えて言語が設計されてるからか

たしかに GUI の扱いやすいさもひとつにありそうですが、個人的にはそれに加えて
Smalltalk(というかアラン・ケイが)重要視して、他言語では良くない余計なものとされる
オブジェクトの全能性(というと語弊があるので「訊けば答えてくれる感」?)も重要だと思っています。

たとえば、ブラウザ機能を実現するのに必要なクラスに定義されたメソッドの一覧や
メソッドのソースは、それぞれクラスやメソッド自身に尋ねればこんなふうにして
簡単に得られます。(後者は Squeak の場合)

Integer selectors
(Integer >> #factorial) getSource

リフレクションの API が充実しているだけと言われればそれまでですが、
(先だってのコードの短さともからめて)そういう切り口ではない、環境内のオブジェクト間の連携を
しやすくする工夫の結果としての IDE の使い勝手であるような気がします。
0252デフォルトの名無しさん
垢版 |
2015/02/14(土) 15:51:07.10ID:0dco6ark
「無関係」の定義もなく「変更されてしまうじゃん」とか断言する人って、技術的な議論には全く向かないよね。
0253デフォルトの名無しさん
垢版 |
2015/02/14(土) 17:50:52.21ID:pFrYpbo4
彼はSmalltalkをコケにすることができれば満足で
そういう次元の議論は1ミリも望んでいないでしょう。

それはさておき本気を出せばSmalltalkでも
補完くらいなら、そこそこの精度は出せるでしょうね。
0255デフォルトの名無しさん
垢版 |
2015/02/14(土) 19:18:06.07ID:Hs1Wk7so
Smalltalkを覚えたいのだが本業のドカタ仕事に忙殺されてなかなか出来ぬ。
人生は短すぎる。

で、Smalltalkerさん達の本業は何よ?
0260デフォルトの名無しさん
垢版 |
2015/02/14(土) 21:20:15.48ID:Z9ZmRxLI
>>251
> オブジェクトの全能性
たしかにC++のクラスが抽象データ型の延長なのに対して
Smalltalkではより能動性とか主体性を持たせようとしてますね

C++だとメモリ管理とかとあわせてクラスの管理をいろいろ
プログラマが抱え込まないといけないからストレスになる

Smalltalkはブラウザ関係もふくめて
メッセージングに任せられる部分が多いので
ストレスが軽減されていると感じます

C++(とVS)は多機能で高性能なんだけど
それだけプログラマの負担も大きくて
Smalltalkはそれよりさらに高性能というよりかは
使用者が使いやすい方向を目指してる感じ
0263デフォルトの名無しさん
垢版 |
2015/02/15(日) 15:56:50.97ID:6aDKSPw5
>>255
マイケルジャクソンの物真似
0264デフォルトの名無しさん
垢版 |
2015/02/16(月) 01:03:07.94ID:HauqtKo6
>>238
GNU Smalltalkだと定数の演算とかは糞真面目に計算せずに、
翻訳時にすませてるっぽいよ。
この辺も最適化の過程でMessage送信が必要かどうか判断してるんじゃない?

>>239
原則Message送信であってif文の構文糖じゃないからね。
最適化はあくまでもオマケ。
最適化し辛い構文があってもMessage送信の原則は守る必要があるんでしょ。
0265デフォルトの名無しさん
垢版 |
2015/02/16(月) 01:10:51.90ID:HauqtKo6
>>251
Squeak以外は使わないの?
VisualWorksとかPharoとかは、補完するSelectorを結構絞り込んでくれるから便利よ。
VisualWorksはCincom本社の海外サイトで個人情報入れなきゃなんないのが面倒だけど。
0267デフォルトの名無しさん
垢版 |
2015/02/16(月) 11:16:01.67ID:XP4TAyIw
>>264
> GNU Smalltalkだと定数の演算とかは糞真面目に計算せずに、
> 翻訳時にすませてるっぽいよ。

それは分かりましたが、それを踏まえてもなお

>> 237
> 自作ClassのObjectに対してはMessage送信省略しないお陰で、
> 数値計算に自作ClassのObjectをツッコむことができるんだよね。

が出てきた理由がまだよくわかりません。

なぜあえてこの例が必要だったのか(Squeak の話をしているときになぜあえて GNU Smalltalk か?
非リテラルオブジェクトではなくなぜあえて自作クラスなのか? さらになぜあえて nil を継承したのか?)、
それぞれによって、どんな理解が進むのかについて少々かみ砕いての解説をお願いできますか?
0269デフォルトの名無しさん
垢版 |
2015/02/17(火) 22:00:01.91ID:qlRtFPhT
>>267

1. SqueakではなくGNU Smalltalkを例に出した理由
 Squeak限定じゃなくSmalltalk一般の話かと思いまして
 処理系について意識してませんでした。すみません。

2. 数値計算の最適化を上げた理由
 Message送信が最適化で省略されない場合の利点を
 説明するつもりで書きました。
 #ifTrue:ifFalse:で有用な例を示さなかったのは
 すぐ有用な用途が浮かばなかったからです。

3. なぜ既存のClassではなく自作Classを例に使ったか
 最適化が適用されない既存のClassが
 思いつかなかったからです。
 SqueakやPharo基準で考えれば、
 自作じゃなくてもCollection系で良かったですね。
 レスを書いた時は思いつきませんでした。

4. なぜnilを継承したか
 Objectを継承すると、ObjectがMethodを実装しているMessageを
 #doesNotUnderstand:で委譲できなくなるためです。
 SqueakではProtoObjectを使いますが、
 GNU SmalltalkやVisualWorksではnilを使います。

5. 何について理解が深まるか
 最適化はオマケなので、最適化されるMessageだからと言って
 必ず最適化される訳ではないし、
 最適化によって自作ClassのObjectを渡すと
 動かなかったりするわけではない
 という事が理解いただければと考えています。
 
0270デフォルトの名無しさん
垢版 |
2015/02/17(火) 23:17:58.58ID:1fkLZx/i
>>269
なるほど、よくわかりました。
丁寧な説明をありがとうございます。

1. の早合点はさておき、
はじめから 5. のような簡易な説明を添えていただけていたなら
私ども読み手も視野を広げやすくなるので、今後もご助言を
いただけるのでしたら、ご一考いただければさいわいです。
0273デフォルトの名無しさん
垢版 |
2015/02/18(水) 00:28:25.04ID:UZdA10Ut
fileURLは使ったことあるけどまさかのhttpもstreamで取れるとは思わなかった
読み込めなかった時のSignalの扱いはわからんがちょっと考えてみるか・・

| aURL aStream aList aLine |

aURL := URL fromString:'http://anago.2ch.net/moeplus/'.
aStream := aURL readStream lineEndAuto. "withEncoding:#shiftjisは通らない"
aList := OrderedCollection new.

[ aStream atEnd] whileFalse:[ aLine := aStream upTo:(Character cr ).
aList add:( aLine asByteArray asStringEncoding:#shiftjis ) ].

aList inspect.
0274デフォルトの名無しさん
垢版 |
2015/02/18(水) 01:47:28.06ID:QTgMdBtY
GNU SmalltalkにSmalltalkのVM上で
Javaを動かすPackage、その名もJavaがあった。
.jarを読み込んでくれず.classを取り出さないとダメだったり、
Java7には対応してなかったりと微妙な出来だけど、
JavaのClassが完全にSmalltalkのClassとして取り込まれてる所が面白い。
他にも誰が使ったことある人いる?
0276デフォルトの名無しさん
垢版 |
2015/02/18(水) 09:22:33.83ID:wdCl3CCW
>>264
興味があって調べてみたのですが、GNU Smalltalk で定数同士演算(たとえば + 演算)で
メッセージ送信が省略されているのかが ideone.com の処理系では確認できませんでした。
「翻訳時」を「コンパイル時」、つまり「バイトコード変換時」と読み取ったのですが
バイトコードレベルで省略されているという話ではないのでしょうか?
メッセージ送信が省略されていることの確認の方法を教えていただければさいわいです。

UndefinedObject extend [
 plusLit [^3+4]
 plusNonLit [^3 + OrderedCollection new]
]

(UndefinedObject >> #plusLit) inspect printNl
"=>
[1] source code line number 2
[3] push 3
[5] push 4
send 1 args message #+
[7] return stack top "

(UndefinedObject >> #plusNonLit) inspect printNl
"=>
[1] source code line number 3
[3] push 3
[5] push Global Variable {Smalltalk.OrderedCollection}
[7] send 0 args message #new
[9] send 1 args message #+
[11] return stack top "

http://ideone.com/zWMggc
0278デフォルトの名無しさん
垢版 |
2015/02/18(水) 12:57:09.98ID:wdCl3CCW
>>277
ありがとうございます。

>>264 の「翻訳時にすませてる」を、3+4 を 7 にする!? と勘違いしていました。
#+ などは特殊なバイトコードを使用し、そうした特殊なバイトコードでは引数の組み合わせ次第で
レシーバー(この場合 3)へのメッセージ送信は行なわない、ということですね。

別件ですが、メソッドにコードされたプリミティブが #perfom: 等でコールされたときのためとは
知りませんでした。

そうすると、3 + 4 時は VM 内の + 関数で処理され、
3 + OrderedCollection new 時は + 〜 (バイトコード的には + )が 3 に送られて
そこでプリミティブ記述により改めて VM 内の + 関数がコールされ
それが失敗してフォールバックコード(たとえば ^super + aNumber)が実行される、
という理解で合っていますか?
0279デフォルトの名無しさん
垢版 |
2015/02/18(水) 18:55:49.75ID:wdCl3CCW
>>278
> 3 + 4 時は…

自己レスです。(Squeak で、かつ旧 VM でですが)どうなっているか調べてみたら、
VM 内でプリミティブとしてコールされる + 関数(Squeak の場合 primitiveAdd )と
バイトコード実行時にコールされる + 関数(同、bytecodePrimAdd )は別物なんですね。

通常は bytecodePrimAdd がコールされ、整数/整数とかでなければメッセージを送信、
#perform: などで呼んだ場合は primitiveAdd がコールされ、それが失敗すると
プリミティブに続いて記述してあるフォールバックコードが実行されるというカラクリでした。
0280デフォルトの名無しさん
垢版 |
2015/02/19(木) 11:17:57.25ID:H2Raaanq
似たようなことに興味を持つ人もいるかもしれないので参考まで。

http://askoh.com/mwiki/images/b/be/InterpreterSimulator.zip

>>279 を調べるときに使った Squeak の処理系です。
インタープリターシミュレーターが同梱されているので解凍、Squeak 3.9 仮想イメージ向けの VM を
用意して起動(Simulator.image の方)後、ワークスペースの式を評価することで動かせてお手軽です。

http://vm-dev.squeakfoundation.narkive.com/vxckeGXt/simulate-3-4-with-interpretersimulator

にもありますが、bytecodePrimAdd ではなく primitiveAdd のほうに self halt を仕掛けるのが
ミソのようです。(bytecodePrimAdd は当然ですがしょっちゅう呼ばれるので…)
0282デフォルトの名無しさん
垢版 |
2015/03/21(土) 21:33:43.04ID:UWDIX5zE
>>184
>SqueakだとWindowsの.exe作る方法もあったと思うけど
ちょっと前の話だけど
これをずっと探してて見つけられなかった

Visual Worksならできるっていうのは分かったけど
SqueakでWindowsの実行ファイル作る方法は見つけられなかった

いや実際にSqueakでexeを吐いてるけどって人いる?
Think different? by 2ch.net/bbspink.com
0283デフォルトの名無しさん
垢版 |
2015/03/21(土) 22:21:51.58ID:Xtizjndc
今Windowsの環境ないから確認できないけど
http://d.hatena.ne.jp/propella/20050925/p1
こことか、リンクのとことか。やったのだいぶ前だけど。
0284デフォルトの名無しさん
垢版 |
2015/03/21(土) 22:32:55.41ID:UWDIX5zE
>>283
できた! サンクス!

エントリ自体は前に見たことあるけど
ウゴモーフとか興味なかったから
流し読みしてしまって見落としてた
0285デフォルトの名無しさん
垢版 |
2015/03/21(土) 23:32:01.16ID:UWDIX5zE
exe化はできたけど
もうひとつやりたいことがあるんだ

リリースしたアプリをユーザがいじっておかしくしないように
ハローとか開発環境の部分を隠蔽することってできる?
0286283=184
垢版 |
2015/03/22(日) 01:37:55.28ID:VhQjMmyl
http://wiki.squeak.org/squeak/518
ここのcs.gzをDLして、解凍してできたcsをinstall。
Workspaceで
Preferences disableProgrammerFacilities
をdo it したら、警告ウィンドウ出るのでYes、保存する新しいimage名を指定。
保存したimageを起動すると、望みの動作になってるはず。
0287デフォルトの名無しさん
垢版 |
2015/03/22(日) 02:18:58.81ID:G0/vVT9E
>>286
おおすばらしい! ありがとう!

まだメニューが残ってたりするけど
これでだいぶ普通のアプリっぽくなった


できないと勝手に思いこんでたけど
同じところでつまづいた人多そう

Smalltalkそのものは大変すばらしいので
日本語情報さえあればもっと広まるのに
0288デフォルトの名無しさん
垢版 |
2015/03/22(日) 02:57:43.39ID:G0/vVT9E
ああ試してたらメニューバーも消せたわ
ワールドメニューがちょっと残るけど
ほとんど普通のアプリと変わらない
0289286
垢版 |
2015/03/22(日) 07:07:35.62ID:VhQjMmyl
>288
>ワールドメニューがちょっと残るけど
中ボタンで出るyellowButtonMenuのことかなぁ
PreferenceのSearch preferences forでgeneralizedYellowButtonMenuを検索して表示して
enableをオフにしたら出なくなるけど
0290デフォルトの名無しさん
垢版 |
2015/03/22(日) 08:47:01.02ID:G0/vVT9E
>>289
できた! 何度も世話を焼かせてしまってすまない

これでタイトルバーにねずみのアイコンがある以外は
普通のWinアプリと同じ何もないところまで来たんだけど……

だけどメニューバーも黄ボタンメニューも
ほかのワークスペースとかもなくした状態で
どうやってイメージ保存してexe書き出しすればいいんだろう?

なんか一休さんのびょうぶから虎を追い出せ
みたいなとんち状態になってきた
0291286
垢版 |
2015/03/22(日) 11:20:56.62ID:VhQjMmyl
>>290
>>これでタイトルバーにねずみのアイコンがある以外は
>>普通のWinアプリと同じ何もないところまで来たんだけど……
Preferenceの Show world main docking bar のenable のオフでバーごと非表示にならない?
Windows持ってないから状態わからないけど

最後のとんち状態は そうだね...解決策はありそうだけど
0292デフォルトの名無しさん
垢版 |
2015/03/22(日) 18:17:51.03ID:G0/vVT9E
>>291
>オフでバーごと非表示にならない?
ねずみアイコンが2つあって
メニューバーのほうはまるごと消せるけど
タイトルバーのほうは残る

それでデバッグ項目みたいのが残る
Winしか持ってないから
他OSとの違いは分からないが

でもライセンス的にMITだから
Squeakを使ってること自体は
どこかで教えないといけないので
これでもいいよ
0293183,282
垢版 |
2015/03/22(日) 18:21:50.40ID:G0/vVT9E
>>291
exe書き出しのとんちのほうは
アイディアが色々あるので試してみる

超初心者だから時間かかるだろうけど
他言語の経験はあるから
少しずつ調べながらやってみる

最後は自分で何とかしたいと思う
長々と付き合わせてしまって申し訳なかった
0294286
垢版 |
2015/03/22(日) 19:25:44.81ID:VhQjMmyl
>>293
こちらこそ久々にいろいろやってみて、いろんな機能を知って面白かった
0295デフォルトの名無しさん
垢版 |
2015/03/23(月) 05:44:59.29ID:9+S6Qh9p
>>256
>SqueakのCトランスレータが結構使える
一行レスだから見逃してしまってたけど
今スレ見返してたらすごい面白そう

VMの埋め込みとかで触れないのかと思ってた
普通にワークスペースから使えるものなの?

クラス名とか検索するための単語なにか教えて
0296デフォルトの名無しさん
垢版 |
2015/03/23(月) 22:16:08.94ID:9+S6Qh9p
>>295
レスが付かないから自分でザッと調べてみたけど

>>256
で言うCトランスレータというのは
Slangで書くVMプラグイン機構のことかな?
(それとも別の何かがあるなら誰か教えて欲しい)

プラグインはしばしば他言語でそうするように
DLLみたいなC/C++で書くものという先入観があったから
逆方向でトランスレータとしても使えるのは面白いと思った

ただCのソース単体で取り出して
他でコンパイルできるのかとか
まだ詳しく調べてないけど
0297デフォルトの名無しさん
垢版 |
2015/03/24(火) 20:05:29.21ID:cN0vYmrU
>>296
現実的にはslangは単純な整数とか整数の配列の計算くらいにしか使えない
行列とかベクトルの計算とか、その程度が限界

プラグインは普通にcで書くという先入観で正しいと思う
0298デフォルトの名無しさん
垢版 |
2015/03/24(火) 21:14:29.75ID:ZdrU8eOQ
>>297
あーそうなんだ、thx

Cと自由に行き来できたら便利だと思ったけど
計算で速度稼ぐとか、実用に耐える範囲は限定的か

まあ制約が多くても
使えるだけでありがたいけど
0299デフォルトの名無しさん
垢版 |
2015/07/02(木) 08:23:13.10ID:37HIrXjo
下記サイトにオブジェクトの定義が書かれています。

オブジェクト指向プログラミングとは何か?
http://eed3si9n.com/node/145

オブジェクトとは何か?

他のオブジェクトへの参照を保持し、事前にリストアップされたメッセージを受信することができ、
他のオブジェクトや自分自身にメッセージを送信することができるアトムで、他には何もしない。
メッセージは名前とオブジェクトへの参照のリストから構成される。

アトムの意味がよくわからないのですが、すみませんがご教示お願いします。
0300デフォルトの名無しさん
垢版 |
2015/07/02(木) 11:31:18.87ID:AO3svzPO
>>299
メッセージを事前にリストアップしないといけないとか、オブジェクトがアトムであるとかは
この人の思い込みや勝手な言い換えなので原文(をもう少しマシに訳したサイト)を
当たられることをお薦めします。

http://d.hatena.ne.jp/katzchang/20080807/p2

私が考えるOOPはメッセージング、状態処理のローカルでの保有・保護・隠蔽、
そして全ての物に対する強力な遅延束縛、これだけだ。これはSmalltalkとLISP
だけが実現できている。他のシステムでも可能かもしれないが、私は知らない。
0301デフォルトの名無しさん
垢版 |
2015/07/02(木) 14:19:08.77ID:gyn5Kcjz
>>299
たぶんアトムはLispの用語から取ってるんじゃないかな?

でも定義してる中で(一般には)未知の新用語を出すって
筋の良い定義じゃないよね

>>300の原文でも言ってないし

事前にリストアップってのも静的型付けの発想で
遅延束縛を重視するSmalltalkの発想から離れてる

アランケイのアイディアと混ぜないで
自分で一から言い直したほうが良い気はする
0302デフォルトの名無しさん
垢版 |
2015/07/03(金) 08:40:10.68ID:W3KOnD9Z
>>300-301
レス、ありがとうございます。

アラン・ケイによる正確なオブジェクト定義の提示ありがとうございます。
Lispのアトムを検索して、これ以上分解できない基本データだと理解しました。
0303デフォルトの名無しさん
垢版 |
2015/10/02(金) 11:30:24.22ID:njwjZuA3
>>302
そこで言ってるアトムは分解出来る機能の集合体なのだから
これ以上分解できない基本データではないな
単に個体とかでいいんじゃね
0304デフォルトの名無しさん
垢版 |
2015/10/02(金) 19:47:13.01ID:ADth776D
ぜんぜん関係ないけどおれアラン・ケイが来日したときサインもらった
いいだろう
0305デフォルトの名無しさん
垢版 |
2015/10/02(金) 22:04:37.04ID:q16UoAhR
ひさしぶりにスレが動いたから
オレもついでに言うけど

Smalltalkやってる人がもともと少ないんだけど
とくに日本でPharoやってる人ぜんぜんいないな

言語(処理系)は良さそうなんだけど
日本語情報が少なすぎてどうしようもない
0306デフォルトの名無しさん
垢版 |
2016/04/10(日) 02:03:06.43ID:WTOWAaLY
age
0308デフォルトの名無しさん
垢版 |
2016/04/20(水) 16:32:04.67ID:a8lJ1Bzf
>>240
Code Browser じゃあダメなん?
ttp://tibleiz.net/code-browser/
0309デフォルトの名無しさん
垢版 |
2016/04/20(水) 18:21:54.24ID:UfNx2Znx
>>308
おお〜サンクス! こういうのがあるんだ
代替になるか分からないけど触ってみる
0310デフォルトの名無しさん
垢版 |
2016/08/18(木) 11:53:48.53ID:E7RCG0CR
スタートアップ界の異端児!産業機器 x IT x SmalltalkのSORABITO株式会社
…人材採用のプロ・高野秀敏氏が厳選「いま最も旬なベンチャー」
https://news.thepedia.co/article/1068/

日本でクックパッドがRubyを広めたように、日本も海外も含めて「SmalltalkといえばSORABITO」となるとおもしろい
0311デフォルトの名無しさん
垢版 |
2016/08/19(金) 08:00:44.26ID:aUETciWG
>>310
>Smalltalkの場合は最も覚えることが少ない言語
言語仕様だけならそうだけど
ライブラリまで含めたら
最も覚えることが多い言語になりそうだけどなー

まあプロトタイプはSmalltalkで
ライブラリ必要な部分はRuby
って分担ならわりと妥当だと思うけど
0313デフォルトの名無しさん
垢版 |
2016/08/21(日) 08:33:13.32ID:itlBfDe6
Sakuraエディタでコード書いてPharoのファイルブラウザから読み込ませてたんだけど、直接書けるって教えてくれよ
0314デフォルトの名無しさん
垢版 |
2016/08/21(日) 10:15:04.20ID:ggpv6L0L
>>313
ああ、そうですよね。すみません。
とりあえず、Pharo by Example でも読んで考え方に慣れてください。
https://ci.inria.fr/pharo-contribution/view/Books/job/UpdatedPharoByExample/lastSuccessfulBuild/artifact/book-result/UpdatedPharoByExample.pdf

英語がちょっと苦手という向きには古いPharo1.1向けですが有志による日本語版もあります。
http://www.smalltalk-users.jp/Home/docs

対応する処理系はこちらから入手可能です。
http://pharobyexample.org/image/PBE-OneClick-1.1.app.zip

展開するだけでインストール可能なはずです(pharo.exeで起動)。

でも慣れたエディタがあるなら、まずはそこからコピペというのもそう悪くないやり方だと個人的には思います。
Smalltalkの組み込みのエディタ機能はおいおい学んで、気に入ればカスタマイズも含めて使えばよいので。
0317デフォルトの名無しさん
垢版 |
2016/08/28(日) 02:31:34.26ID:PB1bnZje
MacでSqueak5.1の右上にある検索使うとvmが落ちてしまう
0318デフォルトの名無しさん
垢版 |
2016/08/28(日) 20:33:20.07ID:zcu6Rkdc
Squeak5.1、日本語フォントの設定ができん!
0319デフォルトの名無しさん
垢版 |
2016/08/28(日) 21:59:54.11ID:wqvuI2DW
>>318
Apps → Font Importer → 日本語フォントを右クリック → Link Font → Close
これでリンクしたフォントが appearance... → system fonts... 等のフォント選択の一覧に現われない?
0321318
垢版 |
2016/09/01(木) 17:17:29.87ID:u9gr6W2c
>>320
MacでOsakaフォントをLinkしようとしたら、
クリックした瞬間にいくつかMorphが壊れて
Emergency Evaluatorが出てきたよ…
0324デフォルトの名無しさん
垢版 |
2016/09/03(土) 14:57:33.27ID:/kP4iCQF
舌足らずか、自由自在のPDF落としたんですが、Squeak最新のバージョンで
本の内容を同じように試すことは出来ますか?だいぶ違ってます?
0327デフォルトの名無しさん
垢版 |
2016/09/03(土) 18:32:59.01ID:87bD/C1F
Smalltalkは変わったツールや習慣、考え方がよく出てくるのですが
無理に通常の言語での習慣や考え方に翻訳して咀嚼しようとすると
(やればできなくもないですが、いろいろ無理を生じますし)
学習コストが無駄にかかるわりに、誤った結論に達しがちなので
疑問なことは自力解決にこだわらずにどんどん訊いてください。
0329デフォルトの名無しさん
垢版 |
2016/09/18(日) 11:22:38.12ID:LHERV0LA
第92回Smalltalk勉強会
http://www.smalltalk-users.jp/Home/gao-zhi/dai92kaismalltalkbenkyoukai

9月のSmalltalk勉強会の日程が決まりました。下記の要領で行います。

日時: 2016/9/23(金) 19:00-21:00 (2時間程度)

場所: SORABITO株式会社 東京都中央区日本橋茅場町1丁目9番2号 第一稲村ビル8階

今回は8/22-26にかけてチェコで行われたESUG 2016の報告会です。

ViennaTalkを引き連れ日本から参加されたSRAの小田(@tomooda)さんによるお話です。

Smalltalkのカンファレンスの中では最も歴史があり、かつ盛り上がるのがESUGです。
最新のSmalltalk動向に触れる良い機会でしょう。
0333デフォルトの名無しさん
垢版 |
2016/09/21(水) 14:38:41.20ID:7yARBfoR
Squeak/Pharo系のアプリは全滅か?
0334デフォルトの名無しさん
垢版 |
2016/09/21(水) 20:37:30.04ID:GpzxBfpM
>>332
それじゃないな。クリーンインストールしたほうがいいのかも。画面真っ白で何もできない
0336デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:09:02.45ID:cQNYWAur
64bitのイメージと最新vmでならsierraで動いた
32bitのやつは動いたけどすぐ落ちて使えなかった
0340デフォルトの名無しさん
垢版 |
2016/10/28(金) 10:05:37.68ID:zLimfAXR
Simulating a Xerox Alto with the ContrAlto simulator: games and Smalltalk
http://www.righto.com/2016/10/simulating-xerox-alto-with-contralto.html

To start up Smalltalk,
download st80.dsk. Load the disk image into ContrAlto, reset, and then run "resume small.boot".
(A second Smalltalk disk is xmsmall.zip; "resume xmsmall.boot" starts Smalltalk from this disk.)

https://github.com/livingcomputermuseum/ContrAlto/tree/master/Contralto
ContrAlto will run on any Windows PC running Windows Vista or later, with version
4.5.3 or later of the .NET Framework installed.
0344デフォルトの名無しさん
垢版 |
2017/03/09(木) 12:58:33.85ID:3bYiHHP6
pharo5でprintItを調べたくてRubSmalltalkEditorとSmalltalkEditorのprintItにself haltを書き込んで
書き込んで、ワークスペースでprintItしてもデバッガーが起動しないんだけどなんでだろ?
そもそもhalt書き込んでる場所が間違ってるんかな
0345デフォルトの名無しさん
垢版 |
2017/03/09(木) 14:10:36.65ID:BFR+GBdm
手元のイメージではWorkspaceのprintItはRubSmalltalkEditorのprintItにhaltで止まるが。
実はPlayground?
034729
垢版 |
2017/03/12(日) 00:43:54.04ID:AHF9JHq9
lisp系言語の「純lisp」に相当するような、
チューリング等価な最小のsmalltalk命令セットって
どのようなものなのでしょうか?
0348デフォルトの名無しさん
垢版 |
2017/03/12(日) 07:17:32.17ID:vU9+ZemV
そういうときってバイトコードインタープリターではなく
本当に純粋にSmalltalk式の評価系を考えるのでしょうか?
034929
垢版 |
2017/03/12(日) 14:27:30.98ID:pYc0weDt
あ、そっちの線は考えていませんでした。
smalltalkが実際にどう実装されてるかは抜きにして、
最小限、どの命令(?)があれば、
チューリング等価な計算力を持つかという、意味でした。
0350デフォルトの名無しさん
垢版 |
2017/03/12(日) 15:40:58.27ID:eGKUfyZ5
クラスで言えばIntegerとBooleanとBlockClosureがあれば、
逐次、繰り返し、条件分岐ができるけど、
全くSmalltalkらしくない悪寒
0351デフォルトの名無しさん
垢版 |
2017/03/19(日) 08:53:42.65ID:SqiEvO7U
今時なウェブ開発をSmalltalkでやってみる | 第98回Smalltalk勉強会
https://smalltalk.connpass.com/event/53492/

「Smalltalkってまだ生きているの?」とそんな悲しいことを
質問されたりするので、Pharo Smalltalkで今時なウェブ開発をする
方法について話します。 ESUG 2015で入賞したPharoJSや
Enterprise Pharo本に掲載されているライブラリなどPharo Smalltalk
でウェブ開発をする方法を話したいと思います。
時間があればSeaside等の伝統的な開発方法も紹介します。

日時
2017/3/31(金) 19:00-21:00

場所
SORABITO株式会社 東京都中央区日本橋茅場町1丁目9番2号 第一稲村ビル8階
0352デフォルトの名無しさん
垢版 |
2017/04/01(土) 10:32:11.46ID:T6xyxJc4
開発者に嫌われているプログラミング言語トップ25 | マイナビニュース
http://news.mynavi.jp/news/2017/03/30/133/

fossBytesに3月28日(米国時間)に掲載された記事
「Which Are The Most Loved and Most Hated Programming Languages|2017」が、
Stack Overflow Developer Survey 2017の調査結果を引き合いに出し、
開発者に愛されているプログラミング言語と嫌われているプログラミング言語の
トップ25を伝えた。愛されているプログラミング言語1位はRustで、
これにSmalltalkとTypescript、Swift、Goが続いている。
0353デフォルトの名無しさん
垢版 |
2017/04/01(土) 16:51:02.24ID:eZPxn7hQ
>>352
そこで挙がっている言語は普及しているから
無理やり使わされる(から嫌い)という要因が大きそう

一方Smalltalkは好きな奴しか残っていないイメージ
0355デフォルトの名無しさん
垢版 |
2017/04/02(日) 12:04:02.82ID:j7pqXAos
嫌いと公言できるほど使いこなせないからかな

もっともちょっと使えるようになったからって
知ったかでこういうFUDはやめてほしい
https://medium.com/@zerobase/プログラミング言語の選択とソフトウェア企業の競争優位性に関する本当のところ-smalltalk-clojure-lisp-7378602ac468
Smalltalker の給料が一見高く見えますが、そうではなくて、
このグラフが示してるのはSmalltalkerの高齢化です。
いっときSmalltalkをやっていた、ぼくの実感にも合います。

だいたいコイツ「やっていた」とか言ってても、あれがないこれがないって文句ばっかりで
何かを生み出す気ゼロ。調査だけで終わってろくすっぽ使えてないだろ…
おめーなんかより若い人のほうがよっぽどパワーを引き出しているよ
0356デフォルトの名無しさん
垢版 |
2017/04/02(日) 17:42:09.19ID:U8kt+FV8
Lispは嫌いだけどやってる
最近関数型が偉いみたいな風潮あるから
それ自体も嘘だと思ってるけど
0357デフォルトの名無しさん
垢版 |
2017/04/02(日) 17:45:00.93ID:U8kt+FV8
Smalltalkのユーザが高齢化してるのはあるだろうな
今はもうRubyやPythonやった方が絶対楽だし
0358デフォルトの名無しさん
垢版 |
2017/04/02(日) 20:06:27.08ID:Z4FPulUz
RubyやPythonのコミュニティーを見てるとSmalltalkerが踏んだ地雷を次々と踏みなおして爆発させているのを見るのがつらくて
0361デフォルトの名無しさん
垢版 |
2017/04/08(土) 23:20:46.77ID:nDDYstno
>>355
> このグラフが示してるのはSmalltalkerの高齢化です。
断言する理由が書かれていない
あとは延々「意識高い僕は選ばれた人間!」と言ってるだけ
典型的なバカ
0364デフォルトの名無しさん
垢版 |
2017/04/29(土) 22:13:44.34ID:EU04cbvt
GWだし、Mac の Pharo5.0 で Smalltalk 体験中なんだけど、
日本語IM(IME)で文字は入れられるけど、変換中の表示が
ないから、アプリ作っても使ってもらうことは出来ないなぁ。

オープンソース系はずっと有志が頑張ってたイメージなんだけど、
成果がバージョンアップで流れちゃう感じなんでしょうか。
0366デフォルトの名無しさん
垢版 |
2017/04/30(日) 00:40:52.57ID:SbBDypWI
昔から英語圏の言語は日本語に厳しいのよ。。。
オープンソースだと対応する義務も無いから特に。
0367364
垢版 |
2017/04/30(日) 01:58:36.51ID:Bxv2Awhp
他はなかなか良い感じなんですけどねぇ。アジア圏の他の国の人も困ると
思うけど。

Tekka 入れられたんでありがたく使ってますけど、本当は他所で書いて
コピペした方が実用的ではある…
0371364
垢版 |
2017/05/01(月) 09:35:17.60ID:qKmHB6Zh
Windows7 と 95 にも入れてみました。

95では変換表示が pharo のウインドウの左上端に出るので、まぁ自分的にはOKかな。
Windows7では、変換表示はウインドウとして出て動かせるので、更にまし。

以前ダウンロードして積ん読状態だった Mac 版 Pharo1.0 では変換ウインドウが出
ますね。5 で同じようになれば良いんだけどなぁ。


> ほらやっぱRubyやPythonの方が楽じゃん
全部できれば良いだけでは?
0372デフォルトの名無しさん
垢版 |
2017/05/05(金) 20:15:03.44ID:TOnHpg4g
Sirenに興味を持っていじってみようと悪戦苦闘しているのですが
使ってたって人いますかね?
現状だともうメンテナンスもされてないみたいだけどSqueak3.0か
VW7.5で動くようなんですけど。
インストールの仕方も良く判らない
ttp://fastlabinc.com/Siren/
0374デフォルトの名無しさん
垢版 |
2017/05/06(土) 12:39:15.39ID:FrvZMHcY
>>373
VWは今インストールディスクを送ってもらっているところなので
Siren7.5はダウンロードして待機中です。
Squeakは2.7で動くらしいのですが、Windowsは専用のimageがある
ようで探したのですがもうダウンロードできないようでした。
0377デフォルトの名無しさん
垢版 |
2017/09/24(日) 11:07:47.66ID:ByZ250WW
その昔、Smalltalkは言語でありOSだった。
SmalltalkというOSがアプリそのものでもあった。
SmalltalkというOSで動いている唯一のアプリにワード、
エクセル、ゲームの機能を追加していくそういう世界であった。
アプリの終了はOSの終了、世界の終了を意味していた。
世界を終わらせること無く機能を追加していくために
Smalltalkは生まれたのである
0378デフォルトの名無しさん
垢版 |
2017/09/24(日) 12:50:44.01ID:dIaNhcU3
元ネタはこれかな
http://mevius.2ch.net/test/read.cgi/tech/1502182334/864

864 名前:デフォルトの名無しさん[sage] 投稿日:2017/09/23(土) 23:15:33.02 ID:OVoD4rc5 [3/3]
>>861
SmalltalkはOSと言語が合体している独自の世界だから

Smalltalk実行環境(=OS=開発環境)のみがコンピュータ上で動いており
Smalltalk実行環境は電源を消すまで動作しているという前提の話をするから
言語だけの話にならない。

例えば開発した新しいプログラムをOS上で起動するというのは
Smalltalkの世界では、Smalltalk実行環境上で新しいクラスを作って呼び出すということで
プログラムを一旦終了してバグを修正して再起動するということは
Smalltalkの世界では、ではクラスを動的に変更するということになる。

このように一般的なOSでは、プログラムの作成や修正という当たり前にできることが
Smalltakでは「オブジェクトは遅延結合が必要で動的に変更できなければならない」という
根拠になってしまっているから、お前らの世界では遅延結合や動的が必須なのだろうけど、
そのマイナーな世界を押し付けるな。そんなものはなくてもできる。という感じで荒れる
0380デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:52:45.02ID:ZoycLPfe
Windowsの規模でイメージベースとかの
仕組みが上手くいってたかというと疑問だな

現状のSmalltalkでもイメージベースだけじゃなく
ファイルベースでも管理するのが普通だし
そうしないと少し不安なところがある

小規模なプロトタイピングを作るときに
いちいちファイルに分けない
イメージベースは快適ではあるんだけど
そのまま大規模なソフトを作れる
スケーラブルな方式だとはとても思えない
0381デフォルトの名無しさん
垢版 |
2017/10/03(火) 11:38:14.59ID:RTtut7OF
Dolphin Smalltalk7をwineで動かしてみたらヘルプの文字が表示がされない
直し方教えて
0383デフォルトの名無しさん
垢版 |
2017/11/12(日) 01:42:29.27ID:5d1CvKEj
Pharoに興味持って、MacのVer.6.1-64を動かしてみたんだが、
https://qiita.com/sumim/items/c2a38a42c3ccd70c18b2
の通りにやっていて、ハングアップしてしまう・・・
上のurlは5.0用みたいだから挙動が違うとかメニューが違うのはいいとして、ハングアップってどうなのよ?という感じ。
0385デフォルトの名無しさん
垢版 |
2017/11/12(日) 10:14:24.34ID:jp8y5cxG
どこでハングするかぐらい書かないと
どこまで優秀なエスパーを期待しているのやら
0386282
垢版 |
2017/11/12(日) 12:02:23.91ID:5d1CvKEj
http://pharo.org/web/download の32、64ビット版何れでも、self shouldBeImplemented」というスタブメソッドの内容を変更、保存した瞬間にハングアップ。
環境は、macOS High Sierra(10.13.1)
Pharo5.0で試してみるか・・・正直、チョットと動かしてみようと思ってただけなので、萎える。
0387デフォルトの名無しさん
垢版 |
2017/11/12(日) 14:55:49.34ID:z3rtvJrk
手元でその環境(High Sierra, Pharo6.1-64)を作って試してみましたが
件のスタブの書き換え(変更してコンパイル)を含め、問題はないみたいです
確か、6.0ではそういう障害が報告されていたようですが
6.1でもまだ完全に解決していないか、環境依存でたまたま起きた可能性がありそうですね

ちょっと試すだけなら5.0で良さそうに思いますので面倒かもしれませんがリトライしてみてくだい

あと今回の件とは関係なさそうなのであくまで一般論&余計な事かもですが
Smalltalkのチュートリアルを試す際は、処理系を同じにするのはいうまでもない事ですが
バージョンについてもそのチュートリアルが対象にしているのと極力同じバージョンを選ぶ
(もちろん可能な範囲でですが…)のが萎える要素を少なくできて良いと思います

Smalltalkの学習の初期の段階では他言語の習熟者ほどストレスフルに感じる疑問が多く発生しがちなので…
0388382
垢版 |
2017/11/12(日) 18:53:31.00ID:5d1CvKEj
>>387
おかげさまでPharo5.0で試すことが出来ました。
テストをサクッと書ける(しかも作成中のクラスへの表示も)のが良いですね。
(Java、RubyだとWebアプリ作る際にテストライブラリを別導入したりするので、人に勧めたり説明するのがチョット手間)
まだアプリの作り方とか全く分かりませんが、もうチョット遊んでみようかと思います。
0389382
垢版 |
2017/11/12(日) 19:58:08.24ID:5d1CvKEj
最初に試したiMacとPharo6との相性が悪かったようです。(多分、iMacの環境のせい)
別のMacBookPro(El Capitan 10.11.6)では
Pharo5.0、6.1、6.1-64bit ともに正常に操作出来ました。
0395デフォルトの名無しさん
垢版 |
2018/01/13(土) 02:40:12.95ID:Cv24YujM
Pharoで標準入出力ってどう扱うの?
シンプルなコマンド作ってbashで他のコマンドとパイプでつないで使うところから始めたいです
0397デフォルトの名無しさん
垢版 |
2018/01/13(土) 04:23:40.51ID:WpIPvjD2
あえてPharoでやるならこんなのはどうでしょう?

Scale aims to take Pharo into the shell.
That is, to write shell scripts in Pharo, use its power,
and have a better syntax instead of the ugly bash one :).

DISCLAIMER: Scale is tested only in Linux.

https://github.com/guillep/Scale
0398デフォルトの名無しさん
垢版 |
2018/01/13(土) 05:11:07.78ID:WpIPvjD2
GNU SmalltalkはAPIやライブラリーの充実度でPharoには遠く及びませんが
今回のようにshellとの連携からの入門には十分でむしろ優れていると思います

参考までGNU Smalltalkでの対話的なコーディングに欠ける機能を補う試みとしてこんなのもあります

CUIなSmalltalkでメソッド調べる小技
https://qiita.com/tetha/items/1833cff9f4024595be78
0400デフォルトの名無しさん
垢版 |
2018/01/14(日) 00:48:50.85ID:Ef+VW+Yv
Pharo使って見始めたが、これ全てがメッセージ、というのが興味深い。
ただ、チーム数人で、Smalltalk使って開発するときって、ソース管理(メンバー間での同期、マージ)はどうしてるんだろう?
JavaやRubyでは基本的にはテキストファイルだから、Gitが定番だと思うが。
0402デフォルトの名無しさん
垢版 |
2018/01/14(日) 08:23:10.42ID:hv8hpGAp
>>400
Pharo には iceberg というツール(Pharo6.1 からリリース時にインストール済み)があって Git も使えます
https://github.com/pharo-vcs/iceberg

Git 以前はチーム開発には Monticello(や、その拡張)が使われました
これは、Smalltalkで古くから「カテゴリー」という
クラスをグループ分けして整理するための属性を「パッケージ」とみなして
差分等の情報を zip で固めてレポジトリーに置き共有するツールです
http://squeak.qp.land.to/wiki/index.php?Tools%2FMonticello

iceberg にはこの Monticello の機構もいろいろ利用されています
0403デフォルトの名無しさん
垢版 |
2018/01/14(日) 09:12:16.66ID:M9z7wx70
>>400
古典的にはSmalltalkではソースを環境内でメソッド単位で管理することになっていますが
それぞれを、ディレクトリー(パッケージ名とクラス名、インスタンスメソッドかクラスメソッドか)と
ファイル名(プロトコルとメソッド名)を使って個々のファイルにマッピングすることで Git で管理できるようになります

前述の iceberg がその方式で、それ以前にも Filetree といったそうしたマッピング専用のツールがありました
念のため
0404デフォルトの名無しさん
垢版 |
2018/01/14(日) 10:32:07.95ID:Ef+VW+Yv
>>402,403
おおっ、そういうのが有るのですね。
早速見てみます。
(iceburgってのがメニューのトップに有ったけど、何だろう・・・あとで調べるか、と思ってましたw)
0405デフォルトの名無しさん
垢版 |
2018/02/01(木) 00:06:38.87ID:4kb1aa3G
富士ゼロックス、米ゼロックスと経営統合へ
1/31(水) 17:37配信

富士フイルムホールディングス(HD)は31日、子会社の富士ゼロックスと米事務機器大手ゼロックスを経営統合させたうえで買収すると発表した。
富士フイルムHDは最終的に統合会社株の50・1%を保有する。
富士ゼロックスは1962年に設立され、現在は富士フイルムHDが75%、米ゼロックスが25%をそれぞれ出資している。複写機市場がペーパー
レス化などで低迷する中、経営規模を拡大する一方で、1万人の人員削減などによるコスト削減を図り、合理化を進める。

https://headlines.yahoo.co.jp/hl?a=20180131-00050116-yom-bus_all
https://www.fujixerox.co.jp/company/profile/identity/images/index-fig-01.jpg
0406デフォルトの名無しさん
垢版 |
2018/02/09(金) 10:12:22.15ID:dUg6ANh3
シンコムさんからメディアが届いた
週末は久しぶりにSmalltalk三昧できそうです
もう忘れかけてるから頭リセットしなきゃ
0407デフォルトの名無しさん
垢版 |
2018/02/16(金) 06:44:16.01ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0414デフォルトの名無しさん
垢版 |
2018/04/13(金) 22:36:21.27ID:mZ0Pl0ro
マイナーなこと自体は仕様がないけど
普及を阻む使いにくいところは
もっと早く変えた方が良かった
0415デフォルトの名無しさん
垢版 |
2018/04/13(金) 23:19:15.33ID:bso+BPDq
あの時代遅れなIDEを積極的に使わせようとするの謎
IntelliJ使ってるユーザが乗り換えるわけないじゃん
そら普及しないわ
0416デフォルトの名無しさん
垢版 |
2018/04/14(土) 05:21:09.94ID:uQLblPcP
IDEは良いけどイメージベースでEXE作らないとかの独自仕様が
アイディアとしてはともかく実用的には使いづらかった
0425デフォルトの名無しさん
垢版 |
2018/04/17(火) 10:09:39.24ID:GKRJ1eqH
スモールトーク自身ウンコなので、それ自体がキラーアプリってなのは成立しない
そもそも成立してたら普及してるって
0428デフォルトの名無しさん
垢版 |
2018/04/20(金) 11:20:23.52ID:bkJaUb8N
これか

ストロングゼロの氷結のストロングゼロのウォッカ入ってるんだけど、この氷結のチューハイ毎日ではないけどかなりのペースで飲むと2本
今も例えば月曜日とかだと氷結でストロングゼロ飲んでって感じで飲んでるから人気になるんだと思う
楽でいろんな味だしね


おそらくはこういう意味?

ストロングゼロや氷結ストロング等の“ストロング”系チューハイにはウォッカが入っていて
口当たりがたいへん良いので毎日というわけではないけどペースが乗ると日に2本とか普通に飲めてしまう
実際、まだ週が始まったばかりだけど氷結ストロングでも飲むかってつい飲んでしまったよ
こんな感じで皆が気軽に飲めるから人気がでるんだと思う
いろいろな味があって楽しめるしね
0431デフォルトの名無しさん
垢版 |
2018/05/13(日) 01:58:02.20ID:VwqkeNW/
windows10で
http://files.squeak.org/1.1/Squeak1.1.zip
を使おうとしてるんだけど、このzipファイル内のVMで実行してると、
firefoxとかで調べ物をしたあとで戻ってくると、かなりの頻度でnot respondingになってしまう。
じゃあ、と思ってsqueak5.1のVMでSqueak1.1.imageを読ませようとしてもCould not openといわれる。
どこかの時点でイメージファイルのフォーマットが変わった?
現時点でSqueak1.1.imageのような昔のイメージを実行するならどのVMを使えばいい?
0432デフォルトの名無しさん
垢版 |
2018/05/13(日) 08:48:35.81ID:faxTAPZS
手元の環境では特に問題ない感じなので何かの相性の問題かもしれません
あと、仮想イメージは同時期に提供されたVMでしか開けないと思った方がよいでしょう

目的にもよりますが、どうしてもSqueak1.1をちゃんと動かしたいということでしたら
VMwareなどで仮想環境を用意してやるのもひとつの手かもしれません
その場合、可能であればSqueak1.1が提供された当時のOSである方がベターでしょう

軽く動かしてみるだけでよいなら、SqueakJSという選択肢もあります
https://squeak.js.org/run/

Drop Squeak images and other files here. に件の.zipから
.image、.changes、.sourcesをドロップインするとFirefox内(あるいはその他のブラウザ内)で起動できます
お試しあれかし
0433デフォルトの名無しさん
垢版 |
2018/05/13(日) 12:25:36.62ID:VwqkeNW/
>>432
レスありがとうございます。
squeak1.1を動かそうとしていたのは、このサイズならsmalltalkの全貌が把握できるかなと思ったからでした。
squeakjs.imageは590KBとさらにサイズが小さいのでこっちに乗り換えようと思います。
ですが、ブラウザで動かしてるとテキストをコピーしてもwindows側のクリップボードに入ってくれないのが痛いですね。
デバッガやブラウザで動きを追いかけながら、気になったコードをコピーしてメモをつけてブログに記録していきたいので。
でも、以下のURLでは、the interaction with JavaScript for clipboard access.って書いてありますね。本当はコピペできるのかな。
https://www.freudenbergs.de/bert/publications/Freudenberg-2014-SqueakJS.pdf
0434デフォルトの名無しさん
垢版 |
2018/05/13(日) 17:38:01.18ID:faxTAPZS
試してみたところ、こちらの実装では(alt + c ではなく) ctrl + c でクリップボードにコピーできるみたいです。

https://lively-web.org/users/bert/squeak.html

まず(ページ読み込み完了後)左下の Load image から fetch mini image from server して(Squeak 起動後)
適当な文字列を選択→ ctrl + c → メモ帳などにペーストを試してみてください。

もしうまく選択文字列の持ち出しができないようでしたら、右側の説明文を同様に試すなどすることで
まずページ内で(LivelyWeb 経由の) ctrl + c によるコピー操作が機能しているか確認してください。
Filefox でうまくいかないようならブラウザを Chrome に変えてみるのもよいかもしれません。

mini からの ctrl + c による文字列の持ち出しが確認できたら、Load image の並びにある Import: 右脇のボタンで
すでにダウンロードしてある Squeak1.1.image、同 .changes、SqueakV1.sources を選択してインポートします。
うくゆくと Load image に Squeak1.1.image が現れるのでこれを起動して学習に用いてください。
(.changes 、.sources が揃っていないイメージだとソースがデコンパイルで生成されるので何かと不便なので)

最悪、ctrl + c がどうしてもうまくいかない場合でも、こちらのバージョンでは Export File.. 経由で
ファイルの持ち出しができるので、

| file | file _ FileStream newFileNamed: 'hoge.txt'. file nextPutAll: Smalltalk clipboardText; close.

などで明示的に書き出せば(ちょっと面倒ですが)件の Export file.. からダウンロードできます。
こちらも参考まで。
0435デフォルトの名無しさん
垢版 |
2018/05/13(日) 21:49:05.91ID:VwqkeNW/
>>434
ctrl+cでコピーできました!ありがとうございます
https://squeak.js.org/demo/simple.html
↑の方でもctrl+cでいけますね。

私は力技でvw.jsの
primitiveClipboardText: function(argCount) {
の中で
this.display.clipboardString
から値を取り出すことを考えてましたが、
もうその必要がなくなってよかったです。
あと、この経緯でついでに<primitive: 141>まわりの実装が勉強になった。
0437デフォルトの名無しさん
垢版 |
2018/05/14(月) 19:34:42.78ID:lPclUDfn
昔のsqueakにはメニューにdebug itがなかったんですね
仕方がないので、例えばBrowser openBrowerの処理を追いかけたいときは、ワークスペースを開いて
self halt.
Browser openBrowser.
の2行を書いて、それをマウスで選択してdo itで実行させてるんですが、
当時の人たちはこういうときはどうやってデバッガを起動してたんでしょう?
0439デフォルトの名無しさん
垢版 |
2018/05/14(月) 22:34:27.48ID:EYH3vlbi
>>437
halt は何にでも送れるので Browser halt; openBrowser でいけます

古いっていうだけでもう相手にされないか、そこを突破できても
実際に古臭い点も多々あるんで本当におもしろいところまで行き着けないんでしょうね

あと今の人は学ぶことが多すぎて、余計な事を学ぶ気持ちや時間の余裕が持てないのが大きそう
0441デフォルトの名無しさん
垢版 |
2018/05/15(火) 21:41:26.28ID:PalvXpXe
>>439
「halt;」を書き足すだけでいいので便利ですね。
そのアイデアいただきます!
0442デフォルトの名無しさん
垢版 |
2018/05/19(土) 11:55:39.59ID:WnkT4MGt
scratchって、Small talkクローン?
0443デフォルトの名無しさん
垢版 |
2018/05/19(土) 12:37:47.71ID:H78Ay5zU
Scratch は、古いバージョン(バージョン 1.4 まで)が
Smalltalk(MIT版 Squeak)で実装されたというだけで
Smalltalk とは別の独立した言語処理系です。
0444デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:02:38.18ID:h32pPDAO
>>443
なるほど、ありがとう。
LOGO、Smalltalk、scratchを触ってみて言語のバックグラウンドが似てるように見えたのはそういう事だと腑に落ちました。
ブロックを自分で定義出来ると色々遊べそう(センサーのエミュレーションとか)。
まだまだ勉強中です。
0445デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:58:11.77ID:MhrkVOUh
>>444
Scratch の開発リーダー、ミッチェル・レズニックはシーモア・パパートの弟子で
LOGOの並列化版 StarLogo の開発者でもあるので、Scratch は Smalltalk よりは LOGO の影響の方が色濃いのかもしれません。
0447デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:11:50.57ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

2EWEB
0449446
垢版 |
2018/05/24(木) 03:23:54.45ID:CzEEKu6Z
>>448
たとえばイメージベース(EXE出力しない)とかね
0450デフォルトの名無しさん
垢版 |
2018/05/24(木) 10:59:12.28ID:39xdh1LE
イメージベースのメリットを損なわずに迎合するにはどうしたらいいのだろうね
0454デフォルトの名無しさん
垢版 |
2018/05/28(月) 19:28:09.07ID:r5GUJbyu
以前質問させていただいたhttps://squeak.js.org/demo/simple.htmlで学習中の者です。
現在、どのメソッド内のコードがマウスカーソルの表示処理をしているのか探してますが、うまく見つけられません。
squeak2.2ベースでMorphicではなくMVCで恐縮ですが、どこを見ればいいかご存知でしたら教えてください。

調べたこと&わかったこと。
Cursor normal displayでマウスカーソルの単発表示ができることを発見。
Cursor normal halt displayをデバッガで追っていき、表示直前に以下のメソッドが実行されることを発見。
DisplayScreen>>copyBits:from:at:clippingBox:rule:fillColor:map:
上記メソッド内の冒頭に以下のデバッグコードを挿入。
sf = Cursor normal ifTrue: [self halt].
Cursor normal displayを再度doitしてhaltで止まることを確認。
この状態でウインドウのないDisplayScreen上でマウスを動かしてみる。
が、haltで止まらないことからこのメソッドは表示処理に使われていないと予想。
他は何を調べればいいでしょう?
0455デフォルトの名無しさん
垢版 |
2018/05/28(月) 19:31:54.25ID:yucnVNXj
そろそろmaximumtalkが出てきてもよい。
0457デフォルトの名無しさん
垢版 |
2018/05/29(火) 13:21:37.74ID:KXlYVobD
>>454
カーソルの表示処理を知りたいのであれば、Cursor nomal halt; show を追っかけた方がいいですね。
display はご自身でお調べになった結果からも分かるように
レシーバーである画像オブジェクト(カーソルもこれに属します)を画面左上(0@0)に表示するだけの処理になります。
たとえば From fromUser display とすると、選択した矩形領域を切り取って左上に表示するコードになります。

あと、showの方もおっかけると分かりますが、最後はプリミティブ(VMの関数呼び出し)に行き当たるので
どんな処理をしているかは該当するVM内関数のコードを見てあげる必要があります。
0458デフォルトの名無しさん
垢版 |
2018/05/29(火) 19:03:44.38ID:xdaZSLqM
>>456,457
いいヒントになりました。感謝!

現時点での自分の理解
Cursor>>beCursorが<primitive: 101>を呼び出す。
vm.jsのprimitiveBeCursorがカーソル形状データをcursorCanvasにセットする。
squeak.jsのupdateMousePosがcursorCanvasの座標をマウス移動に応じて変更する。
というわけで、SqueakJSの場合は、マウスカーソル専用のcanvasを別に用意して、画面用のcanvasの上に重ねて表示していると理解。

確かにこれでは、メソッド内でマウスカーソルとウインドウの重ね合わせ処理を探しても見つからないはずだ。
ちなみに、Interpreter>>primitiveBeCursorのコメントに
"Set the cursor to the given shape. The Mac only supports 16x16 pixel cursors."
とあったので、Mac版ではOS自体のカーソルの形状を変更して利用してるみたいですね(未確認)
マウスカーソルが画面外に出たときの挙動を比べると、
SqueakJSではcanvas製のマウスカーソルが画面端においていかれるのに対して、
Squeak.exeではマウスカーソルが画面端に残らないのがそのせいかな、と思ったり。
0459デフォルトの名無しさん
垢版 |
2018/06/06(水) 18:48:46.42ID:CR/iRC+P
この言語しばらく使ってるとゴミさが身に染みてくるんだよな
うっかり間違って採用しちゃった企業も途中で捨てるから、いつまでも利用者が増えない
0461デフォルトの名無しさん
垢版 |
2018/06/07(木) 23:43:33.75ID:UtcVrbmV
そういや一時期Smalltalk使ってるのをアピールしてる日本の会社あったよね
昔じゃないよ去年とか一昨年くらいの話
あそこってどうなったの?まだSmalltalk使ってる?
0469デフォルトの名無しさん
垢版 |
2018/06/13(水) 23:27:17.55ID:I7rQAugb
ちゃんとSmalltalkを理解した上でクソって言ってる人って
今まで2人しか見たことないわ
他はろくすっぽ使ったこともない雑魚ばっかだった
0470デフォルトの名無しさん
垢版 |
2018/06/14(木) 07:57:02.26ID:p7mhm0Dw
6月のSmalltalk勉強会は26日(火)SORABITOさんにて。
小田さんによる「Pharoで3D」のお話です。#st_study
https://t.co/wMiwwytiyq

SORABITO、Smalltalkと縁を切ったわけじゃないみたいだな 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01)
0471デフォルトの名無しさん
垢版 |
2018/06/14(木) 12:45:48.08ID:XNforaWv
批判者が少ないのは人口が少ないからだろ
実用言語には利用者の多さが重要
0474デフォルトの名無しさん
垢版 |
2018/06/16(土) 23:47:04.64ID:VzCdEHqb
>>472
smalltalkのlovedが67%だけど、これ使ってるって回答したのが3人でそのうち2人が好きって言ってるだけの可能性が十分にある
それがマイナー言語smalltalkの現実
0476デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:26:52.02ID:gFgZc5FG
7BK
0478デフォルトの名無しさん
垢版 |
2018/07/09(月) 02:22:15.36ID:XV3nMjDz
Smalltalkは文化的にタイピング量が多くなってしまうのが面倒い
あとPharoがころころ仕様が変わるのでついていくの面倒い
好きな言語なんだけどね
0479デフォルトの名無しさん
垢版 |
2018/07/09(月) 08:00:36.48ID:lKdQESUF
文化的なことを言っていいなら、Smalltalkにはかなり以前からIDEからの支援が提供されていたので
タイプ数もスペル等の記述の正確性への心理的負担も他の言語よりずっと少なくて済む印象が強いなぁ…

仕様の変遷の激しさは同感。でも、まぁそれはSmalltalkの宿命っぽいところもあり半分あきらめている^^;
どうしても耐えられなければ、比較的変化の穏やかなVisualWorks等の商用Smalltalkという選択肢もあるし
0480デフォルトの名無しさん
垢版 |
2018/07/09(月) 20:27:32.77ID:t2m7hyzb
>タイプ数もスペル等の記述の正確性への心理的負担も他の言語よりずっと少なくて済む印象が強いなぁ…

懐古じじいは昔の知識だけで書いてるんだろうけど
いまどきの言語とIDEの組み合わせからみたら
Smalltalkの補完はゴミだよ。
型推論すれば必要ないって分かるものも補完の候補で出てきやがる。
0481デフォルトの名無しさん
垢版 |
2018/07/09(月) 22:16:42.56ID:lKdQESUF
いまどきの言語とIDEの組み合わせで事足りるならそれでええやん
なんでSmalltalkなんか使うの?
0482デフォルトの名無しさん
垢版 |
2018/07/11(水) 10:25:06.22ID:Di9toeeY
事足りるとか意味わからんw
Smalltalkが下なの!他の言語では可能でもSmalltalkでは出来ないことばかりなの!
0489デフォルトの名無しさん
垢版 |
2018/07/24(火) 20:11:42.88ID:uE6euhjZ
滅んだと信じ込んでる無知がうるさいから
わざわざSmalltalk除く細工しこんでるしね
0493デフォルトの名無しさん
垢版 |
2018/07/25(水) 10:52:57.76ID:e+MDyKb9
Smalltalkを狙って抜いたというよりは
当初適当な比率で順位決めたらSmalltalkが二位なんかに入っちゃったもんだから
もうちょっとましな結果になるように評価法を適正なものに変えたといったところだろう
0494デフォルトの名無しさん
垢版 |
2018/07/28(土) 16:55:03.15ID:/B+yPR+/
普通に考えて外れ値の扱いになるのは仕方ないよ
一部の狂信者以外は誰も使ってないんだから
0496デフォルトの名無しさん
垢版 |
2018/07/28(土) 18:57:47.26ID:K993nwvZ
Scratchのこと?あれは良いものだね。
でも最早Smalltalk関係ないじゃん。捨てられてんじゃん。
わざわざ別言語に乗り換えられてるなんてゴミ言語の証拠じゃん。
0498デフォルトの名無しさん
垢版 |
2018/07/29(日) 02:00:27.18ID:wDMxHmyD
教育用言語として普及しているのは
スクラッチであってスモールトーク自体じゃないから
やっぱりスモールトークは使いづらいってことじゃん
0499デフォルトの名無しさん
垢版 |
2018/07/29(日) 07:43:43.93ID:uE0dE1bw
子供であってもSmalltalk-72のころから常にSmalltalkは人を選んで来たよね
ドローイング/ペインティングツール、回路設計支援ツールとかまで作れたのは一握りの優れた子供だけ
Personal Dynamic Media (1977) にもブルース・ホーン(後にAppleでFinder等の開発に寄与)を含む
5人の子供の名前しかクレジットされていない
0500デフォルトの名無しさん
垢版 |
2018/07/29(日) 10:26:22.75ID:tB0h0B46
Scratch2.0の方が便利なのに、何も知らない子供にScratch1.4(Smalltalkで実装されてる)を使うように推薦するSmalltalkerって
マジで害悪だよねw
0501デフォルトの名無しさん
垢版 |
2018/07/29(日) 10:45:57.62ID:a6Ijj6Cq
オフラインならScratch1.4の方が断然便利だろ
タブ向けもPyonkeeしか提供されてないし
なんだかんだいったところで結局Smalltalk以外選択肢がないんじゃしかたない
0502デフォルトの名無しさん
垢版 |
2018/07/29(日) 11:40:52.07ID:mgWFd1me
Scratch3.0(もうプレビュー版が出てる。タブレットにも対応してるし、スマホでもプレイ可能)が正式リリースされても
SmalltalkerはPyonkeeを無垢な子供に推薦するんだろうなぁ
マジで害悪だよね
0504デフォルトの名無しさん
垢版 |
2018/07/29(日) 19:09:40.65ID:KYxUUPyu
そりゃSmalltalkを布教したいという邪な欲望丸出しで
新バージョンへの移行を妨げる分断工作してんだから
疎まれて当然でしょ
子供の教育を考えたら百害あって一利なし
0505デフォルトの名無しさん
垢版 |
2018/07/29(日) 22:33:15.18ID:IP0PCozx
>>503
いや単に他の板から逃げて来た知ったかが居るだけだから。(実装の件とか思い込みで言ってるのバレバレだし)
0506デフォルトの名無しさん
垢版 |
2018/07/29(日) 23:26:10.09ID:ukosYdvV
反論出来なくなると、こうやって相手にSmalltalkを知らないヤツってレッテル貼るところまでがテンプレだよねw
(まあ死滅したクソマイナー言語を知らなくても不思議は無いし、成功率は高そうw)
0508デフォルトの名無しさん
垢版 |
2018/07/30(月) 12:30:12.43ID:GSadbCB6
>>506
知っている範囲で構わないんだけどSmalltalkはどこらへんがクソだと一般に思われているの?
0510デフォルトの名無しさん
垢版 |
2018/07/31(火) 08:07:44.98ID:hpcufxDD
所詮VBにすら負ける言語だからね
Scratchを別言語でゼロから再実装されても仕方ないよ
0511デフォルトの名無しさん
垢版 |
2018/07/31(火) 09:56:14.34ID:KsiqHYAS
>>510
VBに負けているというのは具体的には何について?
よく引き合いにだされるTIOBEインデックス等の話題に上る頻度のこと?
VB以下の言語がすべてVBに劣るわけではないと思うけど…
0513デフォルトの名無しさん
垢版 |
2018/08/01(水) 10:19:33.52ID:pTJ8Mj+u
SmalltalkとVBといえば九大病院
Scratchの件と合わせて他言語に完敗した歴史として語り継いでいくべき
0514デフォルトの名無しさん
垢版 |
2018/08/01(水) 12:12:18.19ID:SPXi67Wg
>>513
これのこと?

九大病院“つまずき”の真相 「要件定義の甘さ」が尾を引く
http://web.archive.org/web/19990910201442/http://www3.nikkeibp.co.jp:80/WAT2/971212/971212trein01.html

単に日本IBMの思惑とマネージメントに問題があっただけのような気がするんだけど
513はこの件で具体的にはSmalltalkの何が悪かったと語り継ぎたいの?
0515デフォルトの名無しさん
垢版 |
2018/08/01(水) 16:36:59.93ID:YzenuR1L
へー、九大病院だけじゃなくて長野オリンピックのシステムもSmalltalkじゃ上手くいかなかったけどVBでは開発出来たんだね

Smalltalkでは開発失敗したけど、VBなら成功したんだね
0516デフォルトの名無しさん
垢版 |
2018/08/01(水) 17:10:10.76ID:BTEYoqnj
一方、米IBMは96年開催のアトランタ・オリンピックのシステム開発で
同社のSmalltalk開発ツールであるVisualAgeを使用しなんら支障なかったので
結局、日本IBMの技術力とマネージメントだけが問題なんだよね
0518デフォルトの名無しさん
垢版 |
2018/08/01(水) 23:50:04.05ID:De3zxK3m
ていうか、Smalltalkから他言語に乗り換えた話ばかりじゃん
逆に他言語からSmalltalkに乗り換えた例はないわけ?
一件くらいあるだろゴミクソ言語でも
0520デフォルトの名無しさん
垢版 |
2018/08/02(木) 07:14:28.33ID:CFrO6zQZ
キミみたいな筋金入りのアンチならケント・ベックがその名をはせた
クライスラー総合報酬(Chrysler Comprehensive Compensation, 通称C3)プロジェクトの失敗
も大好物なんじゃない?http://bliki-ja.github.io/C3/

やれエクストリーム・プログラミングだのやれテスト駆動開発だのと偉そうなことを言ったところで
COBOLで書かれたレガシーシステムのひとつもリプレースできないヘタレ言語
これもぜひレパートリーに入れといてくれw
0521デフォルトの名無しさん
垢版 |
2018/08/03(金) 01:18:16.58ID:uU9OaLXG
失敗と言いつつ、実は成功したと思ってる例を出してくるあたりセコイねー
Smalltalkerってホントしょーもねーなw

はるか昔にCOBOLのリプレースに一時的に成功したのが
Smalltalkの数少ない(唯一の?)輝かしい成果ってことは分かったよ
その後またCOBOLに戻っちゃったみたいだけど、オマケで
VB > Smalltalk >= COBOL
って事にしてあげるねw
0527デフォルトの名無しさん
垢版 |
2018/08/04(土) 19:27:10.66ID:b5WC5Mv1
この人の主張は

- Smalltalkは個人や小さな規模では楽しいかもしれないが大規模には使えない
- Smalltalkが大規模でも快適であるような嘘の宣伝はやめろ
- うっかり真に受けてCincomに入りいくつかの大規模案件に従事したが時間の無駄になった

と(思い込みによる誤認はあるものの)アンチな理由がはっきりしていて見ていてすごく胸が痛むが

ここに居着いているアンチはSmalltalkを使ったことはおろか恐らくは関わりすらなかったろうに
今はただひたすらSmalltalkが死んだことにしたいだけのために日々戦っていてそれもそれで気の毒だ
0528デフォルトの名無しさん
垢版 |
2018/08/04(土) 20:25:36.59ID:FQScXhqI
Smalltalkは分かりやすく底が浅いから
直ぐに大規模開発には使い物にならないって分かりそうなもんだけどな
0533デフォルトの名無しさん
垢版 |
2018/08/11(土) 20:05:55.95ID:45fzZyx2
Smalltalkは大規模開発に使えないのは分かった。
だったら小規模開発には使えるの?
0538デフォルトの名無しさん
垢版 |
2018/08/12(日) 17:42:54.53ID:LIc9zCtF
具体的な数値を言ったら「あれ?そんなクソザコ小規模を中規模呼ばわりしてるの?Smalltalkerってクソザコだねw」
って言われてしまいそうで怖いです
勘弁してください
0539デフォルトの名無しさん
垢版 |
2018/08/13(月) 10:38:28.57ID:9A3JP9yQ
モデルベース開発は「動く仕様書」が必須だから、あとは使い所を決める人のセンスの問題だな。
0540デフォルトの名無しさん
垢版 |
2018/08/13(月) 13:38:17.74ID:WcnOdzdd
使い所を決めるセンスがある人が死んだ言語を選ぶわけがないから
Smalltalkによる開発は必ず失敗するってことだね
0541デフォルトの名無しさん
垢版 |
2018/08/13(月) 15:31:58.13ID:sJwTnUZU
自己定義してて、コードに全部実装書いてあるSmalltalkやっぱ偉大だな… 哲学的な問にも応えてくれる
0542デフォルトの名無しさん
垢版 |
2018/08/13(月) 19:38:04.63ID:MscllZ9T
>>541
まあ元々、設計と実装の分離ってのは、初期の頃の「やり直しのコストが高い」時代のバッドノウハウだからねえ。
今でもSI時代のウオーターフォール方式を引き摺ってる所は多い。
0543デフォルトの名無しさん
垢版 |
2018/08/13(月) 20:08:23.74ID:H69VLQ/w
ここんところSmalltalk-72で遊んでいるんだけど
https://lively-web.org/users/Dan/ALTO-Smalltalk-72.html

Smalltalk-72の実装がブートストラップくらいしか自身で記述されていないのが辛い
http://www.fit.vutbr.cz/study/courses/OMP/public/software/sqcdrom2/Packages/Languages/Smalltalk72/ALLDEFS

Squeak Smalltalkで書かれたのもいちおうあるけど細かいところは端折っているっぽい
http://wiki.squeak.org/squeak/989

すべての言語処理系がSqueakみたいにセルフホスティングされていると学習がすこぶる捗るんだけどなぁ…
0547デフォルトの名無しさん
垢版 |
2018/08/17(金) 07:11:53.61ID:lJ8Jpbwn
Windows1.0を起動できたって喜ぶのと同じレベルだけど、そういう非生産的なのも趣味としては良いよね
0548デフォルトの名無しさん
垢版 |
2018/08/17(金) 10:14:46.01ID:QKG2yL7s
PolyMathOrg の libtensorflow-pharo-bindings を macOS と Windows とで試してて気になったんだけど
GitHub からのクローン後のコンパイルが macOS版 Pharo だと一瞬なのに
Windows版だとかなり時間がかかるのはそういうもの?
0556デフォルトの名無しさん
垢版 |
2018/10/23(火) 03:44:46.09ID:vPALKJYy
未だ開発続いてたんかっ
0559デフォルトの名無しさん
垢版 |
2018/11/21(水) 02:12:31.81ID:MQCFdf+c
http://mevius.5ch.net/test/read.cgi/tech/1538096947/385
>このスレは不特定言語スレだけど
>高速性ならC/C++/Rast
>コンパクト性の追求ならSmallTalkとかRubyとか
>RADならJavaとかPythonとか定番固定化。
>既にもうある程度少数特定言語スレになりつつあ
>る希ガス

ほぼ一人の活躍のおかげでSmalltalkの評価がむっちゃ高い
0560デフォルトの名無しさん
垢版 |
2018/11/27(火) 03:49:49.78ID:p7xk4LUx
Advent Calendarの季節だよもん
0561デフォルトの名無しさん
垢版 |
2018/12/13(木) 03:03:42.22ID:1+4HnLeF
オブジェクト指向のネタスレでSmalltalkの話でてたな
ここでももっと話せよ
0562デフォルトの名無しさん
垢版 |
2018/12/13(木) 06:54:33.26ID:ilwXN+sT
他言語の人たちが珍しがる話でもSmalltalkだと語るまでもない事だったりするし…

どんな話がしたいの?
0564デフォルトの名無しさん
垢版 |
2018/12/20(木) 03:53:13.38ID:AfgKypnY
それそのまんまお前に返すわwww
死んだ言語に粘着して人生無駄にすんなや
0566デフォルトの名無しさん
垢版 |
2019/01/03(木) 17:05:25.37ID:kOy6SfSN
Visualworks 8.3でずっと止まってると思ったら
次期バージョンのV9を準備中なのな
Objectworksと合体するとかスライドショーに書いてたがどうなることやら
0570デフォルトの名無しさん
垢版 |
2019/03/30(土) 07:49:05.09ID:ZNjuEFZZ
Design patterns Smalltalk companion の電子書籍って出てますか?それと同じような本でお勧めを教えてください
0572デフォルトの名無しさん
垢版 |
2019/05/15(水) 03:00:15.00ID:+0s9mSlG
VisualWorksはPUL版の提供にさらに制限くわえてきたね
8.3.2のlatest欲しかったらREVライセンス買えってさ年間500ドル
そもそもセキュリティライブラリもずっと同梱しないままだからWEB関連開発できないし
一体この先どうするつもりなんだろうね

ライブ変換の入力はバグって使い物にならないしまったく・・
もういいかなって気がしてくるってもんよ
いいけどさ、払ってもでも年間500ドルはさすがにないわ
せめて100ドルにしてよ
0575デフォルトの名無しさん
垢版 |
2019/05/27(月) 22:49:18.44ID:ouh7y0e1
いや、高くて誰も使ってくれないからいったん無料にして ←Mathematicaイマココ
それだとやっぱ駄目だから制限つける ←VisualWorksイマココ
って一連の流れの通りかと
0576デフォルトの名無しさん
垢版 |
2019/05/28(火) 01:46:38.96ID:i/IgkCty
学生用のライセンスも作ったからPULは単なるお試し版扱いにしたんだろうね
ただこのライセンスも制限あって北米の学生じゃないと受けられないとかありそう
0577デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:36:58.34ID:9FotMbAJ
無料にしたって新規ユーザなんて絶対に増えないんだから
いま居る物好きが年老いて死滅するまで
高値で売りつける以外の道はなかろう
0578デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:59:26.10ID:fLOoWLFE
 Unityみたいなライセンス形態にした方が良かったと思うけど。
商用利用の場合、儲かっているユーザーから金を取る。
 
せっかくいいプロダクトなのにもったいないな。
0581デフォルトの名無しさん
垢版 |
2019/07/02(火) 19:11:06.42ID:kPbWmywt
なんか、バックテストで言語どれがいいか調べててRとPyとexcelつかってるんたけど、なんかおもしろいのがないかquoraみてたらsmalltalkってのを一時間前に知りました。
pharoをいれればいいの?
0583デフォルトの名無しさん
垢版 |
2019/07/02(火) 20:55:44.45ID:3pKxjF9d
英語が苦にならないのなら、Pharo 7がおすすめ。

PharoLauncher をダウンロードしたら、
左側のリストで
WindowsならPharo 7.0 - 32bit、
それ以外なら Pharo 7.0 - 64bitをダブルクリック。
OKしたら右側に同じ名前のアイテムが落ちてくるから、
それをダブルクリック。
これでPharo 7が開く。
Welcomeと書いてあるウィンドウの左側のリストで
Learn Pharo を選んで、右側の ProfStef go をクリック。
するとチュートリアルが始まる。
これに従っていけば、言語の基本やIDEの基本操作がわかるようになっている。
0585デフォルトの名無しさん
垢版 |
2019/07/03(水) 06:29:09.68ID:iUw2FgI+
vmの熟成度の問題で、今のところwindowsだけ32ビットVMがデフォルトになっている。
0586デフォルトの名無しさん
垢版 |
2019/07/03(水) 18:15:46.20ID:tz/1dhKN
チュートリアル全部終えたよ!

Pharo、R-guiっぽい感じ(マウスで選択してctrl+○で実行)もあるけどね。

言語は独特やなぁ。

pdfのマニュアルもダウンロードして流し読み。

Slideshareもみてる。世界的な建設車両の個人売買サービスがこれで動いてるらしいけど、ブロトタイプはsmalltalkでさくっと作ってプロダクションはJavaScriptに書き換える、そういう使い方が便利なの?
0592デフォルトの名無しさん
垢版 |
2019/07/14(日) 16:52:43.74ID:9TcOEn5q
おお!SKK使ってるから試してみる
ありがとう!

PharoのVMは裏でSDL使ってるのかな
頑張ったらいけそうな気もする
0594デフォルトの名無しさん
垢版 |
2019/07/16(火) 12:06:15.35ID:GVq3IzjH
以前、Squeakで変換ウインドウの位置を適切にするとかやっているブログを見たことがある
はずなんだけど、いま探したけど、見つけられなかった。
最近はもうSqueakもPharoも追っかけていないんでわかんないんだけど、まだSqueakでも
インライン入力はできないですか?
0596デフォルトの名無しさん
垢版 |
2019/07/17(水) 20:47:07.22ID:usqjQCfW
VMのソース見たけどWindows版はIMEのことは丸無視ですな...
Squeakも同じOpenSmalltalk-vmみたいだから挙動は同じでは
0600デフォルトの名無しさん
垢版 |
2019/07/19(金) 03:18:57.97ID:7p9FEnw0
>>597
VisualWorksは今回のPUL版制限で自らとどめかと
Pharoに流れるってことも考えにくいからSTコミュはさらに縮小という結果に
0602デフォルトの名無しさん
垢版 |
2019/07/19(金) 05:31:21.99ID:7p9FEnw0
そもそもあれだな
PUL版からセキュリティライブラリ抜くようになって随分経つから
とっくに終わってたのかもしれないな・・
0603デフォルトの名無しさん
垢版 |
2019/07/19(金) 06:55:00.67ID:R0f6c1Ha
>>601
これそうなの!?サイズがあまりに小さかったんでスルーしてた。
サイトの説明だとVisualStudio入れてソースからビルドしろって書いてあるし。
0605デフォルトの名無しさん
垢版 |
2019/07/20(土) 21:03:36.93ID:/ZNpyw+y
Pharo 8.0でネィティブウィンドウを提供するから、VisualWorksは留めを刺されそう。
0606デフォルトの名無しさん
垢版 |
2019/07/22(月) 01:08:57.77ID:6asxolH3
既に終わったマイナー言語の信者が
ユーザ数でマウントしてるのクソ笑うわ
0610デフォルトの名無しさん
垢版 |
2019/07/24(水) 21:25:52.68ID:hcO8HWw6
あるクラスの定義全体をソースファイル形式でざっと見るような機能はないのかしら。
エクスポートしたらソース形式になるのは分かるんだけど。
ちょっと他のクラスを参考にしながら書くみたいな時にBrowserだと見える範囲が狭くてマウス操作が多くなるなぁと思うのですよ。
0615デフォルトの名無しさん
垢版 |
2019/08/04(日) 08:54:01.85ID:MLWItttP
Pharoに限らないかもしれないけど、プロトコルって実行時には何か意味あるの?
メソッドの整理みたいなコーディング上の機能だけ?
例えばprivateにすると赤い印がついて意味ありげになるけど、普通に呼べるし。
0617デフォルトの名無しさん
垢版 |
2019/08/04(日) 20:10:53.99ID:xdRifs7c
>>615
Monticello(SCM)的にはパッケージに含まれないクラス以外に定義されたメソッドを
パッケージに含める目印に流用している(つまり意味はある)けど実行時ではないからノーカン?
あと、メタプロ的には実行時に利用可能な情報であるとか
まあともあれ>>614の言うとおり通常は単なる分類
あるいは「メソッド」というオブジェクトの属性の一つ
みたいな感じ
0619デフォルトの名無しさん
垢版 |
2019/08/05(月) 06:37:26.58ID:UQQZLxjX
>>616
>>617
ありがとう。

>>617が言うパッケージに含まれないクラスを...ってのがよく分からないけどMonticello自体よく分かってないので勉強してきます。
0620デフォルトの名無しさん
垢版 |
2019/08/05(月) 07:03:30.02ID:VCxFmZj5
Dolphin Smalltalk 7.1、Windows 10日本語版で起動しないな
VirtualBoxにインストールしたWindows 10英語版だとあっさり起動した
7.1から追加されてるコードページの処理とかがおかしいのかねぇ
0624デフォルトの名無しさん
垢版 |
2019/09/10(火) 21:52:30.97ID:7ljGocjI
>>622
教わる側もバカじゃないし、いまは少しググれば
「あれ?なんでこんなオワコン教わってんの?意味なくね?」
って気づいちゃうからね
0626デフォルトの名無しさん
垢版 |
2019/09/14(土) 21:02:36.78ID:+ZdJt7C7
Smalltalkの講義をやりたきゃ、南米やヨーロッパあたりの大学に行くしかないな。
0631デフォルトの名無しさん
垢版 |
2020/03/05(木) 20:12:49.08ID:h922Dn8C
>>586
>ブロトタイプはsmalltalkでさくっと作って
>プロダクションはJavaScriptに書き換える

まあそういうやり方が現実的だろうな?
ライブラリやドキュメントや書籍とか
情報の充実度がぜんぜん違うからな!
0632デフォルトの名無しさん
垢版 |
2020/03/05(木) 20:21:13.17ID:h922Dn8C
>>622
学校なら生徒からの要望があるだろうからな
今時普通に普及してる言語を教えてくれって!
0633デフォルトの名無しさん
垢版 |
2020/03/08(日) 06:40:28.40ID:DSxgKaCu
VisualWorks 9.0がやっと出た
予定通りObjectStudioと統合したバージョンになったようだが
いつものようにPUL版は使えないんだろうな

一つだけいいことがあるとすれば8.x系でmacOSの3〜4世代前くらいまでしか対応できてなかったのが
ようやくCatalina対応したってことくらいかな・・
ライセンスやセキュリティライブラリの問題が厳しいのは相変わらずだろう

まあ今更ではある
0635デフォルトの名無しさん
垢版 |
2020/03/09(月) 00:53:15.95ID:cG6nKxlp
どうもV9から日本語版というのがなくなるっぽいねえ
大丈夫なのかね8.3とかライブ変換ON/OFFどっちでもデバッガに落ちるくらい
日本語扱えたもんじゃなかったが

UTF8/16も問答無用でCJK互換漢字が正規化される関係でファイル名をそのまま扱えないこともたまにあるが
これV7くらいからずっと引きずってる問題でリポートはしてあるけどファイル名をそのまま扱おうとすれば手を入れるしかなかった

CatalinaからはCJKをファイル名に使うことはそもそもできないようになったので
自動的に解決ってことにはなるんだけど
0638デフォルトの名無しさん
垢版 |
2020/05/06(水) 21:44:34.44ID:RV+vYD2y
 本来はSmalltalk / Prolog / Haskell / Lispみたいなパラダイムを具現化した言語は大学でちゃんとやった方が良いかもね。
 マーケティングを考えるとPythonとかになるんだろうけど。
0647デフォルトの名無しさん
垢版 |
2020/10/19(月) 18:41:20.01ID:DMLND2co
スレチかもしれないけど
、Python でクラスブラウザ風に使えるプログラムないかな?
0655デフォルトの名無しさん
垢版 |
2021/07/29(木) 01:21:26.01ID:AhDGNIk/
PharoはUIがどうしようもないから触る気になれない
native UIになるって話は前あったけど進んでるのかね
0662デフォルトの名無しさん
垢版 |
2021/08/28(土) 08:04:48.39ID:DDhgSsMa
VisualWorks9.1に年1000ドル払ってる人いますか?
0663デフォルトの名無しさん
垢版 |
2022/05/09(月) 14:32:26.87ID:uczkeUBf
Gemstone/SをDevKit_homeでインストール試したけど失敗しちゃう
0664デフォルトの名無しさん
垢版 |
2022/05/09(月) 17:47:07.10ID:Et2mVjIH
あれは古すぎるからな
mojaveで動かなくてVMでsnow leopard環境でやったらインストールできたときは笑うしかなかった
0666デフォルトの名無しさん
垢版 |
2022/06/10(金) 23:36:39.48ID:qJzp6dNt
>>663
>Gemstone/SをDevKit_homeでインストール試したけど失敗しちゃう
これhostsに書いたら解決しました。
0667デフォルトの名無しさん
垢版 |
2022/07/25(月) 20:06:59.26ID:RliBxsdw
『Smalltalkでは、オブジェクト同士はメッセージでやり取りを~』
というのはよく見聞きするけど、オブジェクトを「互いにメッセージを送信するもの」と考えると、
どのようなメリットがあるのか良くわからん・・・

結局は、『メッセージ送信=メソッド呼び出し』じゃないのん・・?
0668デフォルトの名無しさん
垢版 |
2022/07/25(月) 20:46:56.32ID:ScH/nWNp
メッセージ送信をメソッド呼び出しとして処理系つくったんだから
そりゃそうというか結局の意味がわからん(わかるが系譜をかんがえてみ)
0670デフォルトの名無しさん
垢版 |
2022/09/30(金) 02:05:46.45ID:WaKWt514
一番安いstandard supportで$2295/年 だけど・・
trialバージョンがフルバージョンならともかく何にも書いてない
win/linux版しかないみたいね
0671デフォルトの名無しさん
垢版 |
2024/01/14(日) 23:02:09.20ID:e1PHIfVQ
squeakから家庭内ネットワークのサーバにtelnet(またはssh)接続して
オートパイロットしたいのですが、どこかにログインして適当なコマンドを
入力して出力を取り込むサンプル無いもんでしょうか。linuxでいうexpectみたいな。
レスを投稿する


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