这是参与论坛讨论而写的回帖,被评五星了,哈哈,
,故收入博客。
原来的讨论贴在此:
http://www.iteye.com/topic/33971,
http://www.iteye.com/topic/33890
原来那个讨论的帖子我也仔细读了,也参与讨论了,觉得原作者的很多观点都似是而非。基本上是用过去的眼光来看问题。
现在的主流商业系统是由C++, java, C#这些主流语言写的,那是有历史多年形成的原因,技术本身这些语言和Smalltalk,ruby有什么优势? 用Smalltalk,ruby实现DSL容易多了。有下列原因造成了java, C#这些主流语言的成功:
1. 这些语言容易学,它们缺少高级的语言构造而使语义简单多了,不信去翻翻operation semantics和denotation semantics的书去,用operation semantics去分析这些语言不难,用denotation semantics去分析functional language就难多了。软件行业总的来讲还是缺人的,一大堆菜鸟在这个行当里当Coder,需求又这么大,找十个菜鸟用java上百上千行敲出来,比找个高手10行搞定还是容易的。
2. 高级语言需要高级的编译器,需要更快的计算机。比如说常规的递归,每次呼叫要生成新的Stack Frame,比iteration要慢,更耗费资源,后来出了个tail recursion, compiler/interpreter自己就可以解决这个问题了。写个factorial(x), return x==0?1:x*factorial(x-1); 一行搞定,底下让compiler自己生成goto去,比写iteration省事吧。用高级语言写,性能就会损失,我开始学C的时候那时还讲究怎么在关键地方用汇编提高效率,后来学C++还有人讨论C++的vtable太耗内存,java刚出来时的性能讨论,我就不用说了。现在随着编译器的进步,计算机速度的提高,在商业系统里都不是问题了。要用发展的眼光看问题,而不要用过去的眼光看问题。
说什么复杂的业务逻辑,商业系统技术上复杂个屁,再复杂能复杂过NP Complete?世界上有两种问题,一种是数学上有解的,一种是数学上暂时无解的,数学上暂时无解的就别干了。
商业系统的复杂在于组织上交流的困难,一个大公司,内部有个人能把商业流程搞得一清二楚就不错了,这个人还能把过程给软件人员讲清楚那简直是可遇不可求的事。这样用ruby反而有优势了,可以快速开发,促进交流,开发出个模型出来给商务人员看看,用用,自然交流起来就容易多了。
现在一个开发人员的开发效率比以前高多了,主要原因是因为开发语言和编译器的进步,这个趋势,只会继续下去,不要抱着过去的教条不放,java也是在不断改进的,加了reflection, 加了assert,加了泛型,下个版本,也要加脚本支持了。
未来是创造出来的,Hibernate打垮了CMP,Spring打垮了EJB,软件业的无穷魅力就在于有台计算机,别的都掌握在自己手里,现在动态语言的短处,慢慢都可以克服。
学习用新的思维去解决问题吧。
分享到:
相关推荐
新闻发布系统(任务三:静态布局).pdf新闻发布系统(任务三:静态布局).pdf新闻发布系统(任务三:静态布局).pdf新闻发布系统(任务三:静态布局).pdf新闻发布系统(任务三:静态布局).pdf新闻发布系统(任务三:静态布局)...
静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改 这些数据和函数都不会随之变化 当类中没有依赖对象标识的数据或行为时 就可以使用静态类 ">静态类是一种声明为 static 类型的 且仅包含...
作为一门静态类型语言,Kotlin旨在成为一种用于开发Android应用程序、Web后端、原生应用和跨平台解决方案的通用编程语言。本文将为您介绍Kotlin的特点、优势、应用领域以及如何使用Kotlin进行开发。 一、Kotlin的...
珀玛朗 静态类型语言的编译器
标准建模语言UML与Java实现:静态图:类图、对象图和包图.ppt
PureScript 是个小巧而强大的静态类型语言,可以编译成 JavaScript。PureScript 主要是由 Haskell 编写的。PureScript 示例代码:module Main where import Debug.Trace main = trace "Hello, World!"编译...
用于使用PT软件练习配置静态路由,它适用于初学者。
赋值后的静态句柄和实例莫名其妙消失了???在线等
Packet tracer 实验:静态路由配置,很详细,很不错
python 学习中关于动态类型静态类型强类型弱类型的问题
数据结构笔记之线性表(-):静态链表表示与实现
功能:中小型网站模板技术(生成静态页)示例; 实现了主明细表; 实现了全局标签; 实现了简单的Repeat控件; 类型:免费开源; 网站文件: Index.aspx : 首页 (同时处理生成静态页逻辑) Static.htm : 静态模板...
主要介绍了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,需要的朋友可以参考下
国际软件测试工程师ISTQB初级课件 第三课:静态技术 官方培训机构,保证权威
51单片机开发板实验:静态数码管显示程序源代码。 1、开发环境:KEIL。 2、编程语言:C语言。
静态方法为什么不能调用非静态成员? 静态方法和实例方法有何不同? 重载和重写的区别 什么是可变长参数? 基本数据类型 Java 中的几种基本数据类型了解么? 基本类型和包装类型的区别? 包装类型的缓存机制了解么? ...
小猫编程语言Kitten是一种静态类型的,旨在简化,提高速度和提高安全性。 这是该语言的正在进行中的实现,包括: 用于测试代码的交互式控制台。 口译员。 生成静态可执行文件的本机代码编译器。 (不完整)贡献我...
Mirah,又叫做Duby,又一个基于JVM平台的静态类型语言,它拥有Ruby一样的语法的同时,且拥有Java般的速度。他是由JRuby衍生出来的项目,旨在让Ruby能更进一步的沁入JVM平台。 Mirah(Duby)的特性: Ruby的语法 可...
Flow 是 Facebook 出品的一个用于 JavaScript 代码的静态类型检查工具。用于找出 JavaScript 代码中的类型错误。Flow 采用 OCaml 语言开发。 标签:Flow