来自网络的有关实验室语言与工程性语言的精彩论述
原文出自groups.google.com/group/pongba/msg/7d2d93586f10bb6f的google缓存
在 2010年4月25日 下午12:54,Alleluia <allul...@gmail.com>写道:
仅说GHC,那是小看它了.没有Haskell,可以有C,有Java,有Ruby,有Python,但是不会有C# Scala D.Haskell 的老大被MS收在了MS Cambridge,于是C#现在已然是半个Haskell.Linq直接来自于Monad, Extension Method直接来自于Haskell Class.于是你可以看到从语言特性本身来说,高司令领导下的Java寸步不前,而C#每一次翻新都是脱胎换骨.Scala的火热从另外一个侧面也说明了,程序员社区对Type inference这种技术的高度需求,也说明了程序员社区对Java这种固步自封的不满.你们不搞,我们自立根生.
> Haskell有没有用,要不要学?这个问题对于不同的人来说有不同的答案.如果你致力于程序语言本身的开发和研究特别是现代的程序语言技术,Haskell是必学的.如果你是普通的开发人员,不学不影响你的工作和生计.但学了可以让你看到更多更超前的东西.Fortran,Lisp,Haskell是程序语言理论的三个奠基之作.有了Fortran,才会有结构化面向对象,有了Lisp,才会有GC,Lambda.有了Haskell,才有Type inference.程序语言的发展总是从理论研究再到工程实践.理论研究的工作就是着眼于能行性,而工程实践的目的在于如果将能行的理论转化为在当前软硬件条件下可用的工具.工程实践总是要比计算机科学的理论慢上10-20年,这是社会经济发展的局限。作为一个普通的开发人员,如果你只是关注当下的流行语言,那么无疑你是在疲于奔命.学院派的实验作品与工程语言有很大的不同,学院派的实验作品严谨纯粹,成体系,语言特性高度浓缩.而工程语言,鲜有自己的发明创造。他们则为了实践的需要,他们总是从各个地方抄袭借鉴。这里抄一部分C,哪里借鉴一点Java,再揉合一些Lisp,然后起一个花里胡哨的名字.就能培养一大批fans跟在他们后面狂欢.学院派的理论思想被打散在许许多多花里胡哨的工程作品里。一个普通的程序员可能需要学习4-5种语言,才能学完一个学院派作品就可以讲完的东西。学院派的东西的确枯燥,抽象,学习难度非常大,而且没啥实际的用途.但是如果你肯花一个工程语言2倍的的时间,去多看一些基础的理论,多学一点学院派的实验作品.你再回过头去看那些工程语言,浏览一下他们的FAQ就会知道这些特性应该怎么用,怎么理解.
> 当然学习实验性语言不仅可以省下学习的时间,更重要的是让你在工程应用中对语言特性的选择有更明确的判断。软件开发里很多程序员喜欢钻牛角尖,学会了OO恨不得所有的程序都OO,学会了Lambda恨不得所有的程序都FP.很多人说这是程序员的职业病,我却不以为然.我觉得这是人类接受知识的通性。
> 我们的学习就是在不断的试错,只有错误的结果足够的多我们才能在这些错误中总结教训,发现某种知识的局限获得新的知识.关键在于试错的成本有多大,在我看来仅仅学习工程语言试错的成本是非常高的.学习实验性语言的最大优势就在这里,一方面它非常的纯粹,通常会把一个语言特性的推到极致,比如像lisp.在你学习的过程中用它来尝试解决各种问题就快速会发现诸多的局限和问题,而工程语言总是给你许多不同的选择,OO不行可以用模板,模板不行用FP.如果试错次数到总结经验之间有一个阈值的话,那么无疑工程语言是把这个次数摊薄了,你需要更多的时间和工作才能发现问题的所在。另外一方面,工程语言往往专注于一个领域,甚至专门为某一种硬件或者软件平台而开发。而实验性语言更关注于各种领域内普遍出现的共同性问题,它会抽掉具体硬件软件背景,把他们共同的问题抽象出来讨论甚至加以形式化比如GC,Type inference。也就是说你会在实验性语言中看到你专业领域内所看不到的东西.一个语言特性在某个领域内是圣经,在另一个领域内却是毒药。如果不去学习实验性语言,对于这种语言特性的局限认识需要你在大量不同的领域中试错才能获得。
> 我们经常说,学习一门技术不是目的,目的是用这个技术去解决问题。如果我们狭隘的理解这句话,那么Haskell这些实验性的语言自然没有什么意义。但是在我看来,语言的学习本身就是一种问题。而学习Haskell Lisp的目的恰
分享到:
相关推荐
就如何建设网络工程专业实验室进行研究,对建设实验室有帮助
充分发挥高校专业实验室的专长,介绍了高校实验室在卓越工程人才培养方面的地位和作用,从实验队伍建设、实验教学模式和开放实验室等方面分析了目前实验室建设中存在的主要问题,阐明了加强实验室建设的必要性和紧迫性...
南理工网络工程实验报告,包括网络工程基础、局域网配置、广域网配置以及网络安全实验
第1章 网络实验室建设背景 3 第2章 高教网络实验室发展方向和意义 4 第3章 实验室建设需求分析 6 3.1 实验室业务需求 6 3.2 实验室建设要点 7 第4章 网络实验室方案设计 9 4.1 实验室总体设计 9 4.2 实验室整体布局 ...
网络工程师实验大全【汇总】
组网技术与网络工程实验报告.pdf
网络工程 实验教案 实验讲义 电子教案 包含五个通用实验
计算机网络工程实验指导实验二、交换机基本配置
实验室设备管理系统(软件工程试验完整版) 包括实验的全过程,含有源代码 实验室设备管理系统(软件工程试验完整版) 包括实验的全过程,含有源代码
网络工程ciscos实验及实验结果,对应实验已经做好了哦!!已经包含在文件包里了哦~~
计算机组网实验综合报告 网络工程设计 计算机组网实验综合报告 网络工程设计
网络工程 实验 考试松达啊啊低洼大大低洼啊低洼
软件工程 实验室设备管理系统 可行性分析 设计 数据流图 数据流程图
java网络工程实验一实验报告,简单的客户/服务器通信。
某企业内部网络,使用了汇聚层备份技术,提高网络可用性。为了充分利用设备,我们在汇聚层使用负载均衡。网络综合实验 网络拓扑图 vrrp mstp
此资源包含完整实验报告(加上你的学号姓名即可提交) 组网技术实验对于没有基础的同学真的太难了,没有答案寸步难行啊
计算机网络工程实验报告计算机网络工程实验报告计算机网络工程实验报告
《网络空间安全原理、技术与工程》立体化教材建设研究与实践,闫怀志,,网络空间安全、软件工程等学科专业通常开设《网络空间安全技术》等课程作为重要公共课程或核心课程,课程内容通常涉及网络空间安
企业网络工程实验报告 武汉理工大学 网线的做法等