Smalltalk総合 Squeak Pharo
Lispは嫌いだけどやってる 最近関数型が偉いみたいな風潮あるから それ自体も嘘だと思ってるけど Smalltalkのユーザが高齢化してるのはあるだろうな 今はもうRubyやPythonやった方が絶対楽だし RubyやPythonのコミュニティーを見てるとSmalltalkerが踏んだ地雷を次々と踏みなおして爆発させているのを見るのがつらくて RubyやPythonで楽って感じたことはないわー >>355 この記事ポール・グラハムの劣化コピーじゃん しかもこの人物物凄い不快感がする >>355 > このグラフが示してるのはSmalltalkerの高齢化です。 断言する理由が書かれていない あとは延々「意識高い僕は選ばれた人間!」と言ってるだけ 典型的なバカ >>352 ただのアンチM$かとおもいきやC#が入ってないのなw GWだし、Mac の Pharo5.0 で Smalltalk 体験中なんだけど、 日本語IM(IME)で文字は入れられるけど、変換中の表示が ないから、アプリ作っても使ってもらうことは出来ないなぁ。 オープンソース系はずっと有志が頑張ってたイメージなんだけど、 成果がバージョンアップで流れちゃう感じなんでしょうか。 昔から英語圏の言語は日本語に厳しいのよ。。。 オープンソースだと対応する義務も無いから特に。 他はなかなか良い感じなんですけどねぇ。アジア圏の他の国の人も困ると 思うけど。 Tekka 入れられたんでありがたく使ってますけど、本当は他所で書いて コピペした方が実用的ではある… Windows ではまだ試してませんが、この辺を見ると Squeak と Pharo は 同じ手順で OK という訳にはいかなさそうです。 http://phaendal.hatenablog.com/entry/2016/12/12/221828 ほらやっぱRubyやPythonの方が楽じゃん 日本語の問題だけでもだいぶ苦しむ Windows7 と 95 にも入れてみました。 95では変換表示が pharo のウインドウの左上端に出るので、まぁ自分的にはOKかな。 Windows7では、変換表示はウインドウとして出て動かせるので、更にまし。 以前ダウンロードして積ん読状態だった Mac 版 Pharo1.0 では変換ウインドウが出 ますね。5 で同じようになれば良いんだけどなぁ。 > ほらやっぱRubyやPythonの方が楽じゃん 全部できれば良いだけでは? Sirenに興味を持っていじってみようと悪戦苦闘しているのですが 使ってたって人いますかね? 現状だともうメンテナンスもされてないみたいだけどSqueak3.0か VW7.5で動くようなんですけど。 インストールの仕方も良く判らない ttp://fastlabinc.com/Siren/ >>372 そのページのSiren7.5.zipはもう試されましたか? You don't have to build the image from scratch, though; the Siren ZIP file has a pre-configured VW virtual image (Siren7.5.{im,cha}) that ought to work for you out of the box. http://forum.world.st/Siren-installation-td134174.html >>373 VWは今インストールディスクを送ってもらっているところなので Siren7.5はダウンロードして待機中です。 Squeakは2.7で動くらしいのですが、Windowsは専用のimageがある ようで探したのですがもうダウンロードできないようでした。 https://twitter.com/umejava/status/863400931081179136 5/31日の100回記念Smalltalk勉強会のLT受付開始しました。エントリ希望の方はコメント欄へ書き込みお願いします。 https://smalltalk.connpass.com/event/56564/ なお、100回記念缶バッチが配られます。抽選でPharoのTシャツもゲットできるかも。 その昔、Smalltalkは言語でありOSだった。 SmalltalkというOSがアプリそのものでもあった。 SmalltalkというOSで動いている唯一のアプリにワード、 エクセル、ゲームの機能を追加していくそういう世界であった。 アプリの終了はOSの終了、世界の終了を意味していた。 世界を終わらせること無く機能を追加していくために Smalltalkは生まれたのである 元ネタはこれかな 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では「オブジェクトは遅延結合が必要で動的に変更できなければならない」という 根拠になってしまっているから、お前らの世界では遅延結合や動的が必須なのだろうけど、 そのマイナーな世界を押し付けるな。そんなものはなくてもできる。という感じで荒れる Windowsの規模でイメージベースとかの 仕組みが上手くいってたかというと疑問だな 現状のSmalltalkでもイメージベースだけじゃなく ファイルベースでも管理するのが普通だし そうしないと少し不安なところがある 小規模なプロトタイピングを作るときに いちいちファイルに分けない イメージベースは快適ではあるんだけど そのまま大規模なソフトを作れる スケーラブルな方式だとはとても思えない Dolphin Smalltalk7をwineで動かしてみたらヘルプの文字が表示がされない 直し方教えて Pharoに興味持って、MacのVer.6.1-64を動かしてみたんだが、 https://qiita.com/sumim/items/c2a38a42c3ccd70c18b2 の通りにやっていて、ハングアップしてしまう・・・ 上のurlは5.0用みたいだから挙動が違うとかメニューが違うのはいいとして、ハングアップってどうなのよ?という感じ。 どこでハングするかぐらい書かないと どこまで優秀なエスパーを期待しているのやら http://pharo.org/web/download の32、64ビット版何れでも、self shouldBeImplemented」というスタブメソッドの内容を変更、保存した瞬間にハングアップ。 環境は、macOS High Sierra(10.13.1) Pharo5.0で試してみるか・・・正直、チョットと動かしてみようと思ってただけなので、萎える。 手元でその環境(High Sierra, Pharo6.1-64)を作って試してみましたが 件のスタブの書き換え(変更してコンパイル)を含め、問題はないみたいです 確か、6.0ではそういう障害が報告されていたようですが 6.1でもまだ完全に解決していないか、環境依存でたまたま起きた可能性がありそうですね ちょっと試すだけなら5.0で良さそうに思いますので面倒かもしれませんがリトライしてみてくだい あと今回の件とは関係なさそうなのであくまで一般論&余計な事かもですが Smalltalkのチュートリアルを試す際は、処理系を同じにするのはいうまでもない事ですが バージョンについてもそのチュートリアルが対象にしているのと極力同じバージョンを選ぶ (もちろん可能な範囲でですが…)のが萎える要素を少なくできて良いと思います Smalltalkの学習の初期の段階では他言語の習熟者ほどストレスフルに感じる疑問が多く発生しがちなので… >>387 おかげさまでPharo5.0で試すことが出来ました。 テストをサクッと書ける(しかも作成中のクラスへの表示も)のが良いですね。 (Java、RubyだとWebアプリ作る際にテストライブラリを別導入したりするので、人に勧めたり説明するのがチョット手間) まだアプリの作り方とか全く分かりませんが、もうチョット遊んでみようかと思います。 最初に試したiMacとPharo6との相性が悪かったようです。(多分、iMacの環境のせい) 別のMacBookPro(El Capitan 10.11.6)では Pharo5.0、6.1、6.1-64bit ともに正常に操作出来ました。 Pharoで標準入出力ってどう扱うの? シンプルなコマンド作ってbashで他のコマンドとパイプでつないで使うところから始めたいです その方向からならPharoよりGNU Smalltalkの方がよくない? あえて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 GNU SmalltalkはAPIやライブラリーの充実度でPharoには遠く及びませんが 今回のようにshellとの連携からの入門には十分でむしろ優れていると思います 参考までGNU Smalltalkでの対話的なコーディングに欠ける機能を補う試みとしてこんなのもあります CUIなSmalltalkでメソッド調べる小技 https://qiita.com/tetha/items/1833cff9f4024595be78 Pharo使って見始めたが、これ全てがメッセージ、というのが興味深い。 ただ、チーム数人で、Smalltalk使って開発するときって、ソース管理(メンバー間での同期、マージ)はどうしてるんだろう? JavaやRubyでは基本的にはテキストファイルだから、Gitが定番だと思うが。 >>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 の機構もいろいろ利用されています >>400 古典的にはSmalltalkではソースを環境内でメソッド単位で管理することになっていますが それぞれを、ディレクトリー(パッケージ名とクラス名、インスタンスメソッドかクラスメソッドか)と ファイル名(プロトコルとメソッド名)を使って個々のファイルにマッピングすることで Git で管理できるようになります 前述の iceberg がその方式で、それ以前にも Filetree といったそうしたマッピング専用のツールがありました 念のため >>402 ,403 おおっ、そういうのが有るのですね。 早速見てみます。 (iceburgってのがメニューのトップに有ったけど、何だろう・・・あとで調べるか、と思ってましたw) 富士ゼロックス、米ゼロックスと経営統合へ 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 シンコムさんからメディアが届いた 週末は久しぶりにSmalltalk三昧できそうです もう忘れかけてるから頭リセットしなきゃ ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ 少しは使われてるけど ほぼ使われてないと言っても同じようなもん アンチの憎悪をここまでかきたてるのは何なんだろうね マイナーなんだから出しゃばるなとかそういう了見の狭さか マイナーなこと自体は仕様がないけど 普及を阻む使いにくいところは もっと早く変えた方が良かった あの時代遅れなIDEを積極的に使わせようとするの謎 IntelliJ使ってるユーザが乗り換えるわけないじゃん そら普及しないわ IDEは良いけどイメージベースでEXE作らないとかの独自仕様が アイディアとしてはともかく実用的には使いづらかった (Smalltalk keys noneSatisfy: #isValuable) ifTrue: [^self] >>422 ほー、Behavior>>isVariableの駄洒落ですか。 スモールトーク自身ウンコなので、それ自体がキラーアプリってなのは成立しない そもそも成立してたら普及してるって これか ストロングゼロの氷結のストロングゼロのウォッカ入ってるんだけど、この氷結のチューハイ毎日ではないけどかなりのペースで飲むと2本 今も例えば月曜日とかだと氷結でストロングゼロ飲んでって感じで飲んでるから人気になるんだと思う 楽でいろんな味だしね おそらくはこういう意味? ストロングゼロや氷結ストロング等の“ストロング”系チューハイにはウォッカが入っていて 口当たりがたいへん良いので毎日というわけではないけどペースが乗ると日に2本とか普通に飲めてしまう 実際、まだ週が始まったばかりだけど氷結ストロングでも飲むかってつい飲んでしまったよ こんな感じで皆が気軽に飲めるから人気がでるんだと思う いろいろな味があって楽しめるしね Smalltalkをいま使ってる日本企業ってゼロ? 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を使えばいい? 手元の環境では特に問題ない感じなので何かの相性の問題かもしれません あと、仮想イメージは同時期に提供された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内(あるいはその他のブラウザ内)で起動できます お試しあれかし >>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 試してみたところ、こちらの実装では(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.. からダウンロードできます。 こちらも参考まで。 >>434 ctrl+cでコピーできました!ありがとうございます https://squeak.js.org/demo/simple.html ↑の方でもctrl+cでいけますね。 私は力技でvw.jsの primitiveClipboardText: function(argCount) { の中で this.display.clipboardString から値を取り出すことを考えてましたが、 もうその必要がなくなってよかったです。 あと、この経緯でついでに<primitive: 141>まわりの実装が勉強になった。 よかったです。Smalltalk世界の散策を楽しんでください。 昔のsqueakにはメニューにdebug itがなかったんですね 仕方がないので、例えばBrowser openBrowerの処理を追いかけたいときは、ワークスペースを開いて self halt. Browser openBrowser. の2行を書いて、それをマウスで選択してdo itで実行させてるんですが、 当時の人たちはこういうときはどうやってデバッガを起動してたんでしょう? Smalltalk面白いと思うんだが、何で流行らないんだろ? >>437 halt は何にでも送れるので Browser halt; openBrowser でいけます 古いっていうだけでもう相手にされないか、そこを突破できても 実際に古臭い点も多々あるんで本当におもしろいところまで行き着けないんでしょうね あと今の人は学ぶことが多すぎて、余計な事を学ぶ気持ちや時間の余裕が持てないのが大きそう Smalltalk、プチコンくらい流行らせてみたいね >>439 「halt;」を書き足すだけでいいので便利ですね。 そのアイデアいただきます! scratchって、Small talkクローン? Scratch は、古いバージョン(バージョン 1.4 まで)が Smalltalk(MIT版 Squeak)で実装されたというだけで Smalltalk とは別の独立した言語処理系です。 >>443 なるほど、ありがとう。 LOGO、Smalltalk、scratchを触ってみて言語のバックグラウンドが似てるように見えたのはそういう事だと腑に落ちました。 ブロックを自分で定義出来ると色々遊べそう(センサーのエミュレーションとか)。 まだまだ勉強中です。 >>444 Scratch の開発リーダー、ミッチェル・レズニックはシーモア・パパートの弟子で LOGOの並列化版 StarLogo の開発者でもあるので、Scratch は Smalltalk よりは LOGO の影響の方が色濃いのかもしれません。 >>438 キラーアプリがないから ドキュメントが少ないから 独自仕様に従うのが大変だから 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 2EWEB >>448 たとえばイメージベース(EXE出力しない)とかね イメージベースのメリットを損なわずに迎合するにはどうしたらいいのだろうね 以前質問させていただいた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で止まらないことからこのメソッドは表示処理に使われていないと予想。 他は何を調べればいいでしょう? read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる