Python 作為一門教學語言,應該退休了!
在過去十年裡,如果有人正在為初學者尋找一種程式語言的話,我的標準建議是 Python。但是現在,我的這個想法已經發生了變化。
當然,Python 依然是一門非常好的程式語言。它讓你集中精力解決問題,而不是關注架構之類的東西 - 那些有經驗的開發者,似乎已經忘記或背棄了程式設計學習的初衷 - 思維模式的重要性。Python 這門語言將自己很好地融入了背景之中,我們不用過多地解釋其功能特性及程式設計方法,我們只需專注於如何生成一個音符,如何計算所在跑道的運動軌跡,或者,為撲克牌或者擲骰子游戲編寫一個自動玩家指令碼。
然後直到有一天,一名學生一臉無辜地問道:“如果我們不想通過命令列執行這個撲克牌模擬器,我應該怎樣做才能將其跑在一個窗體中呢?”
這是一個難以解釋的棘手問題,涉及很多各種各樣的 Python 圖形化開發工具包(GUI toolkits)。事實上,Guido (Python 之父 )每隔幾年就會面臨同樣的問題,每次他都需要重新評估一下 TkInter 是否適合 IDLE - Python 自帶的 IDE。
一週之後,另一個問題出現:“怎樣才能編寫一個具有圖形化介面的簡單遊戲呢?”
好吧,是該深入研究一下這個主題的時候了。Pyglet 看起來很有希望,只是它從2012年起就沒有更新過了。還有一些更專業的圖形化庫,如 SplatGL,但是它太新了,應用案例也太少。PyGame 似乎非常流行,甚至還有一本書和它配套。好吧,我們就從學習 PyGame 開始入手吧。
一個月後,更多問題顯現:“我怎樣才能把這個我給我朋友編寫的遊戲展現給他呢?或者說,有沒有一種辦法,可以將這個遊戲裝在我的手機上,這樣的話,我就可以直接將其展現給學校的朋友們,而且他們根本無需安裝?”
呃...
所有這些問題已經讓我慢慢放棄了把 Python 作為教學首選語言的想法。儘管只能輸出單色文字的命令列終端演算法指令碼依然非常重要,但是你真的需要區分什麼是必要的以及什麼是人們真正想要的。是的,你可以找到一些附加的程式包,但是你能確定它們真的經得起真實專案的考驗嗎?或者,這些程式包明天還會繼續得到支援嗎?
非桌面技術平臺的興起進一步加劇了這種複雜性,對此,我表示極大的同情。我學習 Erlang 語言的目的就在於,希望遠離 C 和 C++,以使我能夠在一個更高的層次上思考。我已經很好地證明了這一點 - 我現在可以將這種純函式程式設計風格嫻熟地應用在遊戲開發領域。但不幸的是,iPhone 冒了出來,在這個平臺,Erlang 根本不是一個合理選項。
考慮到這些因素,我現在首推的教學語言就是 JavaScript。我知道,我知道,它的確非常古怪。但從整體來看,JavaScript 是一門優雅而且現代的程式語言。更重要的是,它恰好位於隨處可見的跨平臺開發工具之上 - 無論是佈局、版式還是渲染。想要顯示使用者介面元素、圖片、或者文字嗎?可以直接使用 HTML。想要做一些與圖形或者動畫相關的事情嗎?那就使用 canvas 吧。
我期待著一些對這種思維模式轉變的批評和建議,至少在一定程度上,這將有助於人們選擇適宜的程式語言。我希望你們的批評和意見不應該涉及 JavaScript 語言的缺點,因為我的重要參考依據不是語言特性、型別系統,或者語法,我的重點在於這種語言是否得到了現代 Web 瀏覽器的原生支援。
作者:James Hague,程式設計師,視訊遊戲開發公司 Volition 首席設計師。
原文:Retiring Python as a Teaching Language
感謝: Qingniu 幫助審閱並完成校對。
原載: 明珠夜話
相關文章
- Python語言應該如何入門Python
- 第一門程式語言應該學什麼? – thenewstack
- 你應該學習的第一門程式語言
- C和Python,小白應該選擇學習哪門語言?Python
- 老公,我應該好好學習C語言了C語言
- 作為一門程式語言 Python為什麼如此受歡迎Python
- 新手該學哪門程式語言
- 狗年最應該學什麼程式語言?就是它了!
- 我國中小學在校生為何應該學習Python程式語言?Python
- Python語言該如何入門?哪些人適合學python?Python
- 為什麼要學習Python語言?Python入門Python
- 學習一門語言
- Java語言入門:該如何學習JavaJava
- 學習程式設計,python和GO語言應該選擇哪一個?程式設計PythonGo
- 墮落 Java vs 新貴 Python,2018 年最應該學習哪一門程式語言?JavaPython
- 延遲退休來了,普通人該怎樣應對?
- 不把C作為第一門語言是個好主意麼?
- 以dart語言為例說說如何學習一門新的語言Dart
- 為什麼推薦應屆畢業生學Python語言?Python基礎入門Python
- 你應該學習哪種程式語言?
- [譯]Python作為一種程式語言有多強大?Python
- 為什麼初學者應該學習Python?7大主流程式語言對比!Python
- 為什麼程式設計初學者會選擇 Python 作為入門語言?程式設計Python
- 為什麼要學習一門新的程式語言?
- 為什麼你應該學 Python ?Python
- 如何學習一門程式語言
- 為什麼我們需要一門新語言——Go語言Go
- 如何學習python程式語言?python入門Python
- 選擇一門程式語言,任何一門語言
- 將JavaScript 作為第一程式語言JavaScript
- SAP MM 模組的入門者,想學習 ABAP 程式語言應該如何入手?
- 為什麼資料科學家們選擇了Python語言?資料科學Python
- 怎樣學習一門程式語言
- 如何學習一門新的語言
- 解釋一下一門語言該有的東東(Javascript)JavaScript
- 作為IT小白,應該如何系統學習Java呢?Java
- Python是一門傑出的語言,值得你去學習Python
- Python語言怎麼樣?為什麼學Python?Python