松本行弘的程序世界-不求精,但求全
第一次读这本书,是我还在读书的时候,那时的我正为C++这样的语言而苦恼,就这样接触了ruby,ruby是一门动态类型的语言,语法优雅,非常灵活,也因为它我开始开发web程序。这本书并不是一本ruby程序指南,而是一本描述程序世界的书籍,虽然讲得不那么深入,却很广泛。
一、我为什么开发Ruby
编程语言的重要性
语言体现了人类思考的本质。因为语言,人与人之间才能传递知识和交流思想,才能做深入的思考。在语言学领域,有一个Sapir-Whirf假说,认为语言可以影响说话者的思想,即语言的不同,造成了思想的不同。在这里,我觉得计算机语言很符合这个假说。程序员由于使用的编程语言不同,他的思考方法和编写出来的代码都会受到编程语言的很大影响。
Ruby的原则
Ruby编程语言的设计目标是轻松编程、提高开发效率。
三个原则:
- 简洁性
- 扩展性
- 稳定性
简洁性
面向对象编程——面向对象的思想只是把数据和方法看作一个整体,当做对象来处理,并没有解决以前解决不了的问题。面向对象的方法并没有实现任何新的东西,却要在运行时判定要调用的方法,倾向于增大程序的运行开销。实现同样的算法,面向对象的程序往往更慢,过去计算机的执行速度不够快,所以不容许这样的浪费。
内存管理,不用的内存现在可用垃圾收集器自动释放,而不用程序员自己去释放。变量和表达式的类型检查,在执行时已经可以自动检查,而不用在编译时检查了。
如果可以把伪代码中非实质性的东西去掉,只保留描述算法的部分就直接运行,那么这种编程语言不就是最好的吗?ruby的目标就是成为开发效率高、“能直接运行的伪码式编程语言”。
扩展性
编程语言作为软件开发工具,其最大的特征就是对要实现的功能没有限制。“如果想到就可以做到”,这听起来像小孩说的话,但这在编程语言的世界里,真的就是这么一回事。不管在什么领域,做什么处理,只要用一种编程语言编写出了程序,我们就可以说这种语言适用于这一领域。
实现扩展性的一个重要方法是抽象化。抽象化是指把数据和要做的处理都封装起来,就像一个黑盒子,我们不知道内部是如何实现的,但是可以用它。ruby在扩展性上看重的是如何最大限度地发挥程序员自身的能力。
稳定性
我相信,作为在世界上广泛使用的编程语言,应该有稳定的语法,不能像随风飘荡的灯芯那样闪烁不定。注:作者以Lisp的宏为例,指出了提供巨大的扩展性的同时也使得程序难以理解和阅读。
查看更多:点击打开链接
松本行弘的程序世界-不求精,但求全相关推荐
- 带您走进松本行弘的程序世界
编者按: 在此书上市之前,特别对此书做一下方向说明,<松本行弘的程序世界>适合各层次程序设计人员和编程爱好者,也可以供相关技术人员参考. 本书的目的不是深入讲解哪种特定的技术,也没有全面讨 ...
- 《松本行弘的程序世界》中文版原作者序
从年轻的时候开始,我就一直对编程语言有着极为浓厚的兴趣.比起"使用计算机去干什么?"这一问题,我总是一门心思在想着"如何将自己的意图传达给计算机?".从这个意义 ...
- 《松本行弘的程序世界》浅读笔记
虽然目前对ruby不感兴趣,但这本书还是相当值得一读的.里面很多编程思想,和语言本身没太大的关系,但读来收获颇丰.众多面向对象语言的编程思想虽不尽一致,但是无论那种面向对象编程语言都具有以下的共同功能 ...
- 松本行弘的程序世界 笔记 (一)
单一继承的特点是单纯的树结构,继承关系单纯. 多重继承有以下两个优点: 很自然地做到了单一继承的扩展: 可以继承多个类的功能. 多重继承会导致下列 3 个问题. 结构复杂化 优先顺序模糊 功能冲突 因 ...
- Ruby中的设计模式——《松本行弘的程序世界》
< 设计模式 > 一书是用C++ 和 Smalltalk 介绍模式实例的.看了那些例子,大家都会感觉到,绝大多数的模式用 Smalltalk 实现起来非常简单.这是为什么呢? 因为Smal ...
- 人物访谈:松本行弘谈Ruby
2011年11月11日,图灵社区就Ruby的设计和中国程序员关注的诸多话题,采访了Ruby设计者松本行弘先生,以下为访谈内容. 图灵社区:<松本行弘的程序世界>中文版上市之后,在程序员(不 ...
- 松本行弘为什么要开发Ruby
Ruby是起源于日本的编程语言.近年来,特别是因为在Web开发方面的效率很高,Ruby引起了全世界的关注,它的应用范围也扩展到了很多企业领域. 作为一门编程语言,Ruby正在被越来越多的人所了解,而作 ...
- 松本行弘:我的编程人生
生平: 松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县.1984年,就读于筑波大学第三学科信息学系.2年后休学,成为末日圣徒耶稣基督教会的宣讲师.大学复学后,加 ...
- 转:松本行弘:我的编程人生(r6笔记第83天)
生平: 松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县.1984年,就读于筑波大学第三学科信息学系.2年后休学,成为末日圣徒耶稣基督教会的宣 讲师.大学复学后, ...
最新文章
- C++ 二维数组和指针数组
- 小学计算机ppt课教案,小学信息技术公开课教案《让幻灯片变得更加漂亮》教学设计与反思...
- CodeForces - 1353D Constructing the Array(bfs)
- vue-router判断页面未登录时,自动跳转到登录页
- Java基础-TreeSet与Java自定义类型的排序
- python实现安卓点击_python模拟点击在ios中实现的实例讲解
- html5向上向下兼容插件,Sticky Header-兼容IE8的页面顶部固定jQuery插件
- spark hive 结合处理 把多行变成多列
- php5d,php挖洞基础知识篇以及防范方法
- 我的博客也是男的(还好)
- html尖角效果,CSS3之尖角标签_html/css_WEB-ITnose
- java软考真题_2016年下半年软考程序员下午真题(3)
- 小程序解决上拉加载更多时数据超过1024KB
- 手机上好用的记事本工具
- 开放式耳机新巅峰!南卡OE Pro兼备澎湃音质、舒适佩戴、创新设计
- 如何快速在两台电脑之间传输大文件
- 和平精英分数计算机制,和平精英段位对应的积分完整一览 和平精英多少分上王牌...
- 清亡之路(4):最受误解的东南互保
- 关于如何在XP系统上运行opencv生成的C++动态库
- android系统允许icon角标,安卓手机角标显示方案