編程語言極客Ola Bini:讓征服癌癥成為可能
編程語言會變得面目全非
你為什么對編程語言如此感興趣?
我從很小的時候就開始編程了,我學了很多編程語言。對于我來說,作為一名程序員,我認為最重要的工具就是編程語言,其他所有的一切,庫、 IDE、甚至操作系統(tǒng)都不是最重要的。編程語言會制約我,但也會指導我如何寫一個程序,如何解決一個具體問題。所以,對于我來說,如果可以控制一個編程語 言,也許就可以在很多不同的環(huán)境下優(yōu)化我的程序,可以優(yōu)化和團隊成員的溝通,可以讓我把一個問題描述得更清楚,甚至可以簡化我的代碼數(shù)量。比如50萬行的 java的代碼,有時可以用5000行ruby代碼就解決掉,這種區(qū)別是巨大的,更少的代碼就意味著更少的bug,也意味著代碼也更容易理解。這對于我來 說是最重要的,理解,并作出合理的決定。
你自己寫了一種語言Ioke/ai’oki/,你寫這個語言的初衷是什么?
我認為現(xiàn)在所有的語言都挺糟糕的。雖然有好一些的,也有差一些的,但是它們的層次都很低,都沒有達到理想中的效果。甚至最好的語言也有一些自身 的問題。我創(chuàng)造Ioke不是為了用它寫我下一個項目,它是我的一個實驗,我就是想看看如果我完全忽視性能和其他一些東西,我是否能創(chuàng)造出一種表現(xiàn)力更強的 語言。這就是我的初衷。然后我又創(chuàng)造了另外一種語言Seph,它也是一個試驗品,我想研究各種可能性。
這些語言第一無二的特點是什么?
最大的特點就是它們超級慢!但是非常靈活,就像是一塊粘土,怎么捏怎么弄都可以。所有東西在運行時都可以改,所有東西都是開放的。它是基于原型的語言,我認為基于原型的設計是很純凈的,比如Io, Smalltalk, Lisp, 以及Ruby。同時它還是一種面向JVM的動態(tài)語言,它有運行時宏命令,這個是很強大的,你在運行時就可以對程序進行修改。還有一個就是很多語言都會在自身上執(zhí)行,而Ioke所包含的幾乎是最少的,它的庫不多,因為所有的東西都可以用語言自身來實現(xiàn)。
你打算針對你對移動和可穿戴設備的趨勢寫一種更合適的語言嗎?
未來有可能。我打算創(chuàng)造的下一種語言也是一個試驗品,但都是對于編程語言表達能力的探索。所以剛才所說的一切都跟我眼前打算做的事沒有直接關 系。因為表達能力是第一步,而其他問題可以在以后慢慢解決。設計編程語言是一件很花時間的事情,在過去的一年半我都沒有時間做這件事,因為我一直都在忙一 個和癌癥相關的項目。今年我的工作重點是在互聯(lián)網(wǎng)隱私,安全,監(jiān)管這些問題上,所以要設計編程語言真的要擠時間。
你自己設計語言的最大收獲是什么?
我覺得首先是很有趣。說真的,我們真不應該低估從編程中獲得快樂這件事。我是個編程者,你看,我沒有說我的工作是個程序員。當我和客戶分開之后 我的工作也沒有停止,我在半夜也會讀書,也在想著怎么解決問題。作為一個編程者,我整天都在編程,如果這件事沒有樂趣,那我為什么還要這么做呢?設計語言的另一個樂趣是從零到有創(chuàng)造一個東西的感覺。這和寫一個新程序不一樣,一個新程序無疑是一樣嶄新的東西。但是創(chuàng)造一種編程語言實際上是 你創(chuàng)造了一種可以用來創(chuàng)造其他東西的工具。你制造了一個制造者。這個過程和寫書也有點像,你寫的書會完全反映你的想法。而編程語言也是同樣。
你建議其他程序員也設計一種自己的語言或者操作系統(tǒng)之類的嗎?
執(zhí)行語言和操作系統(tǒng)最重要的不是設計。我認為不是所有人都應該去設計自己的語言或者操作系統(tǒng)。但是我認為大家都應該去執(zhí)行語言,實現(xiàn)操作系統(tǒng)。 因為對于后者來說,一個程序員應該理解我們在操作系統(tǒng)上建立的各種層級,從機器的最底層,到最頂層的瀏覽器,中間的各個層都值得程序員好好理解。而對于前 者來說,編程語言是一種最重要的工具,理解它是如何工作的也很重要。但是我個人認為編程語言的重要性更勝一籌。
所有人都覺得你是一個極客,甚至你公司介紹你的頁面也是這么說的,中文對于GEEK的翻譯有點像極端主義者,你自己是怎么定義極客的?你在平時是個Hacker嗎?
我沒說過自己是極客,也沒把這個標簽往自己身上貼。別人說我是極客我覺得沒有關系,但是我很不喜歡被稱為傳統(tǒng)意義上的黑客(當然,我知道這個詞現(xiàn)在有了引申的意義)。同樣類似的情形還有這個詞amateur, 這個詞是個法語詞,它的本意是愛好者,但是在英語中它的意思變成了非專業(yè)的。
極客就是自己享受自己做的事,對于我來說就是技術,同時包含的意義還有對于細節(jié)的關注。喜歡和細節(jié)以及很多信息打交道,雖然很難解釋,但是就是 這樣一種感覺。如果你一直在寫程序,幾年來一直在完善一個產(chǎn)品,有上百萬行的代碼在那里,但是你仍然要全神貫注在每一行代碼上,而且你得知道每一行代碼在 整個系統(tǒng)中是如何工作的。所以這就要求你對每一行代碼極端地精雕細酌,而且還要時刻謹記整個大環(huán)境是什么樣的。我覺得這就是極客擅長做的事。無論是關于科 幻小說,還是什么的,這樣的精神的本源都是相同的。
Ruby 的作者松本行弘認為21世紀是屬于開源軟件的,你同意嗎?
我認為是20世紀來著,哈哈,開玩笑的。我希望松本是對的,但是在過去的5到10年中,云(面向服務器的架構)變得越來越普及,雖然開源一直都 在我們身邊,但是變得越來越無關緊要。因為如果你在自己的計算機上用開源軟件,這沒什么關系,但是如果你要用一個大家都在用的網(wǎng)站的話,開源就不那么重要 了,舉例來說,誰需要Google把Gmail開源呢?我認為這個趨勢正在繼續(xù),面向服務器的架構和云計算正讓開源變得越來越?jīng)]有用武之地。當然,對于庫 來說,開源無疑還是很好的,但是對于我們每天都在使用的東西,開源都不構成任何話題,我其實對此感到很難過。但是這似乎就是現(xiàn)實。
讓征服癌癥成為可能
關于癌癥的那個項目,可以簡要的向我們介紹一下嗎?
這個很難簡要的說明,要知道我把整個演講壓縮到一個小時都很苦難來著(笑)。癌癥并不是一種病,而是很多種病,直到不久以前,我們?nèi)匀徊幻靼谆?因在整個癌癥發(fā)展過程中扮演的角色。我們現(xiàn)在了解得更多了,因為基因組測序變得越來越簡單、廉價,為癌癥排序成為可能,從而分析癌癥的致病機理到底是什 么。一旦完成了為癌癥測序,我們就可以利用這些信息和研究信息以及臨床實驗信息進行比對,由此就能知道對于特定病人來說正確的治療方法是什么。這就是我們 所做的,我們把特定病人的癌癥基因信息拿出來,告訴病人最合適的治療方法是什么。這就要比現(xiàn)行的治療方法要好很多了,如果有人得了肺癌,那就按照肺癌方法 治療,如果有人的了胰腺癌,就按照胰腺癌方法治療。但是事實上,癌癥從哪個器官出現(xiàn)并沒有癌癥序列重要,所以有些治療胰腺癌的方法對于治療肺癌同樣適用 (當然,對于某些人來說)。所以我們要做的就是基于癌癥序列給病人提供更好的治療方案。
#p#
現(xiàn)在所有的信息都已經(jīng)到位了。再過幾年,病人只要打個噴嚏就可以做一次基因測序,現(xiàn)在我們會給患癌癥的病人做基因測序。在一兩年前,這都是不可 能的,但是在現(xiàn)在,這都是可以實現(xiàn)的了。我們在兩年前就開始了這個項目,而現(xiàn)在我們可以說是領先于世界的,這也是我們一直以來想達到的目標。很多其他公司 也開始了類似的研發(fā),但是我們現(xiàn)在至少領先于其他人一年的時間。這個系統(tǒng)其實有潛力成為在接下來十年都對相關領域產(chǎn)生重大影響的項目。
有具體的案例嗎?
卵巢癌的生存率在幾十年內(nèi)都沒有什么明顯提高,這都是因為對于防止這種癌癥復發(fā)一直依靠著試驗試錯法。而現(xiàn)在我們知道卵巢癌是一種異種疾病,癌 癥的特征會根據(jù)每個病人而有顯著不同。DNA測序和基因表達分析這樣的技術讓每個腫瘤都有自己的分子檔案,整合和解讀這些數(shù)據(jù),為每個病人都有自己個人化 的解決方案是很有挑戰(zhàn)性的工作。Clearity基金已經(jīng)建立了專業(yè)bono服務幫助醫(yī)師和他們的病人做出更加合理的選擇。
技術上你們解決了什么問題?
這個項目是由Annai主持的,MedTrust E2軟件系統(tǒng)建立在科學研究報告之上,從專業(yè)健康專家的臨床經(jīng)驗數(shù)據(jù)庫到具體病人具體腫瘤的藥物治療可行性報告,數(shù)據(jù)庫的來源不能不說是非常廣。MedTrust E2系統(tǒng)最強大的一點在于它極其靈活,可以吸收很多不同種類數(shù)據(jù)中的內(nèi)容,并輕松把數(shù)據(jù)和概念從一個環(huán)境中聯(lián)系到另一個環(huán)境中。E2是一個證據(jù)驅動,而非規(guī)則驅動的引擎。這讓這個系統(tǒng)變成了一個真正的可學習系統(tǒng)。
在這過程中你需要學習不少關于癌癥的知識吧?
當然!我?guī)ьI這個項目團隊一年零兩個月,在這期間,我從對分子生物學一無所知,到最后我的想法可以影響到生物科學家和基因科學家,我的同事要學 習的也有很多。因為我們的客戶知道自己要做什么,而我和我的同事則負責做的方法,具體要實現(xiàn)什么。但是要做到這些,就需要學習大量分子生物學的知識。我很 喜歡學習,所以整個項目對我來說都很有趣。
我們團隊有四個人,我是領隊,但是我們每個人都是開發(fā)者,每個人也都是專家,我們都是QA,我們也都做模型分析,我們四個人什么都干。雖然有點怪,但是最后的效果非常不錯。
原文鏈接:http://www.ituring.com.cn/article/55834