Julia是Lisp的轉世 - Arnuld

banq發表於2021-07-12

我們想要一種具有自由許可的開源語言。我們想要 C 的速度和 Ruby 的活力。我們想要一種同象素的語言,具有像 Lisp 這樣的真正宏,但像 Matlab 那樣具有明顯的、熟悉的數學符號。我們想要一些像 Python 一樣適用於一般程式設計的東西,像 R 一樣易於統計,像 Perl 一樣自然地處理字串,像 Matlab 一樣強大的線性代數,以及像 shell 一樣擅長將程式粘合在一起。學習起來非常簡單,但讓最認真的駭客感到高興的東西。我們希望它是互動式的,我們希望它被編譯。
我可以告訴你,Julia 是一種編寫程式的好語言,至少在你的生命中使用了五年。我敢肯定,任何喜歡提高技能、尋找更好的想法、更好的軟體設計的人都會喜歡 Julia。
我很喜歡Lisp,如果你用它,你也會喜歡的,但是Lisp永遠不會成為主流。它影響的語言(Python、Ruby、Scala、Perl等)都成為了主流,但Lisp卻不能。
我甚至在comp.lang.Scheme新聞組(試試Aioe和Pan Newsreader)上讀過Kent M Pitman關於Scheme語言標準的長對話,當時我正在選擇在Scheme和Common Lisp之間學習(在Google Groups上可以找到一個這樣的對話)。我讀這些都是出於強烈的興趣,現在我意識到這都是為了更好地理解程式語言而經歷的一部分。我喜歡Lisp,我想要表現。
我認為Julia將在幾年內成為主流,這是我一直在等待的語言,因為那天我寫了我的第一個程式。如果你有點喜歡程式設計,如果它觸動了你的心,你必須用Julia編寫程式碼,必須閱讀它的文件。這是一個新鮮空氣後,很長一段時間的呼吸。
 

駭客新聞網友討論:
客觀地說,而不是直接對 OP 說,你可以在工業界用 Common Lisp 程式設計,你只是不想那麼糟糕,然後你透過編造不能僱用的理由來證明你為什麼不能,不能主流,找不到工作等等。
不知何故,作為一名編寫 Lisp 的程式設計師,我能夠保持穩定的工作超過十年。我在初創公司寫過 Lisp。我在 Facebook 寫過 Lisp。不,我也不是一些奇怪的遺留 Lisp 專案的顧問。我和沒有從事 Lisp 工作的人的區別在於:

  • - 對於受益於 Lisp 的專案,我選擇 Lisp;
  • - 我向技術人員和非技術人員證明我可以廉價有效地解決他們的問題,通常是透過具體的演示,並且沒有任何關於 Lisp 能力的模糊承諾;
  • - 我付出了額外的努力,以確保我們可以為 Lisp 招聘、培訓 Lisp 並與 Lisp 整合。

如果您想在行業中編寫 Lisp,並且如果您是高階或更高階別的工程師(無論這意味著什麼),那麼請接受並編寫它。來回學習語言,對自己的選擇負責。
除非你正在編寫世界上最無聊的軟體,需要 5,000 名 Java 程式設計師同時工作,我可以向你保證,編寫和維護 Lisp 沒有問題,除非與你一起工作的每個人,包括你自己,都喜歡把錢遞過去。
 
我的心都碎了,因為 Common Lisp 是一種非常優秀的語言,工作很愉快,而且在工業中幾乎沒有人使用它。即使用 Lisp 編寫程式碼所需的時間要少得多,但該行業仍有大量 Java 程式碼。程式設計師的時間發生了什麼比機器的時間更重要?
 
我認為 Common Lisp 和許多其他程式語言面臨的一個問題是,雖然程式設計師的時間比機器的時間更寶貴,但在維護有利於使用更流行語言進行編碼的商業軟體專案時,存在一些動態因素,例如能夠輕鬆地聘請熟悉語言和/或正規化的開發人員。例如,想象自己是一個用 Haskell 編寫的專案的經理,該專案自由地使用函數語言程式設計概念,例如 monad。聘請熟悉標準過程或物件導向的程式語言的開發人員比找到熟悉函數語言程式設計的開發人員更容易,而且讓非 FP 程式設計師掌握函數語言程式設計的速度需要培訓,這需要時間和金錢。
我喜歡像 Common Lisp、Scheme 和 Smalltalk 這樣的語言。但是,如果我在做一個團隊專案而我的隊友不知道這些語言,那麼我會選擇更通用的語言,比如 Python。程式設計不僅僅是表達計算;它還與交流有關,語言的一個主要目的是與他人交流。
 
這就是 Clojure 被發明的原因。它執行在 JVM 中,程式碼高度可維護,使用 Clojurescript 進行前端開發等。
 
引導語言採用的最佳方法是讓一家大型科技公司推動它。Java(Sun、Oracle、Google Android)、C#(Microsoft)、JavaScript(所有瀏覽器供應商、Facebook React)、Rust(Mozilla/Microsoft)、Swift(Apple)、Go(Google)。
大多數流行語言都得到了一家或多家大型科技公司的支援。這使管理人員有信心毫無保留地採用它們。
 
Lisp 在 Julia 語言中最強大的遺產是它的超程式設計支援。與 Lisp 一樣,Julia 將自己的程式碼表示為語言本身的資料結構。
 



 

相關文章