1)功能语言是否适合Web应用程序开发?
2)功能语言是否适合商业/ ERP/CRM类型的应用程序?
您描述的那种函数式语言是通用编程语言,它们用于各种事物,包括Web应用程序和业务应用程序.(我使用Haskell).
Haskell对Web Apps有用吗?
在Haskell中构建商业Web应用程序
正如gabor所暗示的那样,最终归结为图书馆.Scala有一个Web框架:lift.Haskell有happstack,以及2100 4400(在2010 2012)在库Hackage为thiings的所有方式.
在考虑特定的专业领域时,它实际上不是一个语言问题,而是工具链.
函数式语言适用于您希望使用它们的任何内容.
但是,如今开发应用程序并不像使用编程语言那么简单.Java,C#等的优势在于它们带有大型库和其他环境细节,这些都是构建业务软件时绝对需要的.大多数函数式语言都没有那么大的支持(到目前为止?).
F#可能很有前途,因为它在.NET环境中并且可以利用那里可用的工具(如果我错了,请纠正我).
该文章介绍了Lisp语言,早期的功能性语言如何被用来成功地创建一个基于Web的应用程序.
功能语言非常适合Web应用程序开发,特别是Scala.
有关详细信息,请查看Lift框架.
2)功能语言是否适合商业/ ERP/CRM类型的应用程序?
为了解决关于业务/ ERP/CRM应用程序的第二点:我个人不会用像Haskell这样的"纯"函数语言或像Clojure这样的动态函数语言来实现它们.在另一方面,我感到目前正在实施Scala中,这当然是混合OOP/FP和静态编译的ERP.
我之所以这么说是因为像ERP这样的商业应用程序基本上是面向记录的:有一个表示不同记录类型的数据模式,然后应用程序逻辑几乎完全围绕CRUD这些记录并将自定义业务工作流应用于它们.从根本上说,我不相信这些以数据为中心的业务应用程序非常适合功能模型.
人们可以谈论他们喜欢的OOP关系不匹配,但最终OOP和数据库都是面向记录的:具有良好ORM的OOP语言允许您将这些不同的数据模型映射到您的代码中,然后附加代码来处理每个楷模.并且具有静态类型(理想情况下具有类似Scala的squeryl的强类型ORM)大大减少了运行时错误的可能性,或者例如对通过代码未正确应用的一个数据模型的改变.
不要误会我的意思 - 我是FP的忠实粉丝(我在Haskell中做了越来越多的系统编程),但对我来说,面向记录的OOP方法比面向函数的方法更有意义. FP用于纠缠业务ERP或类似的数据对象.(Scala是一个很好的例外规则,因为你可以使用OOP范例和质量ORM来进行记录操作,还可以使用FP优于你的常规应用程序编程.)
是的,氮气是功能性网络框架的一个很好的例子.它也可以扩展.
http://nitrogenproject.com/