問題タブ [smalltalk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - Smalltalk は Mac OS X 用の実行可能な開発言語ですか?
ソフトウェア開発に関する議論を見るたびに、美しい言語構造であろうと、基本的にすべてのより良い実装であろうと、常に誰かが Smalltalk の品質を提案したり、賞賛したりします。
それで気になったのですが、Smalltalk で開発している人はいますか? Smalltalk は実際に Mac でソフトウェアを開発するために使用できますか? または、Smalltalk のターゲット プラットフォームは何ですか? この一見素晴らしいが人気のない言語の代表的な子は何ですか?
python - Smalltalk と python の違いは?
私は今 Smalltalk を勉強しています。Python に非常に似ているように見えるので (実際には逆に、Python は Smalltalk に非常に似ています)、Python 愛好家として、それを研究する価値があるかどうか疑問に思っていました。
メッセージの受け渡し以外に、Smalltalk と python の間の注目すべき概念上の違いは何ですか?
php - Smalltalk のソース コード ブラウザは、他のプログラミング言語にどの程度役立ちますか?
Python、Ruby、および PHP の IDE に取り組んでいます。
私は Smallltalk を使ったことがありません (私が大学時代に非常に人気がありました)。メソッドを 1 つだけ表示する従来の Smalltalk ブラウザは、本当に従来のファイル編集の改善なのか、そうでないのか疑問に思います。
私自身は、クラスでできるだけ多くの概要を把握するのが好きです。現在、24 インチの 1280x1920 ディスプレイを 2 列モードで使用しており、1 列に多くの行を表示できます。
個人的には、たとえば、ユーザーがすべての定義 (関数コード本体) を 1 回のキーストロークで折りたたむことができる優れたコード折りたたみエディターもある場合、どのような利点があるのか 疑問に思う必要があります。
しかし、時々、ニュースグループで xxx をもっとつまらないものにしてほしいというリクエストを見かけます。画像ベースのバージョンが必要な人もいるかもしれませんが、ブラウザは 2 番目に異なる Smalltalk の発明でした。
smalltalk - VW 3.1d および ENVY でアンマネージ コードを削除する方法
アンマネージ コードとしてロードされたパーセルを含む古い VW3/ENVY イメージがあります (マスタリング ENVY/DEVELOPERが警告する状況とまったく同じです)。残念ながら、この問題はかなり前に発生しており、小包が読み込まれていない画像に「戻る」だけでは遅すぎます。
どうやら、この問題を解決する方法があります (これが解決された 1 つの開発イメージがあり、管理されていない区画とまったく同じコードを含む通常の構成マップがありますが、それらはロードできません)。その方法は長い間忘れられていました (そして、その特定の開発イメージを新しいランタイム イメージのベースとして使用することにはいくつかの問題があるため、もう一度行う方法を見つける必要があります)。
理論的には、パーセルを削除して構成マップからコードをリロードできるはずです。実際には、通常の方法 (ParcelBrowser を使用するか、UnmanagedCode>>remove を直接呼び出す) はすべて失敗します。問題のあるセレクターをメソッド ディクショナリから手動で削除しようとしましたが、特定のポイント (#primBecome: の呼び出しを含む) を過ぎると、イメージ全体が完全にハングします (デバッガーにドロップすることさえできません)。クラスとメソッドのインスタンスのハッキングを開始しました。ENVY をだまして、これらの特定のメソッドが通常のバージョン管理されたコードであると認識させようとしたのですが、まだ成功していません。
ポインタを提供するのに十分なVW 3をまだ覚えている、スモールトーク/羨望の達人が周りにいますか?
ステータスの更新 問題を解決しようとして 1 週間が経過した後、少なくとも部分的には解決できました。
まず、umnanaged コードのファイル ポインターを修正する必要がありました (そうしないと、メソッドにアクセスしようとしたすべてのものが例外をスローしてしまいます)。ENVY はパーセルを拡張しているように見えるので、理論的には、void
ロード時にすべての整数ファイル ポインターが ENVY のファイル ポインターに変更されますが、私の場合は手動で行う必要がありました (パーセルは、定義するすべてのセレクターの列挙を提供します)。コードを微調整する別の方法もありfilePointer
ますが、必要なすべての画像で自動的に行うのは簡単ではありません。
その後、小包を破棄できます。これにより、小包の情報は削除されますが、コードは保持されます。公式の「破棄」メカニズムには、有効な変更ファイル (envy は使用しないため、手動で設定し、後でリセットする必要があります) とパーセル ソース (幸運にもそれがありました) が必要です。
メソッドを (手動で、または ENVY からアプリケーションまたはクラスをロードすることによって) 変更できるようにするには、管理されていない状態を取り除く必要があります。これは、手動で微調整することで実行できますTheClass>>applicationAssocs
(タイムスタンプなどの UnmanagedCode のクラスへのすべての参照も削除し、破棄された区画への参照も削除しました)。実は上司からここまでの行き方を教えてもらったのですが、自分でほぼ理解するまで指示を理解できませんでした。
これにより、クラスを含むすべてのアプリケーションをロードして再ロードできるようになりました。理論的には。実際には、アプリケーションの新しいバージョン (以前は区画に含まれていたコード) をロードしようとすると、イメージは完全にハングアップしました。
クラッシュはコードが管理されていないこととはまったく関係がないことが判明しましたが、問題の区画が変更されたという事実があり、InputState>>process:
クラス変数の欠落および/または初期化されていないために例外が発生しました (InputState>>initialize
メソッドが呼び出されませんでした新しいprocess:
方法が導入されるまで)。Notifier
何が起こっているのかを調べるために、すべての例外をファイルにダンプするようにクラスを変更する必要がありました。クラス変数をクラスのソースに追加し (リフレクション経由で追加するのではなく)、入力処理スレッドを一時停止toBeLoadedCode
してメソッドで再起動しloaded
、新しいバージョンのアプリケーションを作成することで、この問題も解決しました。
これで、理論的にはすべてが機能します。WindowSystem または VisualworksBase アプリケーションをリロードすると初期化ブロックが実行され、フォントとフォント サイズ、ウィンドウの色、UI 設定など、多くの設定がデフォルトにリセットされるため、実際にはまだ使用できません。設定をファイルに保存して後で読み込むか、すべての設定を確認するだけの方法のようです (公式の [設定] メニューにすべてが表示されないか、大幅に調整された画像があります...ゼロから再構築するのはこれで十分です)。しかし、それはまったく別の質問です。
smalltalk - Squeak または Pharo からのシェル コマンドの呼び出し
Squeak と Pharo からシェル コマンドを呼び出すにはどうすればよいですか? これらの環境には、外部シェル コマンドを実行するための特定の UNIX 言語の system() 関数や、バッククォート (ここではエディターに対して行うことはできませんが、" の左側のキーを押すと得られるもの) のようなものがありますか1" 以上の "TAB") を使用して、コマンドの出力をキャプチャしますか?
scalability - シーサイドはスケーリングしますか?
シーサイドは「異端のウェブフレームワーク」として知られています。それを異端にするポイントの1つは、それが多くの共有状態を持っているということです。しかし、それは私の現在の理解では、簡単なスケーリングを妨げるものです。
一方、Ruby on Railsは、可能な限り少ない状態を共有します。現代のsmalltalkvmsに比べて犬が遅い場合でも、かなりうまくスケーリングすることが知られています。flickrはphpを使用しており、非常に大きなインフラストラクチャに拡張されています...
では、Seasideのスケーリングの経験はありますか?
java - Java、.NET、Ruby のいずれかを対象とする Smalltalk コンパイラ
指定された Smalltalk (インスタンス化) が Java バイトコード、.NET CLR、または Ruby のいずれかを出力する Smalltalk コンパイラを探しています。アプリケーションを Smalltalk に残したいので、移植ユーティリティを探していません。
私は解決策をグーグルで検索し、Web サイト ( http://www.smalltalkmigrations.com/ ) を持っている会社に出くわしましたが、彼らはもはやビジネスを行っておらず、他のオプションを探しているようです。
python - Smalltalk (Pharo など) は Python と比べてどうですか?
一方ではSmalltalk と Ruby、他方ではRuby と Pythonの比較を見てきましたが、Python と Smalltalk の間ではありません。特に、実装、構文、拡張性、哲学の基本的な違いを知りたいです。
たとえば、Python にはメタクラスがないようです。Smalltalk にはジェネレータの概念がありません。どちらも動的に型付けされていると言われていますが、Python は動的なメソッドのディスパッチを行っていないと思います。これは正しいです?
smalltalk - Smalltalk のコレクションとソート
Smalltalk で選択ソートを実行できるアイテムのコレクションが必要です。
何を使うのが一番いいですか?リスト、セット、リンクリストなど?
smalltalk - Smalltalkで入力されたコレクション
smalltalkプログラミングを学ぼうとしています。myClass型のオブジェクトのリストを作成しようとしています。これを行うための最良の方法は何ですか?
私は次のものを持っています:
私が間違っている場合は私を訂正してください。
では、リストに要素を追加するにはどうすればよいですか?