F#是当今最好的编程语言?


这是来自于丹尼尔·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

[<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# 社区?
 
这是一个没有太多支持的断言。宣传帖这完全是一文不值。