2009-12-18 96 views
9

我真的開始學習Smalltalk。現在我使用的是Squeak,但是有什麼方法可以在不使用VM的情況下在Smalltalk中開發,但是像IDE一樣?有沒有什麼方法可以在不使用VM的情況下在Smalltalk中開發?

+3

我建議習慣Squeak IDE。一旦你習慣了它並沒有那麼糟糕;事實上,我聽說與正常的寫入/編譯/運行週期相比,它實際上非常高效。 (我只是玩弄它,所以我不能保證它,但普遍的共識是Smalltalk>傳統的IDE)。 –

回答

24

Smalltalk中的映像與VMware機器類似:它只是正在運行的Smalltalk應用程序的凍結狀態。 全部 Smalltalks使用圖像,一個開發是所有Smalltalks開發的首選方式。同樣,所有的Smalltalks都會編譯爲字節碼並在虛擬機上運行,​​就像Java,.NET,Python和其他程序一樣。但這與您用來開發Smalltalk計劃的程序以及體驗本身的感受完全無關。

正如其他人所說,Squeak實際上帶有一個非常好的IDE —,即所有的Squeak。但是,我不認爲這就是你真正想要的。盡我所知,您的問題是以下任一種或兩種:

  1. 我可以使用我熟悉的工具開發Smalltalk嗎?例如,在一個文件的基礎上,在一個普通的文本編輯器?
  2. 我可以使用Smalltalk製作看起來很正常的應用程序嗎?

我可以使用我熟悉的工具開發Smalltalk嗎?

回答第一個問題:對於幾乎所有的Smalltalks,沒有。 Smalltalk的文件格式被設計爲在Smalltalk IDE中操作,而不是直接在文本編輯器中操作。這就是爲什麼Squeak,Pharo,VisualWorks,VisualAge和我曾經使用過的其他Smalltalk避免直接編輯源代碼,而是提供他們自己的定製IDE。因爲這些工具是跨平臺的,所以它們的IDE通常不是本地的,而是代表了一種模擬的跨平臺的感覺。雖然您可以可以直接編輯所有這些系統的源代碼(例如,您可以編輯foo.sources文件以獲取Squeak圖像,然後使用更改瀏覽器加載編輯),但實際上沒有人這樣做。

有兩條路線可能讓你在這方面更開心。首先,正如其他人指出的那樣,GNU Smalltalk打破了模型,事實上,它具有編輯友好的基於文件的格式。 GNU Smalltalk在Windows下運行得並不順利,最後我檢查了它,並且是GPL許可的,這對您來說可能是個問題。但它確實允許您使用您選擇的編輯器。 vim和Emacs都有GNU Smalltalk的語法高亮顯示功能,雖然我不知道NetBeans,Emacs或其他主要IDE的軟件包,但編寫一個軟件包並不困難。

如果您唯一擔心的是Squeak看起來「醜陋」,您可以採用的第二條路線是使用Dolphin Smalltalk。 Dolphin Smalltalk是Smalltalk的Windows本地版本。儘管目前它的未來令人困惑,但你可能希望看看它,因爲如果Squeak困擾你,你可能會在家鄉的環境中感受到更多的感受。

我可以製作原生外觀的應用程序嗎?

如果您想要真正的原生小工具,那麼您目前幾乎沒有選擇。 Dolphin提供了原生的小部件,但是,正如我之前提到的,它的未來目前還不確定。 Squeak,VisualWorks和GNU Smalltalk提供了很好的FFI系統,因此你可以製作原生的用戶界面,但這樣做會相當艱鉅和複雜。所以,基本上:如果這對你很重要,那麼,現在,使用Smalltalk可能不是你最好的選擇。

請注意,有許多具有本機小部件不重要的應用程序。遊戲和信息亭當然不需要使用標準的小部件,但是如果你環顧四周,很少有主流應用程序也懶得使用它們。微軟自己的產品因具有自定義的外觀而出名,Chrome在其運行的每個平臺上看起來有點不合時宜,儘管在Windows系統上看起來奇怪,但iTunes仍然非常流行,等等。網站上的大量接口也使人們適應非標準接口。因此,您真的可能不在乎 - 因爲Squeak的界面具有高度的主題性,所以當您靠近航運時看起來很「漂亮」並不困難。

(GNU Smalltalk的確實有很好的GTK +綁定,這是可以接受你,取決於你想要做什麼。有重大應用,如GIMP和Pidgin的,書面反對GTK +,看起來在Windows中很好,不過,我原諒你不考慮一個可行的選擇。)

我的建議

說實話,我強烈建議你找Smalltalks的一個你喜歡的IDE,並使用它。在嘗試使用文本編輯器時,你會更加高效,無論它是像Eclipse這樣一個光鮮亮麗的人,還是像Scite這樣糟糕的人。如果你走其他路線,你會錯過很多Smalltalk的偉大:沒有REPL,劣質的調試,劣質的代碼瀏覽等等。

如果你堅持使用傳統的開發環境,最好的選擇是GNU Smalltalk。在使用它之前,您應該仔細評估您是否對Windows的穩定性和性能感到滿意,並確保您對GPL許可證的含義感到滿意,但如果您是這樣,那是唯一真正認可的Smalltalk基於文件的開發模式。

+2

+1當前選項的優秀調查。謝謝。 –

+0

不完全:您可以使用make和stc編譯器(也是命令行工具)在Smalltalk/X中構建應用程序(甚至是非gui,命令行應用程序)。 ST/X本身沒有圖像編譯,並從單個st源文件編譯。但是,如果您願意,ST/X還包含一個IDE。所以在IDE中開發,fileout和make是可能的。 – blabla999

+0

除非你遇到地雷...... –

2

使用虛擬機並不妨礙您使用IDE。您應該問的問題是哪個IDE具有良好的Smalltalk集成。 Squeak絕對是一個Smalltalk IDE的方法

也許別人有其他IDE的想法,因爲你已經在使用Squeak,似乎並不滿足。你究竟在尋找那個Squeak沒有提供的東西?

+2

我想在Windows for Windows上開發,而不是使用Squeak的困難界面。 –

4

Squeak 的IDE。 「IDE」的概念可以說是來自Smalltalk!你是否想要一個「面向文件」的工作流程? GNU Smalltalk是一種以這種方式工作的實現。

+4

+1儘管我的說法是這樣的事情不再是Smalltalk,但GNU Smalltalk可能非常接近OP的想法。 –

4

一般來說,答案是否定的,因爲Smalltalk不僅僅是一種語言,它也是環境,包括你對它做出的改變。你可以用一個框架而不是一個活體對象來把它翻譯成更靜態的系統,但它會是一個不同的東西。 NeXTSTEP和Cocoa基本上做到了這一點。所以答案可以是「確定的,它被稱爲Objective-C」。

編輯:所有這一切,請參閱Logan對GNU Smalltalk的引用。

1

工作在一個吱吱聲圖像可以很有趣。

環境起初有點混亂,但它非常強大。

在現場系統中工作可以輕鬆探索和改變事物。你可以在屏幕上看一個對象來查看它的狀態,使用它,瀏覽對象類,運行一些代碼,看看世界的變化。

Smalltalk瀏覽器也更注重瀏覽代碼,而不是編寫代碼。您可以快速找到正在使用某個類的所有位置(從編譯器到http服務器),並瞭解它們如何組合在一起。

嘗試習慣圖像一段時間。我認爲你會通過使用外部IDE失去一些東西。

0

如果您從squeaksource加載SVI項目,則可以在Smalltalk工具中使用VI綁定。我更新它在Squeak 4.1中運行,不知道4.2。

相關問題