我为什么开发Ruby

因为它给我带来了快乐
松本行弘. 松本行弘的程序世界 (图灵程序设计丛书) (Chinese Edition) (Kindle位置116). 人民邮电出版社. Kindle 版本.

Lines

  • 语言体现了人类思考的本质
  • 程序员由于使用的编程语言不同,他的思考方法和编写出来的代码都会受到编程语言的很大影响。
  • Ruby编程语言的设计目标是,让作为语言设计者的我能够轻松编程,进而提高开发效率。

    设计原则

  • 简洁性
    • Lisp(Paul Graham - 简洁就是力量)
    • Ruby不进行明确的数据类型定义,不必要的声明都可以省略
    • 如果可以把伪码中非实质的东西去掉,只保留描述算法的部分就直接运行,那么这种编程语言不就是最好的吗?Ruby的目标就是成为开发效率高、“能直接运行的伪码式编程语言”
  • 扩展性
    • 实现扩展性的一个重要方法是抽象化
    • 很多面向对象或者函数式的现代编程语言,都在抽象化方面做得很好
    • 关于扩展性,有一点是不能忽视的,即“不要因为想当然而加入无谓的限制”。比如说,刚开始开发Unicode时,开发者想当然地认为16位(65535个字符)就足够容纳世界上所有的文字了;同样,Y2K问题也是因为想当然地认为用2位数表示日期就够了才导致的。从某种角度说,编程的历史就是因为想当然而失败的历史。而Ruby对整数范围不做任何限定,尽最大努力排除“想当然”。
  • 稳定性
    • 拒绝了宏
    • 稳定的语法

面向对象

编程和面向对象的关系

数据抽象和继承

多重继承的缺点

两个误解

duck Typing诞生之前

元编程

程序块

程序块的威力

用块做循环

精通集合的使用

设计模式

Ajax

Ruby on Rails

MVC 和 Ruby on Rails

开放类和猴子补丁