明確的可替代品
在過去的這些年,有兩個動態語言對于新的創業項目來說變得十分受寵:Python and Ruby。這兩個語言實際上有非常多相似的地方?,F在Python因為后臺apps而著名(因為NLP, biotech, APIs, SOA的因素 )而另一方方面,Ruby因為面向用戶的apps而著名。盡管這兩個語言都受到了一樣的限制(主要是性能跟并發性),但是他們的核心價值和社區有著不一樣的專注點。
Python
理念:
只有一種顯而易見的做事方法
代碼要漂亮簡潔和明確
文檔是關鍵
有較強的語言設計引導
個人觀點:
作為一個更喜歡ruby的人來說,我常常嫉妒python項目文檔的質量。同時python設計的初衷——給你一個正確的編程方式卻又讓我又愛又恨。通常這一初衷對于團隊來說很好,但某些時候可能令人抓狂。
在某些領域python有很多優秀的庫,并且這些庫和你想解決的問題有關,這種情況下python可能是最好的選擇。python開發者知道怎樣去討論交流他們的代碼。他們用文檔記錄所做的事情并且用面向過程來描述他們務實的方法。
但是python在互聯網流行前就已經存在,如果你關注的是并發和高吞吐量,那么這個并發性很差的動態解釋語言可能不是一個很好的選擇。
python主要吸引的是那些想要一個現代但通過充分驗證的語言的更加務實和經驗豐富的全棧開發者。
Ruby/Ruby on Rails
理念:
為人而不是機器而設計的Designed for humans, not machines
極端的靈活性:如果陷入困境的話,是你的原因,那是你
一切力求簡單、優雅并充滿樂趣
DSL至上,盡DSL
測試非常重要
事情變化很快,保持學習
激情活力的社區
個人意見:
就我而言,Ruby是我幾年來的首選語言。你會發現令人難以置信的、大量的Ruby開源代碼。Rails實在是一個了不起的Web框架,如果你知道如何使用工具的話它讓使大多數的Web項目容易實現。
但靈活性和過快的開發周期也有缺點。隨時準備在你的代碼上投入大量時間以保持其更新以及分離廢棄老的庫。如果不能依靠緩存,一個成功應用的吞吐量往往被缺乏良好的并發支持限制。
Ruby開發者主要是用Rails開發,所以與框架特性相比基本不會去深入核心語言本身的特性。他們往往是充滿好奇心且機會主義的(以一個很好的方式),有些實用主義,關心代碼質量/結構和測試覆蓋率。Rails開發者早期采用它的典型原因是由于該框架本身默認使用的一些新技術(coffeescript、turbolinks、CSS預處理器……)。
Ruby和Rails主要吸引了那些想把事情做得快而優雅的開發者。相比于底層計算細節,這些開發者往往是以產品導向的,他們更關心的目的和客戶價值的實現。