天天看點

松本行弘:我的程式設計人生

生平:

松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鳥取縣。1984年,就讀于築波大學第三學科資訊學系。2年後休學,成為末日聖徒耶稣基督教會的宣 講師。大學複學後,加入中田育男教授的研究室。1990年大學畢業。後在島根大學攻讀博士課程,修滿學分後退學,未獲學位。

現任株式會社Network應用通信研究所研究員、樂天株式會社樂天技術研究所研究員、Ruby association 理事長、Heroku首席構架師。

<a href="http://blog.jobbole.com/wp-content/uploads/2011/11/MatsumotoYukihir.jpeg"></a>

經曆篇:

高中時代:用自己設計的語言程式設計

第一次接觸電腦,是國小6年級。父親給我買了一個口袋型電腦L-Kit16,當時真是激動壞了。到了國中3年級,父親又給我買了Sharp PC-1210,這個時候我第一次知道“程式設計”這個概念。隻要發出指令,計算機就能按照你的指令進行操作,真是有意思極了!

我的父親,是建築公司的一個普通的上班族。他之是以買電腦,是用來計算建築資料的。沒想到這兩台電腦成了我的玩具(笑)。

回憶起小時候,感覺一天到晚都在看書。我家前面有一個書店,我天天都泡在那裡。有時候朋友來玩,我讓他到家裡來,他卻指着書店說:“那不是你家 嗎?”那時候什麼都看,科幻小說呀,漫畫呀。百科全書全都記在腦子裡。總之就是特别喜歡文字。實在沒東西看,就看藥品的說明書(笑)。

上了高中之後,就迷上計算機了。成天看計算機雜志。能讓計算機按照自己的訓示來運作,這比什麼都有意思。特别是對程式設計語言非常感興趣。當時對彙編語 言、Basic都不喜歡,不想用它們來程式設計(笑)。于是我就開始自己發明語言,然後用這種語言來程式設計,寫在筆記本上。不過這本筆記已經不知道去哪兒了,真 遺憾。當時連語言的名字都想好了。當然了,不是Ruby啦。不好意思說,哈哈。

大學時代:不是去圖書館就是去研究室

大學我考上了資訊科學學院。在那裡我接觸了許多在書中看到但從未使用過的軟體和語言。大學裡的老師都是我高中讀過的書的作者,簡直太不可思議了。不過,研究室裡我是最不聽話的,老是貓在那裡設計自己的語言(笑)。

當時是日本泡沫經濟崩潰的年代,但是我一點兒都沒有閑着。整天泡在圖書館裡,看了許許多多書。休息的時候就去電影院或者是書店(笑)。我不擅長運 動,也不關心身邊的人都在幹什麼。我從小就喜歡讀書,雖然最近拜網絡所賜,讀得少了(笑)。閱讀各領域的書籍,對我的成長影響很大。 另外,我還常常關在研究室了。比如通宵在研究室裡弄電腦,到了早上回家洗一下澡,然後再到研究室去(笑)。當時是80年代後期,研究室裡已經連上網絡了, 我常常看BBS、新聞什麼的。能接觸到很多聰明的人物,覺得非常有意思。

當時是計算機的黎明期。我父親是反對我考資訊科學學院的。“什麼計算機,什麼程式設計,當個興趣就得了。”不過我真是太喜歡計算機了。未來的出路我從未考慮過。可謂是義無反顧了。

經濟不景氣,開始開發Ruby

1990年畢業之後,我進了一家軟體公司。我找工作有一個原則:堅決不在東京工作。我從小在農村長大,不喜歡人多的地方。花1、2個小時去上班,那 簡直不可想象。我其實更适合在小地方工作,不過那樣的話可以選擇的公司就比較少。後來遇到濱松一家軟體公司招聘,我就去了那裡。

我的主要工作是公司内部OA軟體的開發。當時的電子郵件隻能發送文字,我就弄一個可以粘貼附件的軟體。有意思。公司一般會給我一個大緻的範圍,然後 讓我自由地去發揮。因為喜歡這個工作,是以常常加班到很晚才回家。當時的夢想就是一輩子做一個程式員。即使将來當爺爺了,也要繼續工作。

過了幾年,泡沫經濟崩潰的後續影響開始顯現出來。公司的業務一下子少了許多。時間非常充裕,于是我就想自己幹一點事情,開始開發Ruby。這些我都是在公司弄的,也和同僚交流過,同僚亦給我許多幫助。

1年之後,我去了另一家公司,叫做名古屋CAD vendor。因為原來那家公司的經營狀況已經非常不好了。雖然我對工作很滿意,環境呀、人際關系呀都很好,不過當時我結婚有了家庭,考慮的東西就會多一 些。萬一公司倒閉了,那就比較慘了。而且我也想趁自己比較有優勢的時候把自己推銷出去。當時能做面向對象的腳本語言的人還是比較少的。

1995年,松本行弘将Ruby公開于衆。反響極其熱烈。

理念篇:

還是當怪才比較好

很多人都比較奇怪,我的數學怎麼會那麼差。高中時我甚至考過全班最低分。“擅長計算機的人數學就一定好”,這隻是人們的臆想而已。

在日本的教育體制下,學生都被培養成面面俱到可又面面平庸的“綜合型”人才。不過,我遇到的成功人士,大多都是一些在某些方面特别強,但在某些方面 特别差的人。我的數學從來就是1(滿分為10分),一旦到了程式語言的考試,我則有取得1000分的自信(雖然滿分為100分)(笑)。 每個人的能力都有上限,綜合型人才往往是全面發展,而那些怪才往往專注于磨練他的專長。這樣的人走上社會之後,更容易成功。

我開發計算機語言的初衷

所謂軟體,其目的就是讓計算機為人類工作。正因為人類的大腦有一定的能力限度,是以需要讓計算機承擔大部分的工作,讓人腦空出來去解決更難的問題。是以我開發了ruby這樣面向對象的腳本語言。

我為什麼不自己創業

我是一個數學很差的人(笑)。讓我算錢,就更差了。很多人都會問我為什麼不自己做公司,這是因為我實在不擅長。我現在的工作,能讓我自由、專注地開發程式。這樣就足夠了。

程式設計人員不需要擅長數學

程式設計人員要做的其實就是傾聽客戶需求,寫下來,然後借助計算機語言讓計算機去執行相應的任務。這哪裡需要數學嘛?大家不要被表象所迷惑。算術反正有 電腦,不用愁。而在計算機的世界裡,比數學更重要的,是作為人本身所需要的一些技能。比如傾聽能力、了解力等。其中最重要的是溝通能力。

程式設計是一種體育運動

很多人年輕時都熱衷于體育運動,有些人上了年紀依然熱衷。很不巧,我從小就不擅長體育,不過我能了解那些體育愛好者的感受。體育能夠使人生變得豐富多彩。而程式設計其實與體育有着許多共同之處。 可能很多人覺得程式設計和體育根本不沾邊。不過,請你試着想一想,棋類常常被歸類為體育運動之一,這是為什麼呢?因為它其實是一種腦力運動。

說到程式設計和體育的共通點,第一,二者都需要通過反複練習才能獲得技術上的提升。要想成為一名優秀的程式員,知識和經驗都很重要。程式設計人員常常需要以苦為樂。

第二,程式設計對美和速度的追求,與體育相似。優秀的程式言對自己“作品”中蘊含的程式之美,非常執着。另外,程式員在進行性能調優時的測定行為,以及對自我瓶頸的突破,和遊泳以及田徑選手有類似之處。

程式設計是一種興趣

在日本,棒球愛好者可謂多如牛毛,可是真正成為專業棒球手的卻是屈指可數。大多數人都是因為興趣才接觸棒球的。同樣,有許多人愛好程式設計,于是世界上誕生了許多開源軟體。同時,解決程式bug的過程,和解謎的過程一樣,都是充滿驚喜的。

不過和專業的體育選手不同的是,很多專業程式員并不是因為喜愛程式設計才幹上這一行的。這一點,着實是比較悲哀的事。

程式設計是一種交流

在大家的印象裡,程式設計其實就是坐在計算機前敲打鍵盤。不過這個工作其實非常人性化。至今依然沒有出現能夠自我程式設計的計算機,這也說明了程式設計是一種人類活動,甚至可以說,隻有“人”才能程式設計。 此外,程式編寫出來是供給人類使用的。了解人的追求、人的感受,對于程式設計人員來說是非常重要的。另外,當一個團隊聯合進行程式設計工作時,團隊成員之間的溝通能力也是不可或缺的。

程式設計是一種創造

多年來,我對程式設計的熱愛從未有絲毫減少。其中最重要的原因是:程式設計是一種創造性的工作。 隻要有一台計算機,就能從無到有,建構出一個新的世界。程式設計的世界中,沒有重力、因果等等現實世界中的制約因素。如此自由的創造性活動,除程式設計外,别無他選。我能通過程式設計,創造出一個我想象中的世界。這是程式設計最大的魅力。

程式設計是一生的事業

和許多活動相比,程式設計不需要體力。如果你不去那些徹夜加班的公司,那基本上年齡和體力都不是問題。 程式設計更需要的是知識、經驗、判斷力等等,這些都不會因為年齡的增長而退化。換句話說,程式設計是可以幹一輩子的。這一點,和那些專業體育選手略有不同。

日本有一個說法:“35歲是程式員的退休年齡”。我的身邊的确有許多30歲左右就漸漸遠離程式設計的朋友。與其說是因為他們能力低下,不如說是社會因素 使然。在日本的IT界,優秀程式員的價值沒有得到充分的認可,再加上論資排輩的傳統以及職業價值的不平衡,35歲成為一個分水嶺。

繼續閱讀