摘要:年,出生于荷蘭的計算機大師圖靈獎獲得者給德州大學預算委員會寫信,力勸不要將計算機入門課程改為。讓他們面對新奇的函數式編程,能立即傳達一個信息編程比他們想象的要豐富的多。另外一個優勢是函數式編程的延遲執行,它提供了一個環境來防止操作性的推理。
2001年,出生于荷蘭的計算機大師、 圖靈獎獲得者Edsger W. Dijkstra給德州大學預算委員會寫信,力勸不要將計算機入門課程改為Java。這封信的PDF版可以從這里下載。不幸的是,學校最終還是用Java課程替換了Haskell。相關聯的,麻省理工的計算機程序結構和分析課程(6.01)中的Scheme語言也被Python語言替換掉。
致預算委員會成員我寫這封信給你們是因為有謠言說,大學教學中的計算機入門課程將不再使用函數式編程語言Haskell,而是使用命令式語言Java,鑒于此,我認為預算委員會有責任去阻止這項錯誤的決定。
你們知道,這不是小事。其它州的同行經常好奇于我如何能在德州奧斯汀這樣的地方生存下來,他們都以為德州頑固的保守主義必然造就了同樣頑固的平庸。我的回答通常是,“不要擔心,教育系統還是一個比較開明的地方,例如在計算機入門課程上,我們教新生Haskell語言”;他們的反應起初通常都是懷疑,然后是嫉妒——大多是因為他們的大學課程無法再從Pascal語言向C++或Java這樣的語言的轉變中恢復回來。
我偏愛函數式編程的一個非常現實的原因是,對于新生的課程,大多數學生都已經對命令式編程有一定的熟悉。讓他們面對新奇的函數式編程,能立即傳達一個信息:編程比他們想象的要豐富的多。并且,他們很快就會觀察到,對于他們用高中時學到的編程知識很難表達或無法表達的問題,函數式編程能提供優雅的解決方案。
而選擇函數式編程的一個最根本的原因是,相比起命令式編程語言,它更容易當成數學對象來使用,在教學中你可以用它精確的解釋程序是什么。另外一個優勢是函數式編程的“延遲執行(lazy evaluation)”,它提供了一個環境來防止操作性的推理。
最后,在Haskell語言跟Java的具體方面對比中,盡管Haskell不完美,但仍然比Java好幾個數量級,Java就是一個大雜燴(它是通過大范圍的廣告和銷售員夸張的宣傳才達到它的商業接受)。總得來說,這事非常的糟糕,業界把有目共睹的低劣的設計當作了“事實”標準。我個人的認為,大學里應該讓更健康的編程方式存在。
不僅僅是小提琴能塑造小提琴家,我們全都被我們使用的工具塑造,而在編程語言方面,影響是潛移默化的:它們塑造我們思考的習慣。這使得第一種編程語言的選擇非常的重要。我們應該把入門課程當成一種工具來創造一種為計算機科學教學服務的文化,而不是去強迫丟掉過去的那些知識(如果非要這樣,那我們的過去算是什么,成了永遠的遺物)。這種選擇擔負著對我們的大學生的沉重責任,這也就是為什么這種事不能讓某個什么主席來決定,而是應該由預算委員會來決定。這種事情不能讓什么公務員或政客辦理,這里需要有遠見的政治家。
Austin, 12 April 2001
Edsger W. Dijkstra
On the cruelty of really teaching computing science
Real mathematicians don’t prove
原文 Dijkstra on Haskell and Java
翻譯 外刊IT評論
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64090.html
摘要:康納爾大學數學博士博士后則認為,圖神經網絡可能解決圖靈獎得主指出的深度學習無法做因果推理的核心問題。圖靈獎得主深度學習的因果推理之殤年初,承接有關深度學習煉金術的辯論,深度學習又迎來了一位重要的批評者。 作為行業的標桿,DeepMind的動向一直是AI業界關注的熱點。最近,這家世界最較高級的AI實驗室似乎是把他們的重點放在了探索關系上面,6月份以來,接連發布了好幾篇帶關系的論文,比如:關系歸...
閱讀 1075·2021-09-29 09:35
閱讀 4621·2021-09-22 15:24
閱讀 1449·2021-07-25 21:37
閱讀 2178·2019-08-30 14:17
閱讀 965·2019-08-30 13:56
閱讀 2411·2019-08-29 17:07
閱讀 1251·2019-08-29 12:44
閱讀 2705·2019-08-26 18:26