上世紀九十年代,Glasgow Haskell編譯器(誕生于格拉斯哥[Glasgow]大學(xué))開始時作為英國政府資助的學(xué)術(shù)研究項目的一部分,有著如下幾個計劃目標:
GHC有了20多年的歷史了,從誕生之日起,他的開發(fā)一直保持著活躍的狀態(tài)。今天,GHC發(fā)布后會被成千上萬的人下載,在線的Haskell library倉庫中包的數(shù)量超過了3000。許多大學(xué)課程中使用GHC進行教學(xué),商業(yè)使用GHC的案例也在不斷增長。
整個GHC的開發(fā)歷史中一般大約有2到3個活躍開發(fā)者,盡管提交代碼的人成百上千。對于作為GHC開發(fā)者的我們,最終的目標是研究而不是代碼,但開發(fā)GHC有個核心的前提:研究成果要回饋給GHC,這樣利用GHC可以基于之前的想法進行下一步的研究。此外,GHC具有工業(yè)強度的品質(zhì)也很重要,他可以讓GHC的研究成果具有更高的可信度。所以雖然GHC充滿前沿的想法,但我們付出很大的努力,讓其可以在產(chǎn)品中可靠地使用。雖然研究和產(chǎn)品使用這兩個方向看起來有強烈沖突,但我們找到可行的方法,讓兩方面都有獲益。
在此章中,我們會描述GHC的總體架構(gòu),關(guān)注那些使GHC成功的關(guān)鍵想法,還有一些不如意的地方。希望你能夠在下面的講述中學(xué)到在20多年的開發(fā)GHC如何保持龐大項目開發(fā)的活躍,而沒有被自身的重量壓垮,一個非常小型的開發(fā)團隊一般要考慮哪些事情。
更多建議: