您的位置: 首页 > 技术文档 > 网络编程 > [翻译] Matz 关于技术的对话
[J2EE] 实战开发EJB 回到列表 内容管理系统的设计和选型
 [翻译] Matz 关于技术的对话

作者:eiffelqiu 时间: 2004-01-31 文档类型:翻译 来自:牧羊人手记

[eiffel 翻译]Matz 关于技术的对话

注: Matz 就是著名的编程语言 Ruby 的创始人(日本人) 这段对话翻译自 artima.com 网站对 Matz 的访谈的第四部分。 英文文章原址: http://www.artima.com/intv/craft.html 未经本人同意,不要任何地方转载这篇翻译文章

(最先发表在本人的网站 http://www.eiffelqiu.com)。

关于技术
Bill Venners:
在一次CIPS Connections的交流中,你曾经说:” 我读过很多开放源码软件的源码,例如,Perl,Python,和很多风格LISP解释器的源码,我知道在写Ruby 之前我应该了解他们“ 你觉得程序员通过读源码可以得到哪些益处?

Yukihiro Matsumoto:
程序员通过读源码可以收益颇多。你无法简单的告诉别人如何成为一个好的程序员,你可以向他们提供一些好的编程原则,你可以向他们描述一些你自己的一些好的设计经验,但是你无法给予他们如果成为一个好程序员的实际知识。我相信获取这些实际知识的最好方法就是读代码。写代码当然可以帮助你成为一个好的程序员,但是读代码这种方式更好一些。

Bill Venners:
为什么

Yukihiro Matsumoto:
因为成为一个好的程序员实际上是跟经验有关,代码是对程序员思想,态度,想法的表达。通过读代码,你不仅可以了解程序员要完成一个什么特殊的任务以及知道他们是如何实现的,而且你也可以通过他们的思考方式而增长见识。这就是为什么读程序可以让你成为更好的程序员的原因。除此之外,如果你想知道如何用代码实现一些东西,你可以打开一本计算机科学方面的书籍,书本可以向你解释算法,但是如果你想更快的了解算法,那么读代码将是最好的方式。此外,你可以执行代码以实现算法。你可以在代码执行算法的时候使用一个调试器来观察它。这种方式要远比读书本要好。

学习语言

Bill Venners:
在CIPS Connection的交流中, 你给出了程序员的十个技巧。其中之一是: ” 学不只一种程序语言,最好是不同风格的,比如脚本语言,面向对象语言,函数式语言,逻辑式语言,等等“,学习多种程序语言有什么好处?

Yukihiro Matsumoto:
每个程序或者系统都有它自己的文化。每种语言或者系统都有自己的核心概念。这些概念中大多数是好的,但是他们是不同的,通过学习多种语言和系统,你可以接受不同的想法,进而增强你自己的观点。例如,如果你不了解Prolog语言,你就不会了解目标指导性编程的威力 (通过应用指定规则描述要解决的问题来编程的方式)。这是一个非常有趣的概念,是一种不同的思考方法。但是如果你不了解Prolog或者谓词逻辑的话,很难自己发现这种思考方式。了解其他的系统和范式将会扩展自己头脑中的世界。这就是为什么我极力推荐学习多种语言的原因

关注基本概念

Bill Venners:
在你的十个最高技巧中你也说过:”不要太过多的关注于工具,工具是会变化的,而算法和基本概念不会“,你这是什么意思。

Yukihiro Matsumoto:
部分是关于以人为本而不是以机器的观点。人的变化非常的慢,但是系统变化的非常快。100 年前的人们和现在没什么太大的不同。 100 年前我们没有计算机,50年前我们拥有了计算机,但是他们非常原始。从今之后的20年,我无法想象计算机将会是什么样子的,但是我可以想象的出20年后的人们将会如何思考。另外一个例子是数学。数学拥有非常悠久的历史。它是非常成熟的科学,但是计算机科学不是。所以从数学中获取思想是非常好的。工具会随着时间的流逝轻易的变化。如果你太多的关注现在的工具,那么你的努力只能得到短期的回报。如果你想获得持久的收益,你应该更关注一些基础的东西。关注数学和人类心理学。关注那些已经建立起来的科学和已经建立起来的思维方式。

懒惰:
Bill Venners:
你曾经在你的十大技巧中提到:”懒惰,机器将会服务于人类。经常程序员会不经意的服务于机器。让机器服务于你。尽可能做哪些让你懒惰的事情“,为什么我们要设法变得懒惰?

Yukihiro Matsumoto:
因为你想变得懒惰。你要做任何可以减轻自己工作的事情,我努力工作来减轻自己的工作,变得懒惰。

Bill Venners:
我相信这点

Yukihiro Matsumoto:
我非常渴望变得懒惰。

考虑接口

Bill Venners:
你在十大技巧中也提到了:”对他人友好,首先考虑接口: 人对人,人对机器和机器对机器的接口。再次记住人的因素是非常重要的 “ ,你这是什么意思,”首先考虑接口?“

Yukihiro Matsumoto:
接口是我们作为一个用户所看到的一切。如果我的计算机正在内部做非常复杂的事情,但是复杂性并没有表露在外面,我不在乎。我不在乎计算机是否在内部辛苦的工作。我只要以好的方式呈现正确的结果。这就是说接口就是一切,至少对于普通的计算机用户使用计算机的时候,情况就是如此,那就是为什么我们要关注接口的原因。一些软件人士,比如天气预报员,数字计算者,他们更多的是了解事物的内部,但是他们所处的是非常有限的计算机科学领域。大多数程序员需要关注表面,接口,因为对他们来说那才是最重要的。

Bill Venners:
你也提到了机器对机器的接口,你的意思是不是仅仅是对用户的接口或者机器的接口

Yukihiro Matsumoto:
不只是用户接口。当机器之间通过一个协议互相对话的时候,他们不在乎对方内部是如何实现的,最重要的是通过恰当的协议正确的传递恰当的结果,这才是最重要的。如果你有的系统有一个好的接口,足够的时间和财务预算,你可以继续工作在你的系统上。如果你的系统有错误或者是太慢,那么你可以改进它。但是如果你的系统有一个糟糕的接口,那么你就基本上是一无所有了。内部实现有多高的技巧并不重要。如果你的系统有一个糟糕的接口,没有人会使用它。所以接口或者系统的表面特征,无论是对用户还是对其他机器来说,都是非常重要的。

本文链接:http://www.blueidea.com/tech/program/2004/1597.asp 

出处:牧羊人手记
责任编辑:jimbob

◎进入论坛网络编程版块参加讨论

相关文章 更多相关链接
选择开发技术四步曲
编程活动中几个不良现象
疯狂的程序员 第七十五回
疯狂的程序员 第七十四回
疯狂的程序员 第七十三回
作者文章
使用 Velocity 模板引擎开发网站
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2