7

我想大家都已經聽說了有關some key developers leaving the Dynamic Languages team的消息,因爲他們認爲這是對微軟動態語言的支持不足。爲IronRuby和IronPython打造案例

我很喜歡Python,並嘗試經常使用它。所以,擴展來說,我關心IronPython並希望看到它繼續發展。我相信許多人對IronRuby感覺一樣。但是我還是不太明白的是.NET開發人員爲什麼要關心IronRuby和IronPython?

如果您要致函微軟,要求他們繼續支持和開發DLR和Iron語言,您會使用哪些參數?

如果您要說服您的僱主承諾開發人員爲IronPython或IronRuby尚未開發的社區支持版本做出貢獻,那麼您如何在業務價值方面對其進行合理化?

這裏有幾個有趣的使用情況,我能想出的,但如果我在那裏經理琢磨上面的問題,我可能不會發現他們引人注目:

  1. 嵌入式腳本更大型應用程序中的語言:一個有效的用例,但它對於大多數開發人員來說似乎是一個小衆場景。
  2. 測試和測試自動化: Ruby特別提供了豐富的精選測試工具和庫,並且通過IronRuby讓它們可用於.NET將會很好。但似乎等效的.NET庫正在填補這一空白,例如SpecFlowSelenium's WebDriver
  3. 在Microsoft堆棧上運行現有框架:如果IronRuby使Ruby on Rails能夠在具有IIS和MS SQL的Windows上運行,這可能會鼓勵在Microsoft堆棧上標準化的商店採用RoR。

任何人都能想到更好的東西嗎?

回答

5

你寫有正確的,我會添加一些更多的子彈:

  • 使用交互式控制檯的方式快速瀏覽/測試。
  • 由於在IronRuby/IronPython中開發速度更快,因此您可以使用它來編寫POC並稍後在C#中實現真正的應用程序或您正在使用的任何應用程序。
  • 在IronRuby中實現DSL並從靜態語言中使用它們。
  • 向靜態語言應用程序添加動態功能(例如,REPL控制檯)。
  • 完形。
  • 對於Rubyists:在IronRuby中編寫WPF和Silverlight(也可能是WP7應用程序)。
+0

謝謝,我在你的博客上發生的事,在發佈之前研究這個問題的答案,而且我注意到你是IronRuby的堅定擁護者。所以+1花時間在這裏回覆,謝謝。不幸的是,根據這個問題的不受歡迎程度和我在網上看到的關於這個問題的一般「meh」來看,似乎還沒有提出一個強有力的和有說服力的論點。如果有你的背景的人會設法表達一個更明確的答案,那將是非常棒的。 – Mhmmd 2010-08-18 20:43:34

+0

嗯,我不認爲有一個「明確的答案」。 Ruby就像C#一樣是一門編程語言,無論你使用C#做什麼,甚至更多,你都可以使用它。 但是,IronRuby有點問題,因爲.NET開發人員不願意停止使用C#,所以您必須將IronRuby作爲一種工具而不是完整的編程語言。作爲一個工具,我認爲你的子彈加上我的是很有意義的。在我看來,它是一個非常強大的工具。 – 2010-08-18 23:14:19

2

我不會低估將它們中的一個嵌入到大型應用程序中的價值。我已經使用Ruby的元編程功能來修改應用程序的內部組件,以便訪問通常很難訪問的內容(這對於事件尤其如此;我可以輕鬆地添加一個臨時外部掛鉤來手動引發事件測試而不是實際修改和重新編譯C#源代碼)。這讓我可以更輕鬆地查找錯誤並重現棘手的情況。它還讓我將各種代碼原型化,然後將其編入單元測試或新的類中。

此外,它可以用於QA手動測試儀。常見任務可以合併到自己可以運行的腳本中。

0

輕量級腳本是在.Net工具包中使用動態嵌入語言的一個非常有說服力的理由。

我公司做科學儀器軟件。數據採集​​和分析都是在框架應用程序中使用腳本完成的。這使我們能夠對客戶的不同需求做出快速響應。

我們一直在評估升級軟件的技術,所以我們不必維護自己的腳本語言。我看着Qt/PyQt,但是當它賣給諾基亞的時候卻冷得要命。我決定等待IronPython如何成熟。 .Net4和C#4出來後,我決定使用IronPython。

我想現在我可能做出了錯誤的決定,並且正在考慮返回到Qt/PyQt。那是因爲一個令人信服的理由嗎?