2010-07-26 159 views
16

我是ASP.NET開發人員。我想學習微軟的網頁開發技術和其他語言。 我聽說過兩種語言,但我不知道哪一種更好,或者如何優先考慮哪種語言,特別是clojure是新的。clojure與紅寶石

任何人都可以幫我解釋爲什麼要選擇其中的一個嗎?

謝謝。

+0

這是比較蘋果橙子 – GabiMe 2010-07-26 13:28:34

+1

來自.NET,它可能會更容易讓你學習Ruby。 – NullUserException 2010-07-26 13:30:14

+1

您最終可以在表格中添加更多選項:Scala和F#都以某種方式「處於」Clojure和Ruby之間。 – 2012-08-21 12:52:35

回答

1

雖然我偏愛Rails上的Django框架,但Ruby是一種很好的語言。我發現使用解釋型語言的一件事是他們模糊的線程實現。在Ruby和Python中,解釋器一次只能處理一個線程。

就clojure而言,想一想當你嘗試使用它時圖書館會有多大。來自.Net你已經有了一個巨大的庫。在這一點上,Python和Ruby相當成熟,你可以找到大部分你可以想象的擴展。在沒有它的情況下,大型圖書館是理所當然的。轉換之前看一下.Net nuke。沒有使用它,但它應該是.Net的模型/查看器層。

3

從ASP切換到Ruby可能比切換到Clojure更容易,它也有更大的社區和生態系統。但是,如果您對函數式編程和/或花式併發功能感興趣,則應該給Clojure一個鏡頭。

+0

你可以讓Clojure爲你提供整個Java社區和生態系統......你可以爭論定義,但在實踐中你會得到很多好處 – mikera 2011-02-17 00:38:57

19

如果您的目標是完成任務並重用成熟的庫,Ruby顯然會爲您提供更好的回報。考慮到Web開發,它必須擁有最具活力的生態系統之一。新東西的數量很大,而且最重要的是,質量往往令人驚歎。

它有一個非常不錯的package distribution system,和一些工具,使各種級別的實際網絡開發輕而易舉。

在你有重量級的Web框架:

  • Rails,你都一定聽說過。這可能是當今大型社區和智能設計之間最好的妥協方案之一。其他人會在我看來被Django的,但它是一個Python框架
  • Merb,這是在完全成熟的框架部

打火機替代你有一噸較輕的,如Sinatra,這可能是我見過的最優雅的小型網頁框架之一,或者是Camping,它使用起來很小且很有趣。

這只是開始。無論是ORM,模板引擎,還是其他任何你想要與它相關的網站,你都有很多優質的選擇。

在紅寶石消極的一面:

  • 這是一個非常密集的語言,有很多東西需要學習,併爲「神奇」構建一個獨特的傾斜。它非常漂亮,但它遠非最簡單的語言。
  • 速度很慢。如果你想做任何需要性能的東西,ruby可能不是你需要的語言。這可能是也可能不是問題,取決於你想要做什麼
  • 它沒有像「網絡編程」那樣多的「常規編程」庫,儘管它顯然不是沙漠。像python這樣的語言如果你不參與web編程,它的庫的範圍更廣。

Clojure是一個完全不同的野獸。這是一門非常新的語言,它完全實用。如果你以前從未以功能性風格進行過編程,那麼這可能是一種範式轉變,可能會使你的工作效率下降一段時間,但在這個過程中你幾乎肯定會學到很多東西。

它也是一個lisp,和函數式編程一樣,它可能意味着要學習很多新東西,但是在這個過程結束時會有很多啓發。

這是一個非常優雅的語言,一個非常活躍的社區。它的速度也比ruby快很多,而且新版本的1.2版本只會更好。

所以,從積極的一面:

  • 這是一個聰明的語言。包含很多有趣的想法,特別是關於併發性。它不是面向對象的
  • 它對於動態語言來說非常快速
  • 它運行在JVM上,並且具有非常強大且易於使用的帶有Java的interop系統。這基本上意味着您擁有整個Java生態系統供您使用。

在消極的一面:

  • 這是非常新的。這本身並不是一個缺點,但是它可能會帶來其他麻煩。
  • 它很少有很好的集成和思想庫。這是我認爲最有害的一點。你基本上擁有你在java世界中所需要的一切,但解決方案可能很難看。您可能想在流程中編寫自己的包裝庫,但這需要時間。
  • 這不是你所知道的一切。它不是面向對象的,它不是必要的,它沒有像古典C語法那樣的東西。所以,這取決於你的其他語言的經驗,這可能需要很長的時間來學習

所以摘要:

如果你想在一個非常舒適的environnment學習新的東西,而不必建立東西的可能性藉助成熟的圖書館非常快速地選擇紅寶石。

如果你想學習甚至更​​多新東西,你不介意在一個全新的領域,最終花更多的時間去做事情,並且你想參與一個可能正在修改的社區我們關於編程思考的方式,雖然黑客入侵和在這個過程中玩得開心,選擇clojure;)

+0

我同意如果你只有一個網站完成ruby。使用Clojure,你會學到更多。 Clojure中的網絡資源正在快速開發新的框架,基於事件的服務器,模板化的新思路...... Clojure非常適合使用關鍵值存儲庫,因爲它幾乎像普通數據庫一樣感覺所以你不需要OO到什麼數據庫轉換框架。 Clojure作爲普通的purpess編程語言更具有優勢,因爲它更快速,並且有更多的庫。 – nickik 2010-07-26 14:25:58

+0

我同意Clojure可以從一些流行的庫/框架中獲得很多,但我認爲我看到的可用代碼更清晰。正如另一位評論者曾經說過的,Ruby擁有大量可用的「與Fugly內部關係」的庫。它們可能適合您的需要,但您必須遵守其代碼風格,可能有或可能不存在巨大的效率問題,並且可能需要在Rails下一版本發佈時進行更新(請記住,需要更新Rails出於安全目的,所以你需要推進或獲得LTS版本)。 Clojure庫對我來說更像是乾淨的代碼。 – jm0 2013-12-18 22:13:45