我真的開始學習Smalltalk。現在我使用的是Squeak,但是有什麼方法可以在不使用VM的情況下在Smalltalk中開發,但是像IDE一樣?有沒有什麼方法可以在不使用VM的情況下在Smalltalk中開發?
回答
Smalltalk中的映像與VMware機器類似:它只是正在運行的Smalltalk應用程序的凍結狀態。 全部 Smalltalks使用圖像,一個開發是所有Smalltalks開發的首選方式。同樣,所有的Smalltalks都會編譯爲字節碼並在虛擬機上運行,就像Java,.NET,Python和其他程序一樣。但這與您用來開發Smalltalk計劃的程序以及體驗本身的感受完全無關。
正如其他人所說,Squeak實際上帶有一個非常好的IDE —,即所有的Squeak。但是,我不認爲這就是你真正想要的。盡我所知,您的問題是以下任一種或兩種:
- 我可以使用我熟悉的工具開發Smalltalk嗎?例如,在一個文件的基礎上,在一個普通的文本編輯器?
- 我可以使用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基於文件的開發模式。
+1當前選項的優秀調查。謝謝。 –
不完全:您可以使用make和stc編譯器(也是命令行工具)在Smalltalk/X中構建應用程序(甚至是非gui,命令行應用程序)。 ST/X本身沒有圖像編譯,並從單個st源文件編譯。但是,如果您願意,ST/X還包含一個IDE。所以在IDE中開發,fileout和make是可能的。 – blabla999
除非你遇到地雷...... –
使用虛擬機並不妨礙您使用IDE。您應該問的問題是哪個IDE具有良好的Smalltalk集成。 Squeak絕對是一個Smalltalk IDE的方法
也許別人有其他IDE的想法,因爲你已經在使用Squeak,似乎並不滿足。你究竟在尋找那個Squeak沒有提供的東西?
我想在Windows for Windows上開發,而不是使用Squeak的困難界面。 –
Squeak 是的IDE。 「IDE」的概念可以說是來自Smalltalk!你是否想要一個「面向文件」的工作流程? GNU Smalltalk是一種以這種方式工作的實現。
+1儘管我的說法是這樣的事情不再是Smalltalk,但GNU Smalltalk可能非常接近OP的想法。 –
一般來說,答案是否定的,因爲Smalltalk不僅僅是一種語言,它也是環境,包括你對它做出的改變。你可以用一個框架而不是一個活體對象來把它翻譯成更靜態的系統,但它會是一個不同的東西。 NeXTSTEP和Cocoa基本上做到了這一點。所以答案可以是「確定的,它被稱爲Objective-C」。
編輯:所有這一切,請參閱Logan對GNU Smalltalk的引用。
工作在一個吱吱聲圖像可以很有趣。
環境起初有點混亂,但它非常強大。
在現場系統中工作可以輕鬆探索和改變事物。你可以在屏幕上看一個對象來查看它的狀態,使用它,瀏覽對象類,運行一些代碼,看看世界的變化。
Smalltalk瀏覽器也更注重瀏覽代碼,而不是編寫代碼。您可以快速找到正在使用某個類的所有位置(從編譯器到http服務器),並瞭解它們如何組合在一起。
嘗試習慣圖像一段時間。我認爲你會通過使用外部IDE失去一些東西。
如果您從squeaksource加載SVI項目,則可以在Smalltalk工具中使用VI綁定。我更新它在Squeak 4.1中運行,不知道4.2。
- 1. 有沒有方法可以在沒有GraphQL的情況下使用Relay?
- 2. 有沒有什麼辦法可以在不使用Appstore和adhoc發佈的情況下發布應用程序?
- 3. 有沒有什麼方法可以在不使用JavaScript和JQuery的情況下獲得asp.net中的keycode?
- 4. 有沒有什麼方法可以在不使用動態內存的情況下使用Qt?
- 5. 有沒有什麼辦法可以在不使用jQuery的情況下在Angular WYSIWYG指令中使用colorPicker
- 6. 有沒有什麼方法可以在不使用XMPP協議的情況下連接到Facebook聊天服務?
- 7. 有沒有什麼辦法可以在不使用第三方庫的情況下創建tar文件?
- 8. 有沒有什麼方法可以在不使用聯結表的情況下表示多對多關係?
- 9. 爲什麼不在沒有Application.Run()的情況下打開winform?
- 10. 有沒有其他方法可以在不使用dataadaptor.Fill方法的情況下填充ADO.Net中的Datatable?
- 11. 在沒有Ajax的情況下在javascript中使用ruby方法
- 12. 有沒有什麼辦法可以在沒有JavaScript的情況下使用JQuery Mobile CSS?
- 13. 有沒有什麼方法可以在沒有整個SDK的情況下安裝ADB?
- 14. 有什麼方法可以在沒有閃光的情況下使用音頻播放器?
- 15. 有沒有一種方法可以在不使用中間件的情況下使用scrapy的代理?
- 16. 在C++映射中,有沒有什麼方法可以在給定值的情況下搜索關鍵字?
- 17. 可以在不使用Maven的情況下開發插件嗎?
- 18. 有沒有什麼方法可以在Harp.js中使用Jade塊?
- 19. 在沒有dll的情況下使用libcURL的正確方法是什麼?
- 20. 有沒有任何方法可以在沒有計劃的情況下使用Test :: More中的diag()?
- 21. cocoalibspotify metatdata方法可以在沒有Spotify帳戶的情況下使用嗎?
- 22. 在沒有Xcode的情況下注冊iPhone以進行開發
- 23. 有沒有什麼辦法可以在不使用Ctrl鍵的情況下進行多重選擇
- 24. 有沒有什麼辦法可以在不使用表格的情況下做這個HTML佈局?
- 25. 他們有什麼方法可以在不使用src的情況下在IFRAME中放置內容
- 26. 有沒有一種方法可以在不使用flex的情況下在flash中嵌入自定義字體
- 27. 有沒有方法可以在不使用AVFoundation框架的情況下在iOS中錄製音頻?
- 28. 我可以在沒有用戶的情況下使用oauth2嗎?
- 29. 有沒有什麼方法可以在不創建GeoPoint的情況下獲得投影?
- 30. 有沒有方法可以在沒有按下Ctrl鍵的情況下在ObjectListView中進行多重選擇?
我建議習慣Squeak IDE。一旦你習慣了它並沒有那麼糟糕;事實上,我聽說與正常的寫入/編譯/運行週期相比,它實際上非常高效。 (我只是玩弄它,所以我不能保證它,但普遍的共識是Smalltalk>傳統的IDE)。 –