#读书笔记#松本行弘的程序设计·第一章

原创 2013年01月17日 07:10:41

本章介绍了Matz创作Ruby的缘由。Matz从高中时候就开始编程。但他自认为自己是个“怪才”,因为别的程序猿普遍关注程序可以做什么,而他却更关注我们如何有效的和机器进行交流。驱使他完成Ruby创作的动力,完全来自与自己的兴趣而不是为了“这下可以大赚一笔”或者名留青史之类的。很多人问道,你为什么开发Ruby,他认为最合适的回答应该和Linux的开发者Linux Torvalds对"为什么开发Linux“的回答一样

"因为它给我带来到了快乐!"

1.1.1编程语言的重要性

  语言是信息传递的媒介。因为语言的出现,使得人与人之间才可以传递知识和交流信息,也正是因为语言,才造成人和动物的区别。

  Matz认为,编程语言很大程度回决定使用者的思考方式和编程风格。

  《人月神话》里有这么一个观点:一个程序员,不管他使用什么样的语言,他在一定时间内编写出来的代码行数是一定的。但如果真的是这样,一个程序员每天可以写500行汇编和500行Ruby代码所能实现的功能还是有天壤之别的。感谢摩尔定律,现在的计算机已经价格更低,性能也更强劲。在程序猿的效率和程序执行效率这个矛盾中,前者已经成为了主要矛盾。如何用更少的成本和更高的效率开发出软件,是目前我们主要关注的问题。

1.1.2 Ruby的原则

  如果一种语言不假思索的吸收其他语言的特点,那么最后这么语言只会成为其他语言的翻版,从而失去它作为一种新的语言存在的价值。

  Ruby编程语言的设计目标是:高效开发,轻松工作。所以Ruby的一切语言特性都是围绕着这个原则来的。

  ·简洁性

  对比下同样是Fibonacci数列的实现,不难发现,Ruby省去了很多变量定义的代码,虽然这可能回造成一些代码安全性的问题,但可以让程序猿更加专注于实际算法的实现。想想读过的数据结构和算法书上不都是用伪代码来定义数据结构和算法么?不就是为了去掉非实质代码,让读者更加专注与算法本身。所以,Ruby做到了

  ·扩展性

  每种编程语言其实都有自己特定的应用领域,比如php适合后台网页开发,C适合底层的嵌入式开发。Ruby因为照顾到程序猿的效率,所以难免会牺牲程序执行上的性能。Matz在1999年写的《面向对象脚本语言Ruby》中就明确了Ruby不太适合“以数值计算为主的程序”和“数万行的大型程序”。但事实证明,Ruby的易用性还是造出了规模在万行,甚至几十万行的软件,甚至气象数据分析和物理领域也用到了Ruby。

  Ruby天生的面向对象特性,为后期拓展提供了便利。比如Ruby以“块”这种明白易懂的形式为程序员提供了相当于Lisp高阶函数的特性。

  关于扩展性,要特别注意不要“想当然的加入无谓的限制“。比如,刚开始开发Unicode的时候,作者认为16位即65535个字符可以表示世界上的所有文字了;同样,Y2K(千年虫)问题也是想当然的认为用2位数表示日期足够才导致的

  ·稳定性

  Ruby在创作的过程中,Matz拒绝了加入Lisp的宏特性,因为他认为这会是的语言变得过于灵活,使程序缺少统一的编程风格,给程序员阅读代码带来麻烦。比较对于每个程序员来说,读代码的时间要远远多于写代码的时间。

1.1.6一切皆因兴趣

  Matz开发Ruby,因为兴趣。而我学习Ruby也是因为兴趣。

  


相关文章推荐

《松本行弘的程序世界》读书笔记

半个月之前买了这本书,还是经园子里的一位网友推荐的。到现在看了一半多,基础的都看完了,剩下的几章可做高级部分来看。这本书看到现在,可以说感触很深,必须做一次读书笔记! 关于这本书,不了解的可以去网上...

【读书笔记】松本行弘的程序世界

为什么开发Ruby 编程语言与效率关系太紧密。 Ruby的设计原则 简洁性:内存管理,变量和表达式的类型检查都可以在执行时自动进行 扩展性 稳定性 面向对象 面向对象与编程的关系 程序员不要沦为计算机...

读书笔记《松本行弘的程序世界》

松本行弘 是 Ruby语言的作者, 我没有学习Ruby语言, 只是特别崇拜他! 类是对象的模板,相当于对象的雏形。在具有类功能的面向对象编程语言5中,对象都是由作为雏形的类来生成的,对象的性质也是...

JS高级程序设计读书笔记(第一章到第五章)

我现在都到js高级程序设计最难的章节,第六章,对象,虽然有人推荐不用全部读完,但我还是完整的读一遍吧,一遍可以敲代码一边看书理解加百度,我认为这种方式很好,可以加深理解增强印象,这是我觉得这本书比JS...

PHP程序设计读书笔记第一章

从数据库读出数据,输出表格
  • xyouke
  • xyouke
  • 2011年11月27日 16:19
  • 160

高质量程序设计指南C++/c语言读书笔记 第一章

第一章 高质量软件开发之道 1.1质量的定义 词典:(1)典型或本质的特征;(2)事物固有的或区别于其他物质的特征或本质;(3)优秀或出色的程度。 CMM定义:(1)一个系统、组件或过程符合特定...

C语言程序设计读书笔记汇总

  • 2014年07月01日 14:47
  • 1.3MB
  • 下载

C程序设计读书笔记

  • 2015年10月29日 20:11
  • 840KB
  • 下载

《Java语言程序设计(基础篇)》读书笔记(三)

《Java语言程序设计(基础篇)》读书笔记(三) 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/12676811 ...

C程序设计读书笔记

  • 2008年03月15日 22:05
  • 93KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#读书笔记#松本行弘的程序设计·第一章
举报原因:
原因补充:

(最多只允许输入30个字)