F#是當今最好的程式語言?

banq發表於2021-07-10

這是來自於丹尼爾·B·馬克姆觀點,基於三個假設提出這一主張:
  1. 程式語言不僅僅是特性和規則的列表。在現代,它們可能更適合被視為互動式影片遊戲,其中 IDE、擴充套件、REPL、編譯速度和許多其他東西提供了整體開發人員體驗。這種經歷是讓編碼人員參與個人專案和學習(或不參與)的重要組成部分
  2. 大多數編碼人員都對學習如何以純函式方式進行編碼感興趣,但不知道如何去做。(即使對於多年來一直在 FP 中編碼的程式設計師來說也是如此)提供從 OO/Imperative命令式 一直到 Pure FP純函式的各種風格的語言允許編碼人員在“他們所在的地方”進行編碼,然後學習變得更好程式設計師透過清理他們擁有的東西。
  3. 庫和開發社群的規模/氣質在 SO/REPL 迴圈中發揮著重要作用,編碼人員暫時陷入困境而其他人能夠幫助他們

如果這三個假設是真的,那麼 F# 作為 Microsoft 和 OCaml 之間的混合,允許程式設計師在一個他們可以隨著時間的推移學習和改變他們的程式設計風格的世界中玩耍。
下面程式碼是F中的Hello World:

// Learn more about F# at http://docs.microsoft.com/dotnet/fsharp

open System

// Define a function to construct a message to print
let from whom =
    sprintf "from %s" whom

<p class="indent">[<EntryPoint>]
let main argv =
    let message = from "F#" // Call the function
    printfn "Hello world %s" message
    0 // return an integer exit code


大多數時候,當我們對程式語言進行排名時,我們會談論規則、語法、特性等等。如果那是你的事,那麼我的第一個假設就不成立,我的整個論點都將分崩離析。
許多程式設計師只想從外部特徵來看待語言:提供的許可、可用的工作數量等等。如果你的目標也不是內部的,透過逐步學習,並且能夠跨越正規化,假設 #2 不成立。
有些人是嚴格DIY的。許多庫包對他們來說是次優的。老實說,我不認識很多這樣的人,但如果是你,假設 3 就失敗了。
注意:我並不是說 F# 是專業編碼的最佳語言。我並不是說 F# 是解決所有問題的最佳語言。我正在盡我最大的努力不要做出浮誇的宣告,而是用更細微的差別縮小標題的最高階。我的觀點是,如果您想親自學習一門程式語言,以便在您使用的任何其他語言中成為更好的編碼員,那麼現在 F# 是您能找到的最好的整體教學/編碼語言。
 

駭客新聞網友討論
這篇文章一直說 F# 是最好的,但沒有描述任何關於該語言的內容。他討論了他使用的標準,但沒有說明 F# 在這些標準中的表現如何。

採用程式語言是基於政治,而不是技術價值。
這本身並不是壞事,但要記住這一點很重要。任何技術的“輝煌”都不是技術所固有的。這是人為決定的。
語言之所以成功,要歸功於圍繞它們興起的社群,遠比語言本身的設計或質量所固有的任何東西都要重要。
 
Jetbrains 在 Kotlin 上做了令人難以置信的工作,與 Java 無縫互操作,無故障的混合 Java/Kotlin 程式碼庫,以及與 Scala 之類的東西相比減少了學習曲線和心理上下文切換。在我的公司,有幾位開發人員試圖引入 Clojure,同時也嘗試引入 Kotlin。總體而言,Kotlin 已經流行起來並以更少的努力迅速傳播。
 
當今最好的程式語言

  • F# : 機器學習 + .Net
  • Clojure: Java + jvm + lisp
  • Rust/OCaml : 系統程式設計

F# 和 Clojure 都可以讓您訪問可能是兩個最大的生態系統,但它們顯然將它們放在程式設計正規化範圍的兩端,但這使得學習兩者的冗餘度降低
如果你想要一個編譯的系統語言,可能是你應該使用Rust 和 OCaml其中一個
PureScript類似haskell + Javascript(不過F會帶你走近,更實用)
 
F# 看起來不錯,如果我在C# 或 F之間必須選擇 ,我會選擇 F#,但我認為 Clojure 在概念上更強大,更易於解釋和教授,可以快速完成專案並可靠地執行它們。不可變的資料結構、REPL 和後端和前端的一些相關的熱程式碼重新載入也確實是一些東西。
F# 勝過 Clojure 的顯而易見的答案是靜態型別。
 
我認為 F# 是設計最好的現代語言。憑藉 .NET 5 的跨平臺效能和 F# 的語言功能,我認為很難找到設計更好的語言。該設計在功能、OOP 和命令式正規化之間實現了最佳平衡。但是Microsoft 缺乏對 F# 的投資和營銷以及 F# 的整體生態系統建設。
基本上可以像編寫 Python 一樣編寫 F#,但 F# 對 Python 進行了大量改進。甚至可以像在 C# 中一樣在 F# 中使用完整的 OOP,再次改進了簡潔性和可讀性。憑藉 F# 的函式正規化但不堅持純粹性,人們會得到一種語言,它允許您編寫精美且正確的程式碼,這些程式碼可以工作並且不會與您作對。
 
過去的幾周裡,我一直在用 F# 編寫有趣的小程式。這真好。
我對它的主要不滿是它缺乏社群。Elixir 論壇非常棒;社群中充滿熱情的成員之間似乎正在進行大量的知識共享。與大多數其他語言相同:如果我使用 Google 如何解決特定問題,則會彈出一個答案或相鄰問題的答案。對於 Swift、Go、C#、Python 來說都是如此……
F# 不是這樣。從缺乏相關的 Google 搜尋結果、YouTube 的零訪問量、我住的地方(北歐)沒有工作來看,F# 在我看來幾乎像是一門死語言。
網上有沒有我錯過的充滿活力的 F# 社群?
 
這是一個沒有太多支援的斷言。宣傳帖這完全是一文不值。



 

 

相關文章