Inside 硬塞的網路趨勢觀察

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

Richard 十月 15, 2014

今年在台灣各式各樣的 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 整合方式、以及一些優缺點比較分享的影片:

About Author

Richard

平日關注於社群媒體以及行動上網的相關話題,熱愛技術。近日主要工作為開發iOS的應用程式,歡迎各位讀者與我交流。Twitter/Facebook: @dlackty、Email: [email protected] View all posts by Richard →

發表迴響