殺死Haskell的人也可能殺死Rust · GitHub
Haskell和Rust有著密切的聯絡。Rust的大部分樣式在很多方面都與Haskell的樣式相似。從某種意義上說,Rust是Haskell的轉世,帶有一點類似於C的語法,數量很少。
Haskell死了嗎?
曾經有一段時間Haskell是值得一看的語言。在2000年代後期到2010年代,Haskell是每個人都希望可以使用的程式語言,但是除了少數人之外,沒有人能做到。在Haskell中完成了一些令人印象深刻的專案。已經完成了大量的財務專案。
為什麼Haskell突然間漂亮地停了下來?現在肯定還活著。沒有人再考慮在Haskell進行重大專案了。誰是GHC Haskell程式設計師?GHC Haskell的方言已經屬於一種學術語言。
Haskell當時處於函數語言程式設計的最前沿。正是該語言表徵或概括了FP的真正含義。2000年代中期有兩個主要競爭對手:Scala,JavaScript。最終有Golang和C ++成為關注者。Haskell帶領他們。這些語言從Haskell學到了很多東西。現在,任何做Scala的人都知道for-forhension和許多庫的語法直接來自Haskell世界。
Haskell編寫和交付速度比Scala應用程式或C ++應用程式快五倍。Haskell以許多有趣的方式進行統治,但它死了。是什麼殺死了它?
我在這裡要用一個詞:“傲慢”。
你們中有些人可能還記得2000年代中期的Reddit討論。一堆人在那裡談論很酷的數學問題。在這些談話中,他們經常嘲笑其他語言,例如Go,但那時我是golang的追隨者!我不喜歡他們這樣。
Haskell社群中存在一種態度,再一次,這不是一種邪惡的態度,也不是出於惡意而誕生的。但是有一種態度說:“您知道,我們的工具是如此出色,我們的語言如此出色,我們不需要遵守規則。我們可以做些其他的事情。我們不必與其他人交談。我們不必執行其他程式。”
Haskell人不想執行常規程式。他們不想處理公司資料庫。他們不想面對已經演變了二十年的可怕模式。真是令人討厭。他們找到了使用類別理論和從屬型別的方法。他們在自己周圍築了一堵牆,他們選擇生活在技術泡沫中。與外界的邪惡隔絕。
讓我們將“進步”重新定義為:“僅僅因為我們可以做某件事,不一定就一定要做那件事”。
因此,殺死Haskell的是狹隘主義,無法解決企業的需求。
Haskell在某些限制條件下表現出色,但是它的能力有限,或者是使用者希望解決企業一般問題的能力受到限制。
有什麼可以使Rust擺脫與Haskell相同的道路?
記住可能是2000年代最有影響力的語言的命運。純函式正規化開始的語言,影響了我們目前正在做的很多事情的語言。這種語言的命運幾乎被遺忘了。使用它並熱愛它的人們不得不跳到Scala謀生,差點殺死了他們。
我們擁有Rust語言的強大工具。我們也許會透過弄亂來殺死了它,也許透過自大來殺死了它,我們也會透過忽略企業來殺死它。我建議我們不要走那條路。
- 第一個是紀律。編寫文件的紀律。如果您編寫程式碼,您應該編寫該死的文件。當所有人都已經發現說“我要寫一個好的文件,以便其他人可以輕鬆地使用我的工作”是多麼困難時,為時已晚。
- 謙卑的專業精神也可能會阻止這種消亡,這與Haskell所經歷的消亡一樣。區別“我們與他們”其實是傲慢滋生的對立態度(banq注:A為B服務,這裡區分了A和B是兩類人,雖然字面上有服務兩個字),還有一些有趣的對立廣告,例如“ Mac vs PC”;“我是Rails,我是Java”。我認為如果您認真對待它,它就不會有任何危害。
- 最後一件事是接受解決“骯髒”問題。解決可怕的模式問題。我們將不得不坐下來說:“不,我們會處理這個問題”。如果我們最終要生存,就必須解決每個人都遇到的問題。否則,其他人將解決這些問題。
相關文章
- 殺死Oracle死鎖程式Oracle
- 殺死8080埠
- 殺死殭屍程式
- 殺死那個遊戲公司遊戲
- 誰將會殺死 Java?Java
- 殺掉鎖死的程式
- Android後臺殺死系列之三:後臺殺死原理LowMemoryKiller(4.3-6.0)Android
- oracle殺死鎖表的程式Oracle
- 【sqlserver】殺掉所有死鎖程式SQLServer
- db2查殺死鎖DB2
- 即刻殺死資料庫鎖資料庫
- Android後臺殺死系列之一:FragmentActivity及PhoneWindow後臺殺死處理機制AndroidFragment
- 檢視並殺死殭屍程式
- SAP Basis: 從SAP GUI殺死程式GUI
- ORACLE中殺死鎖程式的方法Oracle
- Linux基礎命令—殺死程式pkillLinux
- Linux基礎命令---殺死程式pkillLinux
- Linux基礎命令---殺死程式killallLinux
- Mac檢視和殺死後臺程式Mac
- 雲端計算會殺死開源嗎?
- 複雜性正在殺死軟體開發者
- 按照名字殺死程式的四種方法
- 如何批量殺死當前的MySQL程式MySql
- 自動殺死UNIX僵死的程式(轉)
- 最新的AI會“殺死”程式設計嗎?AI程式設計
- 【oracle 殺死繁忙程式 ORA-00054】實驗Oracle
- 軟體複雜性正在殺死我們
- [譯] google會背叛並殺死Android嗎?GoAndroid
- shell指令碼按照程式名稱殺死程式指令碼
- 批量kill殺死某些會話session的plsql會話SessionSQL
- 殺死一個正在執行的程式 (轉)
- 軟體的複雜性正在殺死我們
- Windows中殺死佔用某個埠的程式Windows
- 殺死你的APP的6個致命錯誤APP
- 免費增值應用正在“殺死”遊戲開發者?遊戲開發
- 【Kill】兩條Linux命令徹底殺死OracleLinuxOracle
- 一個殺死終端所有程式的 Shell(轉)
- 殺死Apache Kafka:過度架構的陷阱 - Stephanie SherriffApacheKafka架構