简体   繁体   English

F#和企业软件

[英]F# and Enterprise Software

Being a C# developer since version 1.0, F# has captured my free time for the past few weeks. 自1.0版本以来,作为一名C#开发人员,F#在过去几周里占用了我的空闲时间。 Computers are now sold with 2, 4 .. Cores and multi-threading is not always simple to accomplish. 计算机现在以2,4销售。核心和多线程并不总是很容易实现。

At the moment I see that F# has great potential for complicated and or heavy workloads. 目前,我发现F#具有很大的复杂或繁重工作负载的潜力。 Do you think that F# will (once RTM) become an important player in the Enterprise Software market? 你认为F#(曾经是RTM)会成为企业软件市场的重要参与者吗?

I think F# has great opportunity to make inroads some of the niche areas of enterprise applications such as mathematical modelling (eg for banking/trading applications). 我认为F#有很好的机会进入企业应用的一些利基领域,如数学建模(例如银行/交易应用)。 Removing side effects from functions also leads to great opportunities for parallelism and memoization. 从函数中删除副作用也为并行和记忆提供了很好的机会。 Its hard to say if these languages will ever take off for mainstream development is hard to say, but in my opinion the problems are more likely to be human oriented (ie lack of skills and high learning curve for people familiar with more typical languages like c#/java/c++) rather than technical. 很难说这些语言是否会在主流发展中起飞很难说,但在我看来,这些问题更可能是以人为本的(即熟悉更典型语言的人缺乏技能和高学习曲线,如c# / java / c ++)而不是技术。

I think regardless of whether F# becomes import for Enterprise Software being able to isolate pure functional portions of code in any language will be key to using the potential of multi-core computers. 我认为无论F#是否导入企业软件能够隔离任何语言的代码的纯功能部分将是使用多核计算机的潜力的关键。 For instance Microsoft's Parallel Extensions for .NET are great, but there is still a lot of room to make mistakes by parallelizing code that can't execute in parallel. 例如,Microsoft的.NET的Parallel Extensions很棒,但是通过并行化不能并行执行的代码仍然有很多错误。 If the code is in the form of a pure functional language or a subset of your language that is purely functional, then you are assured that you can execute it in parallel. 如果代码是纯函数式语言的形式或纯语言的语言子集,那么您可以确保可以并行执行。 The trick is then figuring out the most efficient way to assign the work. 然后诀窍是找出分配工作的最有效方法。

The role that F# plays in this I would say would be more as a catalyst to get people's feet wet and start thinking in a more declarative way. 我认为F#在这方面扮演的角色更像是一种催化剂,让人们的脚步湿透,开始以更具说服力的方式思考。

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

C#/VB will always be the main languages, but F# is better at complex problems. C#/ VB将永远是主要语言,但F#在复杂问题上更好。 C# is more general purpose while F# is better at IA, statistics, science (finding the cure of cancer, for example), etc. F# will never replace C#, but it will enable .NET to compete in more fields of computer science. C#更通用,而F#在IA,统计学,科学(例如癌症的治疗方法)等方面更好.F#永远不会取代C#,但它将使.NET能够在更多的计算机科学领域中竞争。 As for data mining and processing large ammounts of data, you are better off developping directly within the database - like SQL Server or oracle. 至于数据挖掘和处理大量数据,最好直接在数据库中开发 - 比如SQL Server或oracle。

As for F# being hard to learn, it's only because we got "corrupted" by the imperative way of thinking in most other languages. 至于F#很难学习,只是因为我们被其他大多数语言中的必要思维方式“腐化”了。 It's hard to unlearn something you do for 5 years! 很难忘掉你做了5年的事情! Also, in my exprience, ocaml and F# is a joy to use. 另外,在我的经验中,ocaml和F#是一种使用的乐趣。 The only complain I have for F#/Ocaml is that most of the time people overuse the type inference which makes the code unreadable. 我对F#/ Ocaml的唯一抱怨是,大多数时候人们过度使用类型推断,导致代码不可读。 I'd rather declare variable types to make it easier to maintain. 我宁愿声明变量类型以使其更易于维护。

I think F# will always be a niche language, compared to VB/C#/Java, because it does require more of a mathematical or computer science background. 我认为与VB / C#/ Java相比,F#将永远是一种小众语言,因为它确实需要更多的数学或计算机科学背景。 However the very fact that it is a CLR language means that it will have much bigger exposure than earlier functional languages. 然而,它是一种CLR语言的事实意味着它将比早期的功能语言具有更大的曝光率。

I work in an investment bank and we are already using F# for some ad-hoc scripting purposes, we are pretty keen to see a released version of F# so that we can consider more formal integration into our systems (although they are likely to remain fundamentally C# based). 我在一家投资银行工作,我们已经在使用F#进行一些特殊的脚本编写工作,我们非常希望看到F#的发布版本,以便我们可以考虑更正式地集成到我们的系统中(尽管它们可能基本上保持不变基于C#)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM