原文来自:
http://blog.thinkphp.de/archives/170-Keynote-of-Tim-Bray-some-interesting-comparison-between-PHP,-Rails-and-Java.html
觉得很有趣。首先有趣的是作者的身份,Tim Bray是sun公司负责web技术的主管,但是在比较中丝毫看不出作者对Java偏袒;其次是作者的结论,正如在回帖中有人提及的那样,“Java赢在开发工具,却输在开发效率”。这可真有是个绝妙的讽刺!第三点是这个贴子在原出处和TSS上都得到了激烈的讨论。看来随着RoR的出现和逐渐成熟,一次类似当年Java出现时的语言优劣的争执又将无可避免的上演了。
我们自己应该以一个什么样的态度来迎接这次变革呢?其实归根结底,希望用某种编程语言来大幅度的降低软件开发的复杂度是不切实际的。动态语言在灵活性、初期的开发效率(之所以强调初期,因为个人认为动态语言的灵活性在提高开发效率的同时会弱化采用工具或者其他控制手段保证代码质量的可能。)有着先天的优势;但是像Java或者C#这样强类型的准静态语言(Java和C#都已经并且将越来越多的加入很多有意义的动态语言的特征,比如Java6对脚本语言的支持)在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中也有着非常强的优势。
记得七八年前,自己开始从一个C++的熟练使用者向Java语言迁移时,刚开始的确对Java语言的简单(比起C++要命的灵活性)很欣赏,因为在一个大型项目里最重要的是代码的健壮性。但是随着Java的越来越成熟,使得Java越来越复杂,而且和Java相关的很多概念也越来越超越Java语言本身。这无疑大大的增加了学习Java的成本。
再来看RoR,的确非常轻盈和简单。这得益于它对动态语言和OO特性的完美结合。但是个人认为纯粹技术上的优雅不一定会换来商业上的成功。对于软件工业来说,最重要的还是分解业务逻辑的复杂度和不确定性。毕竟,正如我的一个同事所说的那样,“无论用任何语言,初期的开发成本我们还是投入的起的。”呵呵,据他说,他经历的项目在初期的开发上占的成本大概只占到整个项目开发成本的1/6到1/5。
注:初期开发成本,是指一个项目中,最初完成开发人员视角的系统功能时所花费的成本。
分享到:
相关推荐
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
iPhone的软件开发包(SDK)基于标准的Dynamic HTML (DHTML),这意味着开发者可以利用他们熟悉的前端技术(如HTML、CSS、Ajax)以及后端技术(如PHP、Ruby on Rails、Java)来开发应用。 #### 三、案例分析:构建...
Laragon使编码更有趣,更容易。 即时设置-极其快速,轻巧,直观且功能强大的通用开发环境,可用于创建... 在MySQL,PostgreSQL,MongoDB,Memcached,Redis,PHP,Ruby,Python,Node.js和Java上可移植,可靠且零操作。
"programming-challenges:我觉得有趣的编程挑战"这个主题集合了一些吸引人的编程任务,旨在锻炼和提升程序员的技能。这些挑战覆盖了多种编程语言,如Java、Python、JavaScript、C++、Ruby以及PHP,这意味着你可以...
8. **Rails**: 教授Ruby on Rails框架的基础和高级功能。 9. **Python**: 引导读者掌握Python编程语言的基础和进阶知识。 10. **PMP**: 提供项目管理专业资格认证(PMP)备考指南。 11. **物理**: 结合IT背景介绍物理...
1. **编程语言和框架**:这些表白源码可能涉及到常见的编程语言,如HTML、CSS、JavaScript、Python、Java或PHP等。它们也可能利用了各种前端或后端框架,如Bootstrap、React、Vue.js、Django、Ruby on Rails等,以...
- **Arjen Lentz**,OpenQuery的执行董事和《High Performance MySQL, Second Edition》的合著者,赞赏了作者的独特风格和幽默感,这使得讨论潜在枯燥的话题变得生动有趣。他称这本书为开发者书架上一个极好的新资源...