加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

函数语言的理解

(2010-07-28 19:21:22)
标签:

函数语言

开发

编程

杂谈

分类: 程序开发与测试

编程语言是每位程序员的基础工具,语言的话题也就成了程序员们的最爱,最近在水木的函数语言版块,看到一篇精彩讨论 请教一下如何学习函数式编程 ,讨论的主题是:函数语言是否有真正的未来?什么样的语言更容易构建出创新或流行的软件?以及语言的思维差异问题?以及什么的语言更容易做分布式系统?

 

关于函数语言的基础知识,可以参考一下Functional_programming。提到函数语言,不得不说的是Lisp,启迪了一代代的语言设计者,但是作为由50多年历史的高级语言,竟也只是学术界盛行,没有任何大型系统的应用尴尬;当前其他知名函数语言还有Scheme,、ErLang,、OCaml、Haskell和F#,以erlang和haskell最为盛行,当前也出现了一些基于函数语言的分布式系统,如CouchDB和RabbitMQ系统,都是是采用erlang这样的函数语言实现的;在分布式系统和云计算的今天,如何突破现在的开发效率以及方便升级维护等需求,人们对函数语言又增加了一些寄托。

 

高级编程语言不仅仅为程序员带来更高的开发效率,有的语言也提供了高效的软件开发模式,而函数语言恰恰是在编程模式和思维模式方面有自己独特的魅力。 因为语言以简单的规则和逻辑为基础,在创造高级语法和功能方面有很高的灵活性,因此可以方便创造出一些新颖的编程和开发模式,这也是其他语言能力所欠缺的能力,只能依赖版本升级,当前动态语言如python、ruby、javascript的一些高级特性和改进都受到函数语言开发模式的影响加进来的, 因此函数语言对于语言研究人员来说具有很大的吸引力; 此外因为函数语言的闭包、高阶函数、词法作用域的特性,在语言的安全性、效率优化方面还有很大的潜力可以挖掘; 并且函数语言跟动态脚本语言一样,程序的升级非常灵活,不需要重新编译、自我升级的特性是一款智能服务系统所必需的基础。

 

说到函数语言,除了它本身的语言特性魅力之外,在很多方面要区别或者落后于其他语言;首先是数学的思维方式,这是过程式和面向对象语言的开发者所陌生的模式,而且需要相关的知识基础,比如数理逻辑、类型系统等;同时在解决实际的问题方面,需要一些额外的模块跟外界打交道,如haskell的monads模块,需要熟悉很多的知识,学习成本增大;此外函数语言在基础开发库和开发工具方面也比较欠缺,影响了使用方便性,可能微软的f#在这方面好一些;还有就是函数语言跟其他语言的关系,python、ruby、lua语言可以相对方便的跟c语言协同开发,这方面函数语言可能也比较欠缺。

 

针对函数语言,对很多开发者来说有一种奇怪的魅力,虽然不期望它能解决一些具体的问题,虽然它的学习成本很高,但是它是软件开发方面新解决模式的一个方向,是语言研究的方向。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:培训初体验
后一篇:推荐一本书
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有