gpt4 book ai didi

f# - 我应该选择 F# 来开发分布式服务器平台吗?

转载 作者:行者123 更新时间:2023-12-03 21:01:43 26 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




我目前正处于一个新的分布式服务器框架的研究阶段,该框架将用于实时模拟(超过 20,000 个客户端)。我们已经决定使用 C#/.NET 作为我们的平台,但是最近有人给我发了一些关于 F# 的文章,从表面上看,它看起来是一个用于开发服务器的好工具。我正在寻找使用 F# 解决大型现实世界问题的人的一些想法。

  • F# 是一个很好的工具吗?
  • 有哪些陷阱?我们正在处理大量交互消息和大量不断变化的状态,尽管它们可能存在于某种数据库云中。函数式编程似乎在处理大规模并行和分布式计算方面表现出色,但似乎不鼓励更改任何类型的状态。
  • F#会继续存在吗?我担心它是如此新,我不想将自己束缚在一个垂死的平台上(J# 有人吗?)...
  • 是否有任何使用 F# 的大型现实世界解决方案(最好是服务器)?
  • F# 是否适用于大型工程师团队?我确信答案很简单,但是我仍然对语言/工具非常不熟悉。

  • 感谢您的时间。

    最佳答案

    在过去的 7 个月里,我用 F# 开发了一个大型现实世界的高并发服务器。我不能给你确切的细节,但这是最大的咨询契约(Contract)my company曾经降落。

    I am looking for some thoughts from someone who has used F# to solve large, real world, problems. Is F# a good tool for this?



    是的。我在 F# 中开发最终的商业产品没有问题(我做到了 herehere),但我们的客户通常对使用 F# 进行快速原型(prototype)制作印象深刻。例如,我最近发现了一份公司内部文档,其中引用了 3 个人月来实现 C++ 中的一项功能,而这花了我 4 个小时来使用 F#!

    What are the pitfalls?



    该语言有一些怪癖,但我遇到的唯一主要问题(阻碍了我的工作数周)是 bugs in .NET并且对 Windows 上的 Infiniband 驱动程序的支持很差,这两者都与 F# 没有任何特别的关系。我在 F# 库中遇到了一些与错误有关的小问题(例如 TryScan 已损坏),但一旦我找出问题所在,它们就很容易解决。 F# 团队一直非常擅长提供支持和接受建议。

    另外,请注意,我是为数不多的在行业中率先使用这项技术的人之一,因此我希望您遇到的问题会比我遇到的问题更少,并且会更快地解决它们,因为我们已经为您解决了这些问题!

    We are dealing with lots of interacting messages and a lot of changing state, although that will likely live in a DB cloud of some kind. Functional programming seems to shine in dealing with massive parallelism and distributed computing, but seems to discourage changing any kind of state.



    这是一个普遍的误解。实际上,几乎所有函数式编程语言(例如 Lisp、Scheme、Clojure、Scala、Standard ML、OCaml、F#、Erlang)都是不纯的,并且依赖于不受控制的副作用。 Haskell 是唯一幸存的纯函数式语言,它完全无关紧要。

    在实践中,F# 的生产力优势更多地与类型推断、模式匹配和变体类型(来自 ML 语言家族)以及异步工作流、邮箱处理器、序列表达式、互操作性等其他特性有关。

    Is F# going to stick around? It concerns me that it is so new and I don’t want to tie myself to a dying platform (J# anyone?)…



    我们使用 F# 已有 4 年了,而且它还在不断发展壮大。我认为它不太可能很快消亡,尤其是因为微软在内部很好地利用了 F#。例如, F# share of UK job market just tripled in only four months .

    Are there any large, real world solutions (preferably servers) that are using F#?



    是的,很多。微软继续在 Bing AdCenter 和 Halo 3 中使用它,而 E-ON、Grange 和瑞士信贷等其他公司似乎已经用它构建了大量系统。我怀疑还有几十个像我们的客户一样 secret 使用它。

    Does F# work well with large teams of engineers? I am sure the answer to this is a simple yes, but I am still very unfamiliar with the language/tools.



    如果您指的是大型 F# 程序员团队,那么我不知道:我只曾在最多 4 人的团队中使用过这类语言。

    如果您的意思是如何将 F# 引入大型团队工作的一部分,我可以将我的客户用作案例研究。 2 年前他们没有 F#。今天,生产力最高的两个团队都在使用 F#,他们正在解决在公司引入 F# 之前被认为无法解决的问题。经常使用 F# 的人数从两年前的一个人逐渐增加到今天的两打左右。他们已经停止招聘 C++ 开发人员,并开始要求 F# 作为新员工的基本知识。

    不过也有不可避免的政治问题。我的生产力引起了整个公司的关注,管理层开始质疑为什么我的成本效益如此之高,这给使用主流语言(C++ 和 C#)的团队带来了很大压力。因此,我们现在受到抨击并失去公司内部的支持,因为我们让别人看起来很糟糕。周五我被指示放慢速度,以免让太多人看起来很糟糕!所以我现在被分配到多个项目并在那里重复这个“成功”。 ;-)

    关于f# - 我应该选择 F# 来开发分布式服务器平台吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5172510/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com