學習 Ruby 與 Rails 的最佳時機就是現在!

評論
評論

今年在台灣各式各樣的 Ruby 以及 Rails 社群活動如雨後春筍一般到處舉辦,Ruby 以及 Rails 究竟有什麼厲害之處?初學者們又該如何上手呢?

什麼是 Ruby?

RubyConfTaiwan (1)

Ruby 是一個源自於日本的程式語言,並且由於 Ruby on Rails 這套便於快速開發網頁應用程式的框架而在近年走紅,如果你從事網頁相關開發工作,我想大概已經聽過 Ruby on Rails 這套網頁框架,但或許你分不太出來 Ruby 以及 Rails 的差別,以及 Ruby 除了 Rails 之外、還能用來做些什麼?

與其他常見的程式語言相比,Ruby 具備了更有彈性的語法,在 Ruby 的哲學當中,通常要完成某個行為不一定只有一種方法,往往會有數種不同的方法讓開發者選擇。也因為這樣的彈性,通常開發者會透過 Ruby 設計「特定領域語言」(Domain Specific Lanauge)來解決問題,有點像是我們平常講的是中文、但是會透過中文定義一組針對「法律」相關問題的「法律語言」。

關於 Ruby 語言的設計哲學,我相當推薦下面這部由 Ruby 發明者 Matz 在 RubyConf 2012 於台北分享的影片:

而實際的 DSL 例子可以參考來自香港的講者 Francis 分享如何透過 Ruby 設計一個在 iPhone 上執行的網路爬蟲程式:

可想而見,除了 Rails 之外,Ruby 社群已經將其用到各種不同主題中,像是在今年的 RubyConf Taiwan 2014 中,便有針對生物資訊以及移動裝置開發分享的講者,甚至有一位講者分享他是如何透過 Ruby 來編織!

Ruby on Rails

rails1

不過當然,Ruby on Rails 還是多數人接觸 Ruby 語言的主要原因,同樣使用 DSL 的設計概念,Rails 標榜著以下兩個設計哲學:

1. 慣例大於設定(convention over configuration),在多數的情況下都使用 Rails 預設的設定,而減少手動去指定各項參數
2. 不重複(Don’t repeat yourself),盡量減少重複的程式碼複製貼上到各處,而用比較有架構、組織的方式重用

在開發上速度很快,加上 Rails DSL 的語法相當簡易,透過 Rails Girls 這樣的新手教學活動,幾乎在一天之內就可以做出簡單的網站。也因此很多人甚至常常開玩笑說會寫 Rails 不見得會寫 Ruby。

針對 Ruby 在 Rails 外還有哪些應用這個主題,LIVEhouse.in 在上週舉辦「Combo 8週連擊! LIVEhouse.in 2014 開發者聚會-四部曲(10/8)」活動,找來國內 Ruby 社群活躍的講者高見龍來與大家分享「Ruby 也能這樣寫」,會介紹 Ruby 在其它領域,包括系統管理、爬蟲工具,以及 iOS app 開發等應用,以下是活動的投影片:

為什麼現在是入門的好時機?

說了這麼多,作為一個長期的社群參與者以及 Ruby 語言的使用者,在今年當中我觀察到很多跡象,都顯示目前是大家尚未入門要學習的好時機。主要原因有三個:

廣泛地被大小企業採用

以前提到 Ruby 或 Rails 的使用狀況往往我們會想到的都是新創或網路公司的例子,但近年來越來越多傳統企業在面對網應用路開發需求時,也紛紛選擇 Rails 作為主要架構,像是在國內的部分,我們可以發現在社群的求職看板上,包含知名連鎖書局、紡織業等等的例子。

Ruby 以及 Rails 的效能有很大的進步

以往通常 Rails 開發者都會被其他語言的開發者嘲笑在速度上可能不佳,但在近期的改版當中,Ruby 2.1 以及 Rails 4.1 都有很大的效能進步,是有史以來最快的版本。

以往被嫌棄在記憶體使用肥大的問題也有具體的改善:

社群以及教育資源遍地開花

在台灣今年就有以下的活動:

而在針對企業方面,也有像五倍紅寶石這樣的單位專門針對 Rails 及 Ruby 提供企業教育訓練的服務。

如何開始?

別再猶豫了,趕快開始學習 Ruby 以及 Rails 吧!

自我揭露

從我第一次學習 Ruby 以及 Rails 開發已經有超過六年的時間,在這個標準下,很多人會認為我是 Ruby 語言的愛好者。我也曾在今年的 RubyConf Taiwan 以及 Rails Pacfic 中針對 Ruby 以及 Rails 相關主題做分享。不過,除了 Ruby 之外我也對許多語言感到好奇,以下是我在今年 RubyConf 針對 Go 語言以及 Ruby 整合方式、以及一些優缺點比較分享的影片:

相關文章

掌握 5 個基本概念,讓你寫出好 Code

我相信能建立一種心態架構,是能超越任何語言和函式庫,讓人一開始就能產生好的程式碼。這裡提出 5 點概念,記住這些原則,寫出好的程式碼將非難事。

【硬塞科技字典】什麼是資料科學(Data Science)?

資料科學是一個跨學科研究方法,顧名思義就是利用資料做出科學性的研究,而資料的判讀則與統計有很大的關連外,也會運用到程式設計、計算機科學、數學、甚至是設計等幾個專業。

普丁呼籲放棄西方軟體,莫斯科幾十萬台 PC 將不再使用微軟

目前俄羅斯以及普丁與西方的關係十分不理想,此前,總統普丁呼籲俄羅斯國內減少對國外科技公司產品的依賴,作為響應,首都莫斯科市將把所有的微軟軟體,替換為俄羅斯本國軟體。據彭博社報導,在此次莫斯科市分批替換微軟的產品,將涉及到幾十萬台個人電腦。

評論