自1.0版本以来,作为一名C#开发人员,F#在过去几周内占用了我的空闲时间。计算机现在以2,4销售。核心和多线程并不总是很容易实现。

目前,我发现F#对于复杂或繁重的工作负载具有巨大潜力。 您是否认为F#(曾经是RTM)将成为企业软件市场的重要参与者?

有帮助吗?

解决方案

我认为无论F#是否导入企业软件能够以任何语言隔离代码的纯功能部分将是使用多核计算机潜力的关键。例如,Microsoft的.NET的Parallel Extensions很棒,但是通过并行化不能并行执行的代码仍然有很多错误。如果代码是纯函数式语言的形式或纯语言的语言子集,那么您可以确保可以并行执行。然后诀窍是找出分配工作的最有效方法。

我认为F#扮演的角色更像是一种催化剂,让人们的脚步湿润,并开始以更具声明性的方式思考。

其他提示

我认为F#有很好的机会进入企业应用程序的一些利基领域,例如数学建模(例如银行/交易应用程序)。从函数中删除副作用也为并行和记忆提供了很好的机会。很难说这些语言是否会在主流发展中起飞很难说,但在我看来,这些问题更可能是以人为本的(即熟悉更典型语言的人缺乏技能和高学习曲线,如c# / java / c ++)而不是技术。

我认为我们将看到的是,一些功能性东西将迁移到C#中,例如增加使用不可变类型和标记功能等等。我不能看到F#在企业开发中扮演更广泛的角色对普通开发人员来说太神秘了。

C#/ VB将永远是主要语言,但F#在复杂问题上更胜一筹。 C#更通用,而F#在IA,统计学,科学(例如癌症的治疗方法)等方面更好.F#永远不会取代C#,但它将使.NET能够在更多的计算机科学领域中竞争。至于数据挖掘和处理大量数据,最好直接在数据库中开发 - 比如SQL Server或oracle。

至于F#难以学习,只是因为我们得到了“腐败”。通过大多数其他语言的强制性思维方式。很难忘掉你做了5年的事情!另外,在我的经验中,ocaml和F#是一种使用的乐趣。我对F#/ Ocaml的唯一抱怨是,大多数时候人们过度使用类型推断,导致代码不可读。我宁愿声明变量类型以便于维护。

我认为与VB / C#/ Java相比,F#将永远是一种小众语言,因为它确实需要更多的数学或计算机科学背景。然而,它是一种CLR语言的事实意味着它将比早期的函数语言具有更大的曝光率。

我在一家投资银行工作,我们已经在使用F#进行一些临时脚本编写,我们非常希望看到F#的发布版本,以便我们可以考虑更正式地集成到我们的系统中(尽管它们很可能从根本上保持C#为基础。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top