iT邦幫忙

DAY 2
3

Ruby女孩:10萬.times { puts "為什麼?" }系列 第 2

Ruby女孩(2):Matz為什麼要創造Ruby?

  • 分享至 

  • xImage
  •  

Matz是誰?他是Ruby的爸爸-Yukihiro Matsumoto(松本行弘),也是我要讀的這本【The Ruby Programming Language】的原著作者之一。英語系的Ruby社群,都叫他Matz。

那究竟...「Matz為什麼要發明Ruby這個程式語言呢?」

【The Ruby Programming Language】p.3 節錄一段Matz所敘:

『發明Ruby之前,我學習過許多程式語言,但是沒有一個可以完全滿足我,他們不是太醜陋,就是太苛刻、太複雜或者太簡單。身為一個程式員,我想要發明一個能夠滿足我自己的語言。......Ruby語言的發展過程中,我將所有精力都用在讓編程更快速以及更容易。......多數程式員都覺得Ruby是一個優雅並且容易使用的語言,使用它來撰寫程式是一件令人愉快的事。』(......有省略一些字句)

確實,某樣東西的發明,一開始可能都只是為了解決個人的困擾,而Ruby的發明,讓許多程式員很喜歡,書中提到Matz的Ruby設計理念,是希望Ruby中的所有功能,都能按照一般程式員(包含Matz本人)所預期的運作方式而設計

第一次看到這句**『都能按照一般程式員(包含Matz本人)所預期的運作方式而設計』**時,還不太能體會他的意境,畢竟自己本身並非本科生,沒有碰過其他語言。但,因緣際會參加了今年日本的Ruby大型研討會-Ruby Kaigi 2014時,聽到了Matz的Keynote中一句話,突然間頓悟了XD

Matz在介紹Ruby3.0的構想時說到一句(約在影片33分20秒處):

『Computer, You should know me!!!』

『Computer, You should know me!!!』

『Computer, You should know me!!!』

(當時Matz是說日文,而且沒有說三遍XD,但因為對我來說太震撼了,所以寫三遍XD!我是從翻譯機裡聽到的,懂日文的朋友可以幫我聽聽翻譯機翻得對不對XD)

Yes

對呀,程式語言是我們跟電腦溝通的語言,電腦也是人類發明的,那我們用接近人類自己的語言,讓電腦來理解我,應該很合理才對呀!

說半天,很想趕快體會看看,什麼叫做接近人類的語言?讓我們先來欣賞幾段簡單的Ruby的程式碼:

3.times {print "Ruby ❤!"}

這行程式執行結果是 #=> Ruby ❤!Ruby ❤!Ruby ❤!





1.upto(9) {|num| print num}

這行程式執行結果是 #=> 123456789

確實好像讀得懂英文就可以讀懂它在幹嘛了!第一個說要『印出三次(3.times)的Ruby❤!』、第二個說要『從1印到9』,果然有符合用接近人類自己的語言,讓電腦來理解自己!

這本書的第一章是概述,簡略說明Ruby特色,我會在下一篇文章中開始進入Ruby的語彙結構,我想,先了解Ruby這語言怎麼會誕生,再開始深入探討,應該會更有感受,keep going!。

今天是第二天,想對自己說:

Do a little more of what you want to do every day, until your idea becomes what's real. -Gwen Elliot

一天寫一點程式、看一點書,持續下去,理想會實現的!

延伸閱讀:關於Ruby,這是Ruby中文官方網站,內有提到Matz理念,以及Ruby成長概況等。


上一篇
Ruby女孩(1):為什麼選擇Ruby?
下一篇
Ruby女孩(3):我該怎麼try Ruby的語法?
系列文
Ruby女孩:10萬.times { puts "為什麼?" }30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
SunAllen
iT邦研究生 1 級 ‧ 2014-10-02 00:35:06

看不懂,但寫的很棒!

0
otiann
iT邦新手 2 級 ‧ 2014-10-02 00:39:34

@sunallen 阿不好意思><是哪個地方不懂呢?我試試再寫清楚一點!

0
逮丸逮丸
iT邦大師 1 級 ‧ 2014-10-02 09:42:20

同意一樓的第二句話。連排版都很仔細。
所貼的程式碼可用irb來跑或寫成script檔來執行,
或者用 try ruby 就可跑出。
沒有說明就可能一時困惑。

0
otiann
iT邦新手 2 級 ‧ 2014-10-02 11:38:58

@twtw 阿我懂了,我應該要交代一下怎麼試跑ruby程式碼!謝謝你的提醒啊!我下一篇會先說明這部分!

0
vinn
iT邦新手 5 級 ‧ 2014-10-02 16:19:23

推推,期待接下來的文章~!

0
otiann
iT邦新手 2 級 ‧ 2014-10-02 17:01:51

@vinn 謝謝XDD這id好眼熟啊XDD

0
wilson1966
iT邦研究生 1 級 ‧ 2014-10-06 13:16:19

看起來RUBY 好像不錯的樣子

0
otiann
iT邦新手 2 級 ‧ 2014-10-06 18:06:01

@wilson1966 哈哈Ruby很不錯呀!雖然我還沒學精通~但至少知道學習Ruby不孤單,超多社群在協助學習!一起學啊XDD

0
stagecoach
iT邦新手 5 級 ‧ 2015-10-04 20:25:19

我同學寫了十多年的ruby,可我一直沒興趣,反而因為你介紹ruby的方式,讓我也想一窺堂奧!

0
stagecoach
iT邦新手 5 級 ‧ 2015-10-22 09:54:37

請問一下,內文中的1.upto(9) {|num| print num},num兩邊的絕對值符號要怎麼打出來呢??

我要留言

立即登入留言