第一次读这本书,是我还在读书的时候,那时的我正为C++这样的语言而苦恼,就这样接触了ruby,ruby是一门动态类型的语言,语法优雅,非常灵活,也因为它我开始开发web程序。这本书并不是一本ruby程序指南,而是一本描述程序世界的书籍,虽然讲得不那么深入,却很广泛。
一、我为什么开发Ruby
编程语言的重要性
语言体现了人类思考的本质。因为语言,人与人之间才能传递知识和交流思想,才能做深入的思考。在语言学领域,有一个Sapir-Whirf假说,认为语言可以影响说话者的思想,即语言的不同,造成了思想的不同。在这里,我觉得计算机语言很符合这个假说。程序员由于使用的编程语言不同,他的思考方法和编写出来的代码都会受到编程语言的很大影响。
Ruby的原则
Ruby编程语言的设计目标是轻松编程、提高开发效率。
三个原则:
- 简洁性
- 扩展性
- 稳定性
简洁性
面向对象编程——面向对象的思想只是把数据和方法看作一个整体,当做对象来处理,并没有解决以前解决不了的问题。面向对象的方法并没有实现任何新的东西,却要在运行时判定要调用的方法,倾向于增大程序的运行开销。实现同样的算法,面向对象的程序往往更慢,过去计算机的执行速度不够快,所以不容许这样的浪费。
内存管理,不用的内存现在可用垃圾收集器自动释放,而不用程序员自己去释放。变量和表达式的类型检查,在执行时已经可以自动检查,而不用在编译时检查了。
如果可以把伪代码中非实质性的东西去掉,只保留描述算法的部分就直接运行,那么这种编程语言不就是最好的吗?ruby的目标就是成为开发效率高、“能直接运行的伪码式编程语言”。
扩展性
编程语言作为软件开发工具,其最大的特征就是对要实现的功能没有限制。“如果想到就可以做到”,这听起来像小孩说的话,但这在编程语言的世界里,真的就是这么一回事。不管在什么领域,做什么处理,只要用一种编程语言编写出了程序,我们就可以说这种语言适用于这一领域。
实现扩展性的一个重要方法是抽象化。抽象化是指把数据和要做的处理都封装起来,就像一个黑盒子,我们不知道内部是如何实现的,但是可以用它。ruby在扩展性上看重的是如何最大限度地发挥程序员自身的能力。
稳定性
我相信,作为在世界上广泛使用的编程语言,应该有稳定的语法,不能像随风飘荡的灯芯那样闪烁不定。注:作者以Lisp的宏为例,指出了提供巨大的扩展性的同时也使得程序难以理解和阅读。
查看更多:点击打开链接