Ruby之父松本行弘的編程人生

生平:
松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鳥取縣。1984年,就讀于筑波大學(xué)第三學(xué)科信息學(xué)系。2年后休學(xué),成為末日圣徒耶穌基督教會(huì)的宣講師。大學(xué)復(fù)學(xué)后,加入中田育男教授的研究室。1990年大學(xué)畢業(yè)。后在島根大學(xué)攻讀博士課程,修滿學(xué)分后退學(xué),未獲學(xué)位。
現(xiàn)任株式會(huì)社Network應(yīng)用通信研究所研究員、樂天株式會(huì)社樂天技術(shù)研究所研究員、Ruby association 理事長、Heroku首席構(gòu)架師。
推薦閱讀: 《松本行弘的程序世界》
經(jīng)歷篇:
高中時(shí)代:用自己設(shè)計(jì)的語言編程
第一次接觸電腦,是小學(xué)6年級(jí)。父親給我買了一個(gè)口袋型電腦L-Kit16,當(dāng)時(shí)真是激動(dòng)壞了。到了初中3年級(jí),父親又給我買了Sharp PC-1210,這個(gè)時(shí)候我第一次知道“編程”這個(gè)概念。只要發(fā)出指令,計(jì)算機(jī)就能按照你的指令進(jìn)行操作,真是有意思極了!
我的父親,是建筑公司的一個(gè)普通的上班族。他之所以買電腦,是用來計(jì)算建筑數(shù)據(jù)的。沒想到這兩臺(tái)電腦成了我的玩具(笑)。
回憶起小時(shí)候,感覺一天到晚都在看書。我家前面有一個(gè)書店,我天天都泡在那里。有時(shí)候朋友來玩,我讓他到家里來,他卻指著書店說:“那不是你家嗎?”那時(shí)候什么都看,科幻小說呀,漫畫呀。百科全書全都記在腦子里??傊褪翘貏e喜歡文字。實(shí)在沒東西看,就看藥品的說明書(笑)。
上了高中之后,就迷上計(jì)算機(jī)了。成天看計(jì)算機(jī)雜志。能讓計(jì)算機(jī)按照自己的指示來運(yùn)行,這比什么都有意思。特別是對(duì)編程語言非常感興趣。當(dāng)時(shí)對(duì)匯編語言、Basic都不喜歡,不想用它們來編程(笑)。于是我就開始自己發(fā)明語言,然后用這種語言來編程,寫在筆記本上。不過這本筆記已經(jīng)不知道去哪兒了,真遺憾。當(dāng)時(shí)連語言的名字都想好了。當(dāng)然了,不是Ruby啦。不好意思說,哈哈。
大學(xué)時(shí)代:不是去圖書館就是去研究室
大學(xué)我考上了信息科學(xué)學(xué)院。在那里我接觸了許多在書中看到但從未使用過的軟件和語言。大學(xué)里的老師都是我高中讀過的書的作者,簡直太不可思議了。不過,研究室里我是最不聽話的,老是貓?jiān)谀抢镌O(shè)計(jì)自己的語言(笑)。
當(dāng)時(shí)是日本泡沫經(jīng)濟(jì)崩潰的年代,但是我一點(diǎn)兒都沒有閑著。整天泡在圖書館里,看了許許多多書。休息的時(shí)候就去電影院或者是書店(笑)。我不擅長運(yùn)動(dòng),也不關(guān)心身邊的人都在干什么。我從小就喜歡讀書,雖然最近拜網(wǎng)絡(luò)所賜,讀得少了(笑)。閱讀各領(lǐng)域的書籍,對(duì)我的成長影響很大。 另外,我還常常關(guān)在研究室了。比如通宵在研究室里弄電腦,到了早上回家洗一下澡,然后再到研究室去(笑)。當(dāng)時(shí)是80年代后期,研究室里已經(jīng)連上網(wǎng)絡(luò)了,我常??碆BS、新聞什么的。能接觸到很多聰明的人物,覺得非常有意思。
當(dāng)時(shí)是計(jì)算機(jī)的黎明期。我父親是反對(duì)我考信息科學(xué)學(xué)院的?!笆裁从?jì)算機(jī),什么編程,當(dāng)個(gè)興趣就得了?!辈贿^我真是太喜歡計(jì)算機(jī)了。未來的出路我從未考慮過??芍^是義無反顧了。
經(jīng)濟(jì)不景氣,開始開發(fā)Ruby
1990年畢業(yè)之后,我進(jìn)了一家軟件公司。我找工作有一個(gè)原則:堅(jiān)決不在東京工作。我從小在農(nóng)村長大,不喜歡人多的地方。花1、2個(gè)小時(shí)去上班,那簡直不可想象。我其實(shí)更適合在小地方工作,不過那樣的話可以選擇的公司就比較少。后來遇到濱松一家軟件公司招聘,我就去了那里。
我的主要工作是公司內(nèi)部OA軟件的開發(fā)。當(dāng)時(shí)的電子郵件只能發(fā)送文字,我就弄一個(gè)可以粘貼附件的軟件。有意思。公司一般會(huì)給我一個(gè)大致的范圍,然后讓我自由地去發(fā)揮。因?yàn)橄矚g這個(gè)工作,所以常常加班到很晚才回家。當(dāng)時(shí)的夢想就是一輩子做一個(gè)程序員。即使將來當(dāng)爺爺了,也要繼續(xù)工作。
過了幾年,泡沫經(jīng)濟(jì)崩潰的后續(xù)影響開始顯現(xiàn)出來。公司的業(yè)務(wù)一下子少了許多。時(shí)間非常充裕,于是我就想自己干一點(diǎn)事情,開始開發(fā)Ruby。這些我都是在公司弄的,也和同事交流過,同事亦給我許多幫助。
1年之后,我去了另一家公司,叫做名古屋CAD vendor。因?yàn)樵瓉砟羌夜镜慕?jīng)營狀況已經(jīng)非常不好了。雖然我對(duì)工作很滿意,環(huán)境呀、人際關(guān)系呀都很好,不過當(dāng)時(shí)我結(jié)婚有了家庭,考慮的東西就會(huì)多一些。萬一公司倒閉了,那就比較慘了。而且我也想趁自己比較有優(yōu)勢的時(shí)候把自己推銷出去。當(dāng)時(shí)能做面向?qū)ο蟮哪_本語言的人還是比較少的。
1995年,松本行弘將Ruby公開于眾。反響極其熱烈。
理念篇:
還是當(dāng)怪才比較好
很多人都比較奇怪,我的數(shù)學(xué)怎么會(huì)那么差。高中時(shí)我甚至考過全班最低分?!吧瞄L計(jì)算機(jī)的人數(shù)學(xué)就一定好”,這只是人們的臆想而已。
在日本的教育體制下,學(xué)生都被培養(yǎng)成面面俱到可又面面平庸的“綜合型”人才。不過,我遇到的成功人士,大多都是一些在某些方面特別強(qiáng),但在某些方面特別差的人。我的數(shù)學(xué)從來就是1(滿分為10分),一旦到了程序語言的考試,我則有取得1000分的自信(雖然滿分為100分)(笑)。 每個(gè)人的能力都有上限,綜合型人才往往是全面發(fā)展,而那些怪才往往專注于磨練他的專長。這樣的人走上社會(huì)之后,更容易成功。
我開發(fā)計(jì)算機(jī)語言的初衷
所謂軟件,其目的就是讓計(jì)算機(jī)為人類工作。正因?yàn)槿祟惖拇竽X有一定的能力限度,所以需要讓計(jì)算機(jī)承擔(dān)大部分的工作,讓人腦空出來去解決更難的問題。因此我開發(fā)了ruby這樣面向?qū)ο蟮哪_本語言。
我為什么不自己創(chuàng)業(yè)
我是一個(gè)數(shù)學(xué)很差的人(笑)。讓我算錢,就更差了。很多人都會(huì)問我為什么不自己做公司,這是因?yàn)槲覍?shí)在不擅長。我現(xiàn)在的工作,能讓我自由、專注地開發(fā)程序。這樣就足夠了。
編程人員不需要擅長數(shù)學(xué)
編程人員要做的其實(shí)就是傾聽客戶需求,寫下來,然后借助計(jì)算機(jī)語言讓計(jì)算機(jī)去執(zhí)行相應(yīng)的任務(wù)。這哪里需要數(shù)學(xué)嘛?大家不要被表象所迷惑。算術(shù)反正有計(jì)算器,不用愁。而在計(jì)算機(jī)的世界里,比數(shù)學(xué)更重要的,是作為人本身所需要的一些技能。比如傾聽能力、理解力等。其中最重要的是溝通能力。
編程是一種體育運(yùn)動(dòng)
很多人年輕時(shí)都熱衷于體育運(yùn)動(dòng),有些人上了年紀(jì)依然熱衷。很不巧,我從小就不擅長體育,不過我能理解那些體育愛好者的感受。體育能夠使人生變得豐富多彩。而編程其實(shí)與體育有著許多共同之處。 可能很多人覺得編程和體育根本不沾邊。不過,請(qǐng)你試著想一想,棋類常常被歸類為體育運(yùn)動(dòng)之一,這是為什么呢?因?yàn)樗鋵?shí)是一種腦力運(yùn)動(dòng)。
說到編程和體育的共通點(diǎn)
第一,二者都需要通過反復(fù)練習(xí)才能獲得技術(shù)上的提升。要想成為一名優(yōu)秀的程序員,知識(shí)和經(jīng)驗(yàn)都很重要。編程人員常常需要以苦為樂。
第二,編程對(duì)美和速度的追求,與體育相似。優(yōu)秀的程序言對(duì)自己“作品”中蘊(yùn)含的程序之美,非常執(zhí)著。另外,程序員在進(jìn)行性能調(diào)優(yōu)時(shí)的測定行為,以及對(duì)自我瓶頸的突破,和游泳以及田徑選手有類似之處。
編程是一種興趣
在日本,棒球愛好者可謂多如牛毛,可是真正成為專業(yè)棒球手的卻是屈指可數(shù)。大多數(shù)人都是因?yàn)榕d趣才接觸棒球的。同樣,有許多人愛好編程,于是世界上誕生了許多開源軟件。同時(shí),解決程序bug的過程,和解謎的過程一樣,都是充滿驚喜的。
不過和專業(yè)的體育選手不同的是,很多專業(yè)程序員并不是因?yàn)橄矏劬幊滩鸥缮线@一行的。這一點(diǎn),著實(shí)是比較悲哀的事。
編程是一種交流
在大家的印象里,編程其實(shí)就是坐在計(jì)算機(jī)前敲打鍵盤。不過這個(gè)工作其實(shí)非常人性化。至今依然沒有出現(xiàn)能夠自我編程的計(jì)算機(jī),這也說明了編程是一種人類活動(dòng),甚至可以說,只有“人”才能編程。 此外,程序編寫出來是供給人類使用的。理解人的追求、人的感受,對(duì)于編程人員來說是非常重要的。另外,當(dāng)一個(gè)團(tuán)隊(duì)聯(lián)合進(jìn)行編程工作時(shí),團(tuán)隊(duì)成員之間的溝通能力也是不可或缺的。
編程是一種創(chuàng)造
多年來,我對(duì)編程的熱愛從未有絲毫減少。其中最重要的原因是:編程是一種創(chuàng)造性的工作。 只要有一臺(tái)計(jì)算機(jī),就能從無到有,構(gòu)建出一個(gè)新的世界。編程的世界中,沒有重力、因果等等現(xiàn)實(shí)世界中的制約因素。如此自由的創(chuàng)造性活動(dòng),除編程外,別無他選。我能通過編程,創(chuàng)造出一個(gè)我想象中的世界。這是編程最大的魅力。
編程是一生的事業(yè)
和許多活動(dòng)相比,編程不需要體力。如果你不去那些徹夜加班的公司,那基本上年齡和體力都不是問題。 編程更需要的是知識(shí)、經(jīng)驗(yàn)、判斷力等等,這些都不會(huì)因?yàn)槟挲g的增長而退化。換句話說,編程是可以干一輩子的。這一點(diǎn),和那些專業(yè)體育選手略有不同。
日本有一個(gè)說法:“35歲是程序員的退休年齡”。我的身邊的確有許多30歲左右就漸漸遠(yuǎn)離編程的朋友。與其說是因?yàn)樗麄兡芰Φ拖?,不如說是社會(huì)因素使然。在日本的IT界,優(yōu)秀程序員的價(jià)值沒有得到充分的認(rèn)可,再加上論資排輩的傳統(tǒng)以及職業(yè)價(jià)值的不平衡,35歲成為一個(gè)分水嶺。
實(shí)際上,國外許多著名的編程人員即使到了暮年也依然活躍在第一線。我的大學(xué)導(dǎo)師,退休之后依然高產(chǎn),因?yàn)橥诵菔顾麤]有雜事的干擾,能夠?qū)P闹轮镜馗伤敫傻墓ぷ?。干一輩子編程,也是我的夢想?編程本來就是一件有趣的事。因?yàn)橛X得有趣,所以進(jìn)步很快,能編出優(yōu)秀的語言來。如果你覺得編程只是一種謀生手段的話,那還是趁早辭職吧。快樂編程能使你的人生碩果累累,我相信。
原文:http://www.ituring.com.cn/article/details/508
【編輯推薦】