《松本行弘的程序世界 第1章 我为什么开发Ruby》学习笔记

1.1 我为什么开发Ruby

1993年开始开发Ruby

1.1.1 编程语言的重要性

语言体现了人类思考的本质。
语言可以影响说话者的思想。
程序员由于使用的编程语言不同,他的思考方法和编写出来的代码都会受到编程语言的很大影响。
如果我们选择了好的编程语言,那么成为好程序员的可能性就会大很多。

一个程序员,不管他使用什么编程语言,他在一定时间里编写的程序行数是一定的。

程序员根据所选择编程语言的不同,他的开发效率会有十倍、百倍甚至上千倍的差别。
软件开发,要求能够用更少的成本、更短的时间,开发出更多的软件。
需要开发的软件越来越多,开发成本却有限,所以对于开发效率的要求就很高。编程语言就成了解决这个矛盾的重要工具。

1.1.2 Ruby的原则

Ruby编程语言的设计目标是,让作为语言设计者的我能够轻松编程,进而提高开发效率。
三个设计原则:

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

1.1.3 简洁性

编程语言在这半个世纪以来是向着简洁化的方向发展的,从程序的简洁程度就可以看出一门编程语言本身的能力。

随着编程语言的演进,程序员已经可以更简单、更抽象地编程了。

随着计算机性能的提高,以前在编程语言里实现不了的功能,现在也可以做到了。
面向对象的思想只是把数据和方法看做一个整体,当做对象来处理,并没有解决以前解决不了的问题。
面向对象的方法并没有实现任何新的东西,却要在运行时判定要调用的方法,倾向于增大程序的运行开销。
现在,由于计算机性能大大提高,只要可以提高软件开发效率,浪费一些计算机资源也无所谓了。
变量和表达式的类型检查,在执行时已经可以自动检查,而不用在编译时检查了。
Ruby不进行明确的数据类型定义,不必要的声明都可以省略。
Ruby的目标就是成为开发效率高、“能直接运行的伪码式编程语言”。

class Sample {
    private static int fib (int n) {
        if (n < 2) {
            return n;
        } else {
            return fib(n-2) + fib(n-1);
        }
    }
    
    public static void main(String[] args) {
        System.out.println("fib(6)=" + fib(6));
    }

}
def fib(n)
    if n < 2
        n
    else
        fib(n - 2) + fib(n - 1)
    end
end
print "fib (6) =", fib(6), "\n"

1.1.4 扩展性

编程语言作为软件开发工具,其最大的特征就是对要实现的功能事先没有限制。

编程语言开发者实际上并不知道这种编程语言会用来开发什么,会在哪些领域中应用。所以,编程语言的扩展性非常重要。
实现扩展性的一个重要方法就是抽象化。抽象化就是把数据和要做的处理都封装起来,就像一个黑盒子,我们不知道它的内部是怎么实现的,但是可以用它。
以前的编程语言在抽象化方面是很弱的,要做什么处理首先要了解很多编程语言的细节。而很多面向对象或函数式的现代编程语言,都在抽象化方面做得很好。

程序块——>List高阶函数的特性
已有类的扩展特性
编程语言不是从安全性角度考虑为减少程序员犯错误,而是在程序员自己负责的前提下为他提供最大限度发挥能力的灵活性。

不要因为想当然而加入无谓的限制。
从某种角度说,编程的历史就是因为想当然而失败的历史。
Ruby对整数范围不做任何限制,尽最大努力排除“想当然”。

1.1.5 稳定性

Ruby没有宏。
宏可以替换掉原有的程序,给原有的程序加入新的功能。如果有了宏,不管是控制结构,还是赋值,都可以随心所欲地进行扩展。
Lisp流,其语言核心部分仅仅提供极为有限的特性和构造,其余的控制结构都是在编译时通过用宏来组装其核心特性来实现的。

如果在编程语言中引入宏,活用宏的程序就会像是用完全不同的专用编程语言写出来的一样。
写出来的程序是否具有很高的可读性非常重要。从整体来看,程序员读程序的时间可能比写程序的时间还长。读程序包括为理解程序的功能去读,或者是为维护程序去读,或者是为调试程序去读。
编程语言的语法是解读程序的路标。

1.1.6 一切皆因兴趣

编程语言存在的目的是让人用它来开发程序,并且尽量能提高开发效率。这样的话,才能让人在开发中体会到编程的乐趣。

程序开发本来就是一件很快乐、很刺激和很有创造性的事情。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,273评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,349评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,709评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,520评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,515评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,158评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,755评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,660评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,203评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,287评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,427评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,122评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,801评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,272评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,393评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,808评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,440评论 2 359

推荐阅读更多精彩内容