新科技速遞
編程已經成為各行各業不可或缺的技術,編程語言之多,令人眼花繚亂,從主機語言到近代的物件導向,編程語言經常了多代的更迭。
編程語言百花齊放,從最初的Visual Basic的快速開發工具,以至後來相繼出現物件導向的Java,Web 流行的腳本語言PHP,以至自如處理數學函式Python,各有不同用途,但在性能不佳,尤其數據科學、統計預測和模擬運算,以至人工智能模型,一直沒兩全美的解決方案。
近年編程開始普遍,不少數據科學家,均從學習高階的語言開始,所謂「高階」(High Level)是指高度抽象化語言,開發時不用擔心系統各種參數,類似R 語言就可快速開發統計,人工智能和IOT又令Python和MicroPython等大受歡迎,皆因為用戶毋須操心各項系統底層的資源。不過實際投產時,工程人員多以低階語言再開發,不少就是基於性能的考慮。
易用性能不可兼備
上述兩難在於易用性和性能之間抉擇,魚與熊掌,不可兼得。程式語言大致可分兩類:一類具備簡單開發環境,較短學習曲線,可供數據科學家和社會科學家、甚至業餘開發人士,首先以高階工具分析和模擬。
另一類屬於底層代碼,可充分利用記憶體層次結構,確保能充分利硬件和處理器的運算能力。以實際的應用來說,以 Python 之類高階語言開發應用,用戶可比較容易理解語法,以及交互能力,迅速為程式除錯和測試。測試版可解決簡單問題和作為概念驗證,但是如果想擴展到實際應用,或者大模型使用,必須考慮性能和記憶體配置,熟悉性能的企業都以高性能語言編寫,類似C或C++開發。
Julia數據科學救星
2012 年,麻省理工學院(MIT)研究人員推出了一種開源語言Julia,可兼具簡化開發環境和高性能的優勢,獲得全球多家藥廠用於新藥開發,最近更獲得融資。
Julia 語言設計的初心,就是希望創造一種語言,同時可針對電腦科學專家的嚴謹要求,又可在實際開發時令使用過 R、Matlab、SAS 和 Python 之類工具,亦可輕鬆上手。MIT利用Julia開發了針對人工智能「Gen」的建模語言,以簡化開發視覺運算、機械人、統計機率,其至預測性分析。
醫藥領域初試啼聲
Julia 程式語言開源後,全球已錄得達 2900 多萬次下載量,GitHub獲3萬5千顆星星,已有數千位開源開發者向 Julia貢獻源碼,全球超過 1500 家大學正教授Julia,幾乎包括電算領域上最頂尖的大學。
不過全球超過 1 萬家大公司正採用 Julia 語言,包括不少藥廠,包括Moderna、輝瑞、阿斯利康,用於新藥和新冠肺炎的新藥開發研究,Julia的開發團隊初期缺乏經費,向多家藥廠提供顧問,同時也顯示出其應用的潛力,其他如貝萊德、谷歌、英特爾、微軟、NASA、聯邦航空管理局以及紐約聯邦儲備銀行也是Julia 的用戶。
初輪融資長期發展
2012年,Julia的團隊建立初創Julia Computing,以長期發展Julia功能。上周Julia Computing終於完成了2400 萬美元 A 輪融資。Dorilton Ventures 領投,其他投資者包括 Menlo Ventures、General Catalyst 以及 HighSage Ventures 。此外,Snowflake前行政總裁Bob Muglia加入 Julia Computing 董事會,Muglia也曾在Microsoft和Juniper出任高層,再帶領Snowflake成為獨角獸。
Julia 社區包括醫療和金融專家,今星期Julia Computing舉行網上JuliaCon用戶大會,圖靈獎得主和柏克萊大學教授William Kahan和東北大學教授Jan Vitek發表了主題演說。JuliaCon內不少演講環節,概述了科學家及工程師如何以Julia演算能力,解決大數據的科學難題,避免以高階語言(Python、Matlab 或 R )測試與模擬後、再以低階語言( C 或 C++)重寫的問題。