2014年3月17日 星期一

爪哇學校的危害 - The Perils of JavaSchools

爪哇學校的危害 - The Perils of JavaSchools

有些小孩高中就在自己的Apple II上,用BASIC寫出很棒的乒乓遊戲。當這些孩子上大學修CompSci 101(一門資料結構的課程),接觸指標這玩意之後,轟!他們的大腦馬上被炸成一堆豆腐渣,接下來都跑去修政治學,因為法學院似乎是個更好的主意。我看過CS科系退學率的各種數字,通常介於40%到70%之間。大學當局通常認視之為浪費,我則認為這是必要的排除手段,讓那些往後無法樂於編程職業或因此成功的人及早出局。

對許多年輕的CS學生來說,另一個難題是教授functional programming(包括遞迴編程在內)的課程。MIT對這些課程的要求很高,不但創造了必修課程(6.001),還編寫出一本教科書(Abelson & Sussman的Structure and Interpretation of Computer Programs),被數十甚至數百所一流CS學校拿來作為CS入門教材。

不瞭解function programming,就無法發明MapReduce這個讓Google具備驚人擴充性的演算法。Map跟Reduce是從Lisp和function programming來的。修過相當於6.001編程課程的人,如果還記得純functional programs沒有什麼副作用,不會影響並行的函式,因此可以輕易地平行化同步處理。在他們回想之際,MapReduce實是是顯而易見的演算法。Google發明了MapReduce而微軟沒有,這個事實可以解釋為何當微軟仍在嘗試讓基本搜尋功能能運作時,Google已經進到下個領域:建立Skynet這個世界上最大的平行處理超級電腦,我不認為微軟真正瞭解他們在這波競爭中落後了多少。


沒有留言:

張貼留言