第一次读这本书,是我还在读书的时候,那时的我正为C++这样的语言而苦恼,就这样接触了ruby,ruby是一门动态类型的语言,语法优雅,非常灵活,也因为它我开始开发web程序。这本书并不是一本ruby程序指南,而是一本描述程序世界的书籍,虽然讲得不那么深入,却很广泛。

一、我为什么开发Ruby

编程语言的重要性

语言体现了人类思考的本质。因为语言,人与人之间才能传递知识和交流思想,才能做深入的思考。在语言学领域,有一个Sapir-Whirf假说,认为语言可以影响说话者的思想,即语言的不同,造成了思想的不同。在这里,我觉得计算机语言很符合这个假说。程序员由于使用的编程语言不同,他的思考方法和编写出来的代码都会受到编程语言的很大影响。

Ruby的原则

Ruby编程语言的设计目标是轻松编程、提高开发效率。

三个原则:

  • 简洁性
  • 扩展性
  • 稳定性

简洁性

面向对象编程——面向对象的思想只是把数据和方法看作一个整体,当做对象来处理,并没有解决以前解决不了的问题。面向对象的方法并没有实现任何新的东西,却要在运行时判定要调用的方法,倾向于增大程序的运行开销。实现同样的算法,面向对象的程序往往更慢,过去计算机的执行速度不够快,所以不容许这样的浪费。

内存管理,不用的内存现在可用垃圾收集器自动释放,而不用程序员自己去释放。变量和表达式的类型检查,在执行时已经可以自动检查,而不用在编译时检查了。

如果可以把伪代码中非实质性的东西去掉,只保留描述算法的部分就直接运行,那么这种编程语言不就是最好的吗?ruby的目标就是成为开发效率高、“能直接运行的伪码式编程语言”。

扩展性

编程语言作为软件开发工具,其最大的特征就是对要实现的功能没有限制。“如果想到就可以做到”,这听起来像小孩说的话,但这在编程语言的世界里,真的就是这么一回事。不管在什么领域,做什么处理,只要用一种编程语言编写出了程序,我们就可以说这种语言适用于这一领域。

实现扩展性的一个重要方法是抽象化。抽象化是指把数据和要做的处理都封装起来,就像一个黑盒子,我们不知道内部是如何实现的,但是可以用它。ruby在扩展性上看重的是如何最大限度地发挥程序员自身的能力。

稳定性

我相信,作为在世界上广泛使用的编程语言,应该有稳定的语法,不能像随风飘荡的灯芯那样闪烁不定。注:作者以Lisp的宏为例,指出了提供巨大的扩展性的同时也使得程序难以理解和阅读。

查看更多:点击打开链接

松本行弘的程序世界-不求精,但求全相关推荐

  1. 带您走进松本行弘的程序世界

    编者按: 在此书上市之前,特别对此书做一下方向说明,<松本行弘的程序世界>适合各层次程序设计人员和编程爱好者,也可以供相关技术人员参考. 本书的目的不是深入讲解哪种特定的技术,也没有全面讨 ...

  2. 《松本行弘的程序世界》中文版原作者序

    从年轻的时候开始,我就一直对编程语言有着极为浓厚的兴趣.比起"使用计算机去干什么?"这一问题,我总是一门心思在想着"如何将自己的意图传达给计算机?".从这个意义 ...

  3. 《松本行弘的程序世界》浅读笔记

    虽然目前对ruby不感兴趣,但这本书还是相当值得一读的.里面很多编程思想,和语言本身没太大的关系,但读来收获颇丰.众多面向对象语言的编程思想虽不尽一致,但是无论那种面向对象编程语言都具有以下的共同功能 ...

  4. 松本行弘的程序世界 笔记 (一)

    单一继承的特点是单纯的树结构,继承关系单纯. 多重继承有以下两个优点: 很自然地做到了单一继承的扩展: 可以继承多个类的功能. 多重继承会导致下列 3 个问题. 结构复杂化 优先顺序模糊 功能冲突 因 ...

  5. Ruby中的设计模式——《松本行弘的程序世界》

    < 设计模式 > 一书是用C++ 和 Smalltalk 介绍模式实例的.看了那些例子,大家都会感觉到,绝大多数的模式用 Smalltalk 实现起来非常简单.这是为什么呢? 因为Smal ...

  6. 人物访谈:松本行弘谈Ruby

    2011年11月11日,图灵社区就Ruby的设计和中国程序员关注的诸多话题,采访了Ruby设计者松本行弘先生,以下为访谈内容. 图灵社区:<松本行弘的程序世界>中文版上市之后,在程序员(不 ...

  7. 松本行弘为什么要开发Ruby

    Ruby是起源于日本的编程语言.近年来,特别是因为在Web开发方面的效率很高,Ruby引起了全世界的关注,它的应用范围也扩展到了很多企业领域. 作为一门编程语言,Ruby正在被越来越多的人所了解,而作 ...

  8. 松本行弘:我的编程人生

    生平: 松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县.1984年,就读于筑波大学第三学科信息学系.2年后休学,成为末日圣徒耶稣基督教会的宣讲师.大学复学后,加 ...

  9. 转:松本行弘:我的编程人生(r6笔记第83天)

    生平: 松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县.1984年,就读于筑波大学第三学科信息学系.2年后休学,成为末日圣徒耶稣基督教会的宣 讲师.大学复学后, ...

最新文章

  1. C++ 二维数组和指针数组
  2. 小学计算机ppt课教案,小学信息技术公开课教案《让幻灯片变得更加漂亮》教学设计与反思...
  3. CodeForces - 1353D Constructing the Array(bfs)
  4. vue-router判断页面未登录时,自动跳转到登录页
  5. Java基础-TreeSet与Java自定义类型的排序
  6. python实现安卓点击_python模拟点击在ios中实现的实例讲解
  7. html5向上向下兼容插件,Sticky Header-兼容IE8的页面顶部固定jQuery插件
  8. spark hive 结合处理 把多行变成多列
  9. php5d,php挖洞基础知识篇以及防范方法
  10. 我的博客也是男的(还好)
  11. html尖角效果,CSS3之尖角标签_html/css_WEB-ITnose
  12. java软考真题_2016年下半年软考程序员下午真题(3)
  13. 小程序解决上拉加载更多时数据超过1024KB
  14. 手机上好用的记事本工具
  15. 开放式耳机新巅峰!南卡OE Pro兼备澎湃音质、舒适佩戴、创新设计
  16. 如何快速在两台电脑之间传输大文件
  17. 和平精英分数计算机制,和平精英段位对应的积分完整一览 和平精英多少分上王牌...
  18. 清亡之路(4):最受误解的东南互保
  19. 关于如何在XP系统上运行opencv生成的C++动态库
  20. android系统允许icon角标,安卓手机角标显示方案

热门文章

  1. 艾永亮:巴奴进驻上海,火锅市场暗战升级,超级产品的加法与减法
  2. 如今的滴滴就是当初的出租车,被挑战是必然
  3. MP4文件太大怎么变小?简单的方法是什么?
  4. Happy Birthday to 亮
  5. Java集合如何遍历删除指定元素
  6. (非)关系型数据库都有哪些
  7. c 和python哪个荣耀_王者荣耀:国服野王哪家强?梦泪都只能屈居第二,他堪称无敌...
  8. 物工一班第一次作业17038016刘瑞
  9. 人脸识别运用于大熊猫,刷脸支付核心安全技术未来可期
  10. Kali Linux2021.2发布,增加大量新工具和功能