私は本当にSmalltalkを学び始めています。現在、 Squeakを使用していますが、VMを使用せずにSmalltalkで開発する方法はありますが、IDEのようなものはありますか?
6 に答える
Smalltalkのイメージは、VMwareマシンに類似しています。これは、実行中のSmalltalkアプリケーションの単なるフリーズ状態です。 すべてのSmalltalkはイメージを使用し、1つで開発することは、すべてのSmalltalkで開発を行うための推奨される方法です。同様に、すべてのSmalltalkは、Java、.NET、Pythonなどと同様に、バイトコードにコンパイルされ、仮想マシン上で実行されます。ただし、これは、Smalltalkプログラムの開発に使用するプログラムや、エクスペリエンスがどのようにネイティブであるかとはまったく関係ありません。
他の人が言及しているように、Squeakには実際には非常に優れたIDE、つまりすべてのSqueakが付属しています。しかし、それはあなたが実際に求めていることではないと思います。私が理解できる限り、あなたの質問は次のいずれかまたは両方です。
- 慣れ親しんだツールや使い慣れた方法でSmalltalk用に開発できますか?たとえば、ファイルごとに、通常のテキストエディタで?
- Smalltalkを使用して通常のアプリケーションを作成できますか?
使い慣れたツールでSmalltalk用に開発できますか?
最初の答えとして:ほぼすべてのSmalltalkについて、いいえ。Smalltalkのファイル形式は、テキストエディタで直接操作するのではなく、SmalltalkIDE内で操作するように設計されています。そのため、Squeak、Pharo、VisualWorks、VisualAge、およびこれまでに使用した他のすべてのSmalltalkは、ソースを直接編集することを避け、代わりに独自のカスタムIDEを提供します。これらのツールはクロスプラットフォームであるため、それらのIDEは一般にネイティブではなく、エミュレートされたクロスプラットフォームの感覚を表しています。これらすべてのシステムのソースを直接編集できますが(たとえば、foo.sources
Squeakイメージのファイルを編集してから、ブラウザの変更を使用して編集内容を読み込むことができます)、実際には誰も編集しません。
この点であなたを幸せにするかもしれない2つのルートがあります。まず、他の人が指摘しているように、GNU Smalltalkは型破りであり、実際、エディターフレンドリーなファイルベースのフォーマットを備えています。GNU Smalltalkは、私が最後にチェックしたWindowsではうまく動作せず、GPLライセンスを取得しているため、問題になる可能性があります。ただし、選択したエディターを使用することはできます。vimとEmacsの両方にGNUSmalltalkの構文強調表示があり、NetBeans、Emacs、またはその他の主要なIDEのパッケージを認識していませんが、作成するのはそれほど難しくありません。
Squeakが「醜い」ように見えることが唯一の懸念である場合、あなたが取ることができる2番目のルートは、DolphinSmalltalkを使用することです。Dolphin Smalltalkは、WindowsネイティブバージョンのSmalltalkです。現時点ではその将来は混乱していますが、Squeakが気になっている場合は、ネイティブ環境ではるかにくつろげるでしょう。
ネイティブに見えるアプリケーションを作成できますか?
真にネイティブなウィジェットが必要な場合は、現時点ではいくつかのオプションがあります。Dolphinはネイティブウィジェットを提供しますが、前述したように、その将来は現在不確実です。Squeak、VisualWorks、GNU Smalltalkは優れたFFIシステムを提供するため、ネイティブUIを作成できますが、そうすることは比較的困難で複雑になります。つまり、基本的に、これがあなたにとって非常に重要である場合、今のところ、Smalltalkを使用することは最善の選択肢ではないかもしれません。
ネイティブウィジェットを持つことが重要ではない多くのアプリケーションがあることに注意してください。ゲームやキオスクは確かに標準のウィジェットを使用する必要はありませんが、周りを見渡せば、それらを使用することを気にする主流のアプリはほとんどありません。Microsoft独自の製品は、カスタムのルックアンドフィールを備えていることで有名です。Chromeは、実行するすべてのプラットフォームで面白く違和感があります。iTunesは、Windowsシステムでは本当に奇妙に見えますが、驚くほど人気があります。Webサイトの多数のインターフェースにより、人々は非標準のインターフェースに順応するようになりました。ですから、あなたが単に気にしないという本当の可能性があります-そしてSqueakのインターフェースは非常にテーマ性が高いので、出荷の近くでそれを「きれい」に見せることは難しくありません。
(GNUSmalltalkには非常に優れたGtk+バインディングがあり、実行しようとしていることによっては許容できる場合があります。GTK+に対して作成されたGIMPやPidginなどの主要なアプリケーションがあり、Windowsでは問題なく表示されます。 、実行可能なオプションを考慮しなかったことをお詫びします。)
私の推薦
正直なところ、お好きなIDEを備えたSmalltalkの1つを見つけて、それを使用することを強くお勧めします。Eclipseのように光沢のあるものであろうと、Sciteのようなくだらないものであろうと、テキストエディタを使おうとするよりもはるかに生産性が高くなります。他のルートに行くと、Smalltalkの素晴らしさの多くを失うことになります:REPLなし、劣ったデバッグ、劣ったコードブラウジングなど。
従来の開発環境を使用することを主張する場合、最良のオプションはGNUSmalltalkです。Windowsを使用する前に、Windowsでの安定性とパフォーマンスに満足しているかどうかを慎重に評価し、GPLライセンスの影響に満足していることを確認する必要があります。ファイルベースの開発モデル。
SqueakはIDEです。「IDE」のコンセプトは間違いなくSmalltalkから来ました!「ファイル指向」のワークフローが必要ですか?GNU Smalltalkは、そのように機能する実装の1つです。
Smalltalkは単なる言語ではなく、環境にも影響を与えるため、一般的に答えはノーです。ライブオブジェクトのユニバースではなく、フレームワークを備えたより静的な種類のシステムに変換することもできますが、それは別のことです。NeXTSTEP、したがってCocoaは本質的にこれを行いました。したがって、答えは「確かに、Objective-Cと呼ばれます」である可能性があります。
編集:そうは言っても、LoganのGNUSmalltalkへの参照を参照してください。
VMを使用しても、IDEの使用が妨げられることはありません。あなたが尋ねるべき質問は、どのIDEが優れたSmalltalk統合を持っているかということです。Squeakは間違いなくSmalltalkIDEに行く方法です
あなたはすでにSqueakを使用していて、満足していないように見えるので、おそらく他の人は他のIDEを念頭に置いています。Squeakが提供していないものを正確に探していますか?
Squeak画像での作業は本当に楽しいことがあります。
環境は最初は少し混乱しますが、非常に強力です。
ライブシステムで作業することで、物事の探索と変更が簡単になります。画面上のオブジェクトを取得して、その状態を確認し、操作し、オブジェクトクラスを参照し、コードを実行して、世界の変化を確認できます。
Smalltalkブラウザは、コードを書くよりも「ブラウジング」することに重点を置いています。クラスが使用されているすべての場所(コンパイラからhttpサーバーまで)をすばやく見つけて、すべてがどのように組み合わされているかを理解できます。
しばらくの間、画像に慣れてみてください。外付けのIDEを使うと何かが失われると思います。
squeaksourceからSVIプロジェクトをロードする場合は、SmalltalkツールでVIバインディングを使用できます。Squeak 4.1で実行するように更新しましたが、4.2についてはわかりません。