七周七语言

出版日期:2012-5-8
ISBN:9787115276110
作者:Bruce A.Tate
页数:246页

内容概要

作者简介:
Bruce A. Tate RapidRed公司总裁,该公司主要为Ruby轻量级开发提供咨询。他曾任职于IBM公司,并担任过多家公司的客户解决方案总监和CTO。著作有十余本,包括荣获Jolt大奖的Better, Faster, Lighter Java。
译者简介:
戴玮 80后宅男,中科院自动化所在读博士,热爱机器学习与计算机视觉。编程喜C#、Ruby、Haskell而厌Java。
白明 Neusoft某开发部技术总监,拥有多年电信级软件开发经验;资深C程序员,对Common Lisp、Python等小众语言也有涉猎;对开源软件有着浓厚的兴趣,曾先后贡献了lcut、cbehave等多个工具框架;喜好写博客http://bigwhite.blogbus.com),耕耘七年,仍孜孜不倦。
巨成 万方数据数字出版事业部架构师,.NET开发人员。

书籍目录

目      录

第1章 简介 1
1.1 不走寻常路 1
1.2 语言 2
1.3 谁应该买这本书 4
1.3.1 学会如何学习 4
1.3.2 乱世英雄 4
1.4 谁不应该买这本书 5
1.4.1 超越语法 5
1.4.2 不是安装指南 6
1.4.3 不是编程参考 6
1.4.4 严格督促 6
1.5 最后一击 7
第2章 Ruby 8
2.1 Ruby简史 9
2.2 第一天:找个保姆 10
2.2.1 快速起步 10
2.2.2 从命令行执行Ruby 10
2.2.3 Ruby的编程模型 11
2.2.4 判断 12
2.2.5 鸭子类型 15
2.2.6 第一天我们学到了什么 16
2.2.7 第一天自习 16
2.3 第二天:从天而降 17
2.3.1 定义函数 17
2.3.2 数组 17
2.3.3 散列表 19
2.3.4 代码块和yield 20
2.3.5 定义类 22
2.3.6 编写Mixin 25
2.3.7 模块、可枚举和集合 26
2.3.8 第二天我们学到了什么 27
2.3.9 第二天自习 28
2.4 第三天:重大改变 28
2.4.1 打开类 29
2.4.2 使用method_missing 30
2.4.3 模块 31
2.4.4 第三天我们学到了什么 35
2.4.5 第三天自习 35
2.5 趁热打铁 35
2.5.1 核心优势 35
2.5.2 不足之处 37
2.5.3 最后思考 37
第3章 Io 38
3.1 Io简介 38
3.2 第一天:逃学吧,轻松一下 39
3.2.1 开场白 39
3.2.2 对象、原型和继承 40
3.2.3 方法 43
3.2.4 列表和映射 44
3.2.5 true、false、nil以及单例 46
3.2.6 Steve Dekorte访谈录 48
3.2.7 第一天我们学到了什么 49
3.2.8 第一天自习 50
3.3 第二天:香肠大王 50
3.3.1 条件和循环 51
3.3.2 运算符 52
3.3.3 消息 54
3.3.4 反射 56
3.3.5 第二天我们学到了什么 57
3.3.6 第二天自习 57
3.4 第三天:花车游行和各种奇妙经历 58
3.4.1 领域特定语言 58
3.4.2 Io的method_missing 60
3.4.3 并发 62
3.4.4 第三天我们学到了什么 64
3.4.5 第三天自习 64
3.5 趁热打铁 65
3.5.1 核心优势 65
3.5.2 不足之处 66
3.5.3 最后思考 66
第4章 Prolog 67
4.1 关于Prolog 68
4.2 第一天:一名优秀的司机 68
4.2.1 基本概况 68
4.2.2 基本推论和变量 69
4.2.3 填空 70
4.2.4 合一,第一部分 73
4.2.5 实际应用中的Prolog 75
4.2.6 第一天我们学到了什么 77
4.2.7 第一天自习 77
4.3 第二天:离瓦普纳法官开演还有
15分钟 78
4.3.1 递归 78
4.3.2 列表和元组 79
4.3.3 列表与数学运算 82
4.3.4 在两个方向上使用规则 83
4.3.5 第二天我们学到了什么 86
4.3.6 第二天自习 87
4.4 第三天:维加斯的爆发 87
4.4.1 解决数独问题 87
4.4.2 八皇后问题 91
4.4.3 第三天我们学到了什么 96
4.4.4 第三天自习 96
4.5 趁热打铁 96
4.5.1 核心优势 97
4.5.2 不足之处 97
4.5.3 最后思考 98
第5章 Scala 99
5.1 关于Scala 99
5.1.1 与Java的密切关系 100
5.1.2 没有盲目崇拜 100
5.1.3 Martin Odersky访谈录 100
5.1.4 函数式编程与并发 101
5.2 第一天:山丘上的城堡 102
5.2.1 Scala 类型 102
5.2.2 表达式与条件 103
5.2.3 循环 105
5.2.4 范围与元组 107
5.2.5 Scala中的类 109
5.2.6 扩展类 111
5.2.7 第一天我们学到了什么 113
5.2.8 第一天自习 114
5.3 第二天:修剪灌木丛和其他新把戏 114
5.3.1 对比var和val 115
5.3.2 集合 115
5.3.3 集合与函数 119
5.3.4 第二天我们都学到了什么 124
5.3.5 第二天自习 124
5.4 第三天:剪断绒毛 125
5.4.1 XML 125
5.4.2 模式匹配 126
5.4.3 并发 128
5.4.4 实际中的并发 129
5.4.5 第三天我们学到了什么 132
5.4.6 第三天自习 132
5.5 趁热打铁 133
5.5.1 核心优势 133
5.5.2 不足之处 134
5.5.3 最后思考 135
第6章 Erlang 136
6.1 Erlang简介 136
6.1.1 为并发量身打造 137
6.1.2 Joe Armstrong博士访谈录 138
6.2 第一天:以常人面目出现 139
6.2.1 新手上路 140
6.2.2 注释、变量和表达式 140
6.2.3 原子、列表和元组 141
6.2.4 模式匹配 142
6.2.5 函数 144
6.2.6 第一天我们学到了什么 147
6.2.7 第一天自习 147
6.3 第二天:改变结构 148
6.3.1 控制结构 148
6.3.2 匿名函数 150
6.3.3 列表和高阶函数 150
6.3.4 列表的一些高级概念 153
6.3.5 第二天我们学到了什么 156
6.3.6 第二天自习 157
6.4 第三天: 红药丸 157
6.4.1 基本并发原语 157
6.4.2 同步消息 160
6.4.3 链接进程以获得可靠性 162
6.4.4 第三天我们学到了什么 167
6.4.5 第三天自习 167
6.5 趁热打铁 167
6.5.1 核心优势 168
6.5.2 不足之处 169
6.5.3 最后思考 169
第7章 Clojure 170
7.1 Clojure入门 170
7.1.1 一切皆Lisp 170
7.1.2 JVM 171
7.1.3 为并发更新 171
7.2 第一天:训练Luke 172
7.2.1 调用基本函数 172
7.2.2 字符串和字符 174
7.2.3 布尔值和表达式 175
7.2.4 列表、映射表、集合以及
向量 176
7.2.5 定义函数 179
7.2.6 绑定 180
7.2.7 匿名函数 182
7.2.8 Rich Hickey访谈录 183
7.2.9 第一天我们学到了什么 184
7.2.10 第一天自习 185
7.3 第二天:Yoda与原力 185
7.3.1 用loop和recur递归 185
7.3.2 序列 186
7.3.3 延迟计算 189
7.3.4 defrecord和protocol 191
7.3.5 宏 193
7.3.6 第二天我们学到了什么 194
7.3.7 第二天自习 195
7.4 第三天:一瞥魔鬼 195
7.4.1 引用和事务内存 196
7.4.2 使用原子 197
7.4.3 使用代理 198
7.4.4 future 200
7.4.5 还差什么 200
7.4.6 第三天我们学到了什么 201
7.4.7 第三天自习 201
7.5 趁热打铁 201
7.5.1 Lisp悖论 202
7.5.2 核心优势 202
7.5.3 不足之处 203
7.5.4 最后思考 204
第8章 Haskell 205
8.1 Haskell简介 205
8.2 第一天:逻辑 206
8.2.1 表达式和基本类型 206
8.2.2 函数 208
8.2.3 元组和列表 211
8.2.4 生成列表 214
8.2.5 Philip Wadler访谈录 217
8.2.6 第一天我们学到了什么 218
8.2.7 第一天自习 218
8.3 第二天:Spock的超凡力量 218
8.3.1 高阶函数 219
8.3.2 偏应用函数和柯里化 220
8.3.3 惰性求值 221
8.3.4 Simon Peyton-Jones访谈录 223
8.3.5 第二天我们学到了什么 224
8.3.6 第二天自习 225
8.4 第三天:心灵融合 226
8.4.1 类与类型 226
8.4.2 monad 231
8.4.3 第三天我们学到了什么 236
8.4.4 第三天自习 237
8.5 趁热打铁 237
8.5.1 核心优势 237
8.5.2 不足之处 238
8.5.3 最后思考 239
第9章 落幕时分 240
9.1 编程模型 240
9.1.1 面向对象(Ruby、Scala) 241
9.1.2 原型编程(Io) 241
9.1.3 约束-逻辑编程(Prolog) 241
9.1.4 函数式编程(Scala、Erlang、
Clojure、Haskell) 241
9.1.5 范型演进之路 242
9.2 并发 242
9.2.1 控制可变状态 243
9.2.2 Io、Erlang和Scala中的actor 243
9.2.3 future 243
9.2.4 事务型内存 243
9.3 编程结构 244
9.3.1 列表解析 244
9.3.2 monad 244
9.3.3 匹配 245
9.3.4 合一 246
9.4 发现自己的旋律 246
附录 参考书目 247

作者简介

内容简介:
从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随者。
Bruce A. Tate是软件行业的一名老兵,他有一个宏伟目标:用一本书的篇幅切中要害地探索七种不同的语言。本书就是他的成果。书中介绍了Ruby、Io、Prolog、Scala、Erlang、Clojure和Haskell这七种语言,关注每一门语言的精髓和特性,重点解决如下问题:这门语言的类型模型是什么,编程范式是什么,如何与其交互,有哪些决策构造和核心数据结构,有哪些独特的核心特性。
在这个飞速发展的信息时代,程序员仅仅掌握甚至精通一门语言是远远不够的。了解多门语言蕴涵的思维方式,在编码中互相借鉴,再挑出一两门对自己口味的语言深入学习,这些已经成为在软件行业中安身立命之本。从这个意义上说,每个程序员都应该看看这本《七周七语言》。


 七周七语言下载 更多精彩书评



发布书评

 
 


精彩书评 (总计17条)

  •     感谢图灵给了我试读这本书的机会,也抱歉这本书评一直拖到现在,过程远远超过了七周,可是我觉得这本书也许叫做七天七语言来的更合适,也更有噱头。我是一个语言爱好者,我喜欢看各种冷门语言,从中学习他的语法精髓,曼妙之处,并且试着去理解它的设计和编程思想。在读这本书之前,对一些语言就有一些了解,例如本书的Ruby ,Io , Erlang和Scala,所以其实书看的还是很快的。大概一个语言一两天就看完了。书的翻译很不错,基本没有遇到什么理解的障碍。但是在我看来本书的内容并非足够恰当,其实大部分人工作只能用到一两门语言,大脑也没办法(至少从我的自身情况来说是这样的)存储过多的语言细节,但是本书还是稍微的过多纠缠于语法细节,而在编程思想上鲜有提及,并且缺乏语言之间的横向对比,只是浅显地说了下该语言的优点和缺点,但是这样简单优点和缺点的理由是不足以为读者作出业务场景语言选择的理由的。但是无论如何,我认为作为一个IT从业者,仅仅把思想上局限在同一个语言上是一定会受到发展瓶颈的,这本七周七语言还是推荐给所有程序员来读....
  •     书写得很一般,分享一下心得:学编程就好比学游泳,不下水是学不会的。掌握新的技能,不要先想着独立解决什么问题,而是先重复一下前人做过的东西。简而言之:先模仿,再创新。Io语言基于对象和消息。万事皆消息,万物皆对象,消息和对象构成了万事万物。btw,用在并发中,与Erlang有一拼。Prolog语言强调逻辑,一个深度优先搜索的决策树,基于数据库,(阐述)事实,(制定)规则,(执行)查询。不喜欢这种非黑即白的想法,过分注重逻辑的东西,从另一个角度看,就是过分忽略非逻辑的东西。Erlang语言的并发和容错实在太强大了,它的针对性也非常强——爱立信的通讯产品,不知道这种很强的针对性用在其他方向会不会有些约束自己的“手脚”,因而希望往后缩一缩?Haskell成也纯函数语言,败也纯函数语言,拒绝命令式编程的想法,使其不够灵活,加之类型系统,使其有些累赘,不懂得妥协。编程模型(编程范式)有很多种:面向过程编程、面向对象编程、原型编程(OOP的子集)、约束-逻辑编程、函数式编程etc,每过一些年,都会有新的编程模型冒出来,现在的编程模型可能还嫩着呢,Io和Erlang的某些思想(如消息传递、事件触发、局部崩溃)算比较前卫的了。btw,最近了解一种叫Occam的语言,基于一种叫transputer的芯片,不同于Intel芯片,将某些语言在并发上的软件思想硬件化,使其具有无法比拟的优势。
  •     开始还以为是单纯介绍基本语法然后扯两个例子就算一门语言,看了众多好评之后决定买了,结果真心满意,适合扩展视野。。。而且此次购物更是一天内送达,从未如此爽过。------------------------------------------------------------------------------------书不厚,但写的很有针对性,也可以开开眼界。------------------------------------------------------------------------------------可以来满足下自己,了解多种脚本语言,你会发现,那你会喜欢其中几种------------------------------------------------------------------------------------学习一种编程语言,不在于一定要去使用,可以是我们从不同的视角去了解编程这档事!------------------------------------------------------------------------------------简单了解这几种语言可以,具体没什么细节内容,就是范范的了解一下区别,想找一门学学之前,可以先比较一下差异------------------------------------------------------------------------------------这是一本开拓眼界的好书,里面介绍了不同的编程范式,这些语言的范式会对我们现有的思维产生影响。

精彩短评 (总计50条)

  •     想理解javascript? 先看看IO这个轻量语言。
  •     各种语言之间共通的东西越来越多.流行都是基于妥协.monad和prolog的部分很好玩
  •     为避免七周变成七年,抱着没时间吃猪肉也要抽时间看猪跑的精神把书看完了。。。
  •     各种编程范式让人打开眼界,大学没有选修编译原理真是太遗憾了。Prolog这门语言最有意思,而smalltalk据说是儿童也能玩的语言,然而我却。。。
  •     如果需要一本书,它能带你匆匆浏览几门风格迥异的语言,那这本《七周七语言》是极好的。短短几节,不可能把一门语言代表的核心思想表述得多好,但能带你简单一瞥,打开一些脑洞,改变一些思维方式。这才是最重要的。#人生苦短,世界很大#
  •     作者是个专业 Java 黑啊,说什么敲 Java 代码繁重得手指头都敲出血了,看 Java 代码都看到双眼布满血丝了。
  •     ruby学过。函数式接触过。全书下来给我冲击最大的是Prolog。
  •     跳着看了一些,介绍了7门编程语言的编程范型,没有太深入
  •     蜻蜓点水
  •     短小精悍 大开眼界
  •     如果都能多了解一些,应该就不会有太多语言之争之类的话题了。
  •     少数让人深切感受到编程乐趣的书籍
  •     入门级的好书。
  •     多语言范式,印象深刻的递归
  •     这几个语言选的非常妙,不过讲的就那回事了,跟网上随便找个入门差不多。
  •     对各种编程范式的代表语言有一个了解 印象最深的就是IO 语法简单但能力强大 haskell那章稍微不带劲 monad没有看明白 不过感受到haskell类型系统的强大 后悔读书时没读这本书
  •     必须给满分的佳作。避免被细节埋没,高屋建瓴。
  •     这书感觉有点像韦小宝拉着他七个漂亮老婆给你一个个点评一样好玩,可惜我还要写蛋疼的60页的毕设日志,好想一口气看完....七周这系列都mark一下
  •     看完这本让我最感兴趣的应该是 Prolog。因为之前对 Lisp, Haskell 这些都有一些了解,所以看这本就没那么多新鲜感了。个人觉得这本讲得太基础了一点,比较无聊,不如看 Matz 的 《代码的未来》。
  •     感觉只是泛泛介绍了一下各语言的特点,并没有太多有深度的东西。
  •     还是觉得prolog立意最新。但是性能不能控制,以及难以给出次优或部分匹配解不好弄。其它大多都是在玩语法糖。
  •     更多的注重语言实现,而不是细节
  •     其实并没有看太懂。
  •     总觉得讲得都不深,可能做完课后作业效果会更好
  •     指望通过这本书学会7门语言肯定不可能,不过是大概了解一下书中各种高级语言的特性。如果没有接触过高级语言,通过这本书可以粗略的学习一下各种语言。
  •     七种编程泛型的语言,挺好。正合适有机会多看一下其他的语言。
  •     长见识
  •     想领略一下不同语言的风采,可以拿来看看,品味一下不同的设计思路。但并不适合作为语言的学习指导。而且我认为语言并没有它们的拥趸吹嘘的那么优秀,能否创作出色的软件主要还是看开发者。
  •     快速的带您领略不同的编程语言魅力
  •     天赋太低了,七周七语言根本做不到,只能了解一下
  •     写的简单易懂,不仅仅是hello world,多了一点语言特性的核心实践,了解了之前一直想了解的函数式编程模型,也是可以跟人吹逼说自己知道柯里化是啥了。顺便很想吐槽作者就是一个不折不扣Ruby脑残粉嘛
  •     讲述了多种编程范式,通过七种语言的实例进行说明,可以开拓自己对于编程语言的视野。
  •     满纸荒糖言。 花了好长的时间才看完,期间由于感觉到难度就搁浅了。虽然有不少不懂的地方,但以往学习编程语言的困惑却渐渐明晰。
  •     我并不觉这本书有多好锕。。
  •     如果只熟悉一两种语言的话,不妨看看这本书,开拓视野,了解不同编程范式。
  •     读了一部分.. 一小本书确实也就是带看看基本语法和特色
  •     不是很推荐这种书,促销时可买
  •     开开眼界,尝鼎一脔。
  •     有过其它一些语言的基础,很多章节基本是翻过…但是Prolog确实惊艳了一把。但还是墙裂推荐。
  •     最有价值的一点是各个语言的编程范式、优势和劣势的说明,但是语法的内容还是过多啊。
  •     最后两章没有看完。这本书可以放着时不时再翻一番。
  •     这本书并不是用来学习的。而且阅读的时候尽量是快速阅读。编程语言是拥有“天赋”的,如何好好认识它的天赋,并利用其天赋,正是这本书的价值所在~~
  •     涨姿势
  •     从面向对象编程到面向List编程(所以才叫Lisp嘛[List Process])
  •     想真正理解语言设计者的思路,就必须有超越基本语法的觉悟。在简单性和安全性之间、编码效率和程序性能之间所做的哪些让步和折中Haskell。它是本书唯一的纯函数式语言,这也意味着,它根本不存在可变状态:只要使用相同的输入参数,去调用相同的函数,就会返回相同的输出。在所有强类型语言中Haskell拥有最令人称羡的类型模型;面向对象,意味着Ruby支持封装(把数据和行为一起打包)、类继承(用一棵类树来组织对象类型)、多态(对象可表现为多种形式)等特性。编程语言的根本机制只有两种就是C代表的有限状态机和lisp代表的形势变换。所有语言都在这两者之间进行折衷。
  •     内容比我想象得浅多了,适合没事的时候翻翻
  •     浅
  •     这本书翻译还是不错的,主要的目的还是为函数式编程传播福音。想要了解的人不妨读一读,全书比较轻松易懂~
  •     Quick Ruby
  •     IT民工必读书!!
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024