代码的未来

出版社:人民邮电出版社
出版日期:2013-6
ISBN:9787115317513
作者:[日] 松本行弘
页数:356页

内容概要

松本行弘(Yukihiro Matsumoto)
Ruby语言发明者,亦是亚洲首屈一指的编程语言发明者。现兼任网络应用通信研究所(NaCl)研究员、乐天技术研究所研究员、Heroku首席架构师等。昵称“Matz”。讨厌东京,喜欢温泉。
译者简介:
周自恒
IT、编程爱好者,技术宅,初中时曾在NOI(国家信息学奥赛)天津赛区获一等奖,大学毕业后曾任IT咨询顾问,精通英语和日语,译著有《30天自制操作系统》、《大数据的冲击》、《Android应用开发入门》。

书籍目录

第一章 编程的时间和空间
1.1  编程的本质  3
编程的本质是思考  4
创造世界的乐趣  4
快速提高的性能改变了社会  5
以不变应万变  8
摩尔定律的局限  9
社会变化与编程  10
1.2  未来预测  13
科学的未来预测  14
IT 未来预测  14
极限未来预测  16
从价格看未来  16
从性能看未来  17
从容量看未来  18
从带宽看未来  19
小结  20
第二章 编程语言的过去、现在和未来
2.1  编程语言的世界  23
被历史埋没的先驱  25
编程语言的历史  26
编程语言的进化方向  30
未来的编程语言  32
20 年后的编程语言  34
学生们的想象  34
2.2  DSL(特定领域语言)  36
外部DSL  37
内部DSL  38
DSL 的优势  39
DSL 的定义  39
适合内部DSL 的语言  40
外部DSL 实例  42
DSL 设计的构成要素  43
Sinatra  46
小结  47
2.3  元编程  48
Meta, Reflection  48
类对象  51
类的操作  52
Lisp  53
数据和程序  54
Lisp 程序  56
宏  56
宏的功与过  57
元编程的可能性与危险性  59
小结  60
2.4  内存管理  61
看似无限的内存  61
GC 的三种基本方式  62
术语定义  62
标记清除方式  63
复制收集方式  64
引用计数方式  65
引用计数方式的缺点  65
进一步改良的应用方式  66
分代回收  66
对来自老生代的引用进行记录  67
增量回收  68
并行回收  69
GC 大统一理论  69
2.5  异常处理  71
“一定没问题的”  71
用特殊返回值表示错误  72
容易忽略错误处理  72
Ruby 中的异常处理  73
产生异常  74
更高级的异常处理  75
Ruby 中的后处理保证  76
其他语言中的异常处理  77
Java 的检查型异常  77
Icon 的异常和真假值  78
Eiffel 的Design by Contract  80
异常与错误值  80
小结  81
2.6  闭包  82
函数对象  82
高阶函数  83
用函数参数提高通用性  84
函数指针的局限  85
作用域:变量可见范围  87
生存周期:变量的存在范围  88
闭包与面向对象  89
Ruby 的函数对象  89
Ruby 与JavaScript 的区别  90
Lisp-1 与Lisp-2  91
第三章 编程语言的新潮流
3.1  语言的设计  97
客户端与服务器端  97
向服务器端华丽转身  98
在服务器端获得成功的四大理由  99
客户端的JavaScript  100
性能显著提升  101
服务器端的Ruby  102
Ruby on Rails 带来的飞跃  102
服务器端的Go  103
静态与动态  104
动态运行模式  105
何谓类型  105
静态类型的优点  106
动态类型的优点  106
有鸭子样的就是鸭子  107
Structural Subtyping  108
小结  108
3.2  Go  109
New(新的)  109
Experimental(实验性的)  109
Concurrent(并发的)  110
Garbage-collected(带垃圾回收的)  110
Systems(系统)  111
Go 的创造者们  111
Hello World  112
Go 的控制结构  113
类型声明  116
无继承式面向对象  118
多值与多重赋值  120
并发编程  122
小结  124
3.3  Dart  126
为什么要推出Dart ?  126
Dart 的设计目标  129
代码示例  130
Dart 的特征  132
基于类的对象系统  132
非强制性静态类型  133
Dart 的未来  134
3.4  CoffeeScript  135
最普及的语言  135
被误解最多的语言  135
显著高速化的语言  136
对JavaScript 的不满  138
CoffeeScript  138
安装方法  139
声明和作用域  139
分号和代码块  141
省略记法  142
字符串  143
数组和循环  143
类  145
小结  146
3.5  Lua  148
示例程序  149
数据类型  149
函数  150
表  150
元表  151
方法调用的实现  153
基于原型编程  155
和Ruby 的比较(语言篇)  157
嵌入式语言Lua  157
和Ruby 的比较(实现篇)  158
嵌入式Ruby  159
第四章 云计算时代的编程
4.1  可扩展性  163
信息的尺度感  163
大量数据的查找  164
二分法查找  165
散列表  167
布隆过滤器  169
一台计算机的极限  170
DHT(分布式散列表)  171
Roma  172
MapReduce  173
小结  174
4.2  C10K 问题  175
何为C10K 问题  175
C10K 问题所引发的“想当然”  177
使用epoll 功能  180
使用libev 框架  181
使用EventMachine  183
小结  185
4.3  HashFold  186
HashFold 库的实现(Level 1)  187
运用多核的必要性  190
目前的Ruby 实现所存在的问题  191
通过进程来实现HashFold(Level 2)  191
抖动  193
运用进程池的HashFold(Level 3)  194
小结  197
4.4  进程间通信  198
进程与线程  198
同一台计算机上的进程间通信  199
TCP  IP 协议  201
用C 语言进行套接字编程  202
用Ruby 进行套接字编程  204
Ruby 的套接字功能  205
用Ruby 实现网络服务器  208
小结  209
4.5 Rack 与Unicorn  210
Rack 中间件  211
应用程序服务器的问题  212
Unicorn 的架构  215
Unicorn 的解决方案  215
性能  219
策略  220
小结  221
第五章 支撑大数据的数据存储技术
5.1  键- 值存储  225
Hash 类  225
DBM 类  226
数据库的ACID 特性  226
CAP 原理  227
CAP 解决方案——BASE  228
不能舍弃可用性  229
大规模环境下的键- 值存储  230
访问键- 值存储  230
键- 值存储的节点处理  231
存储器  232
写入和读取  233
节点追加  233
故障应对  233
终止处理  235
其他机制  235
性能与应用实例  236
小结  236
5.2  NoSQL  237
RDB 的极限  237
NoSQL 数据库的解决方案  238
形形色色的NoSQL 数据库  239
面向文档数据库  240
MongoDB 的安装  241
启动数据库服务器  243
MongoDB 的数据库结构  244
数据的插入和查询  244
用JavaScript 进行查询  245
高级查询  246
数据的更新和删除  249
乐观并发控制  250
5.3  用Ruby 来操作MongoDB  251
使用Ruby 驱动  251
对数据库进行操作  253
数据的插入  253
数据的查询  253
高级查询  254
find 方法的选项  256
原子操作  257
ActiveRecord  259
OD Mapper  260
5.4  SQL 数据库的反击  264
“云”的定义  264
SQL 数据库的极限  264
存储引擎Spider  265
SQL 数据库之父的反驳  265
SQL 数据库VoltDB  268
VoltDB 的架构  269
VoltDB 中的编程  270
Hello VoltDB!  271
性能测试  273
小结  275
5.5  memcached 和它的伙伴们  276
用于高速访问的缓存  276
memcached  277
示例程序  278
对memcached 的不满  279
memcached 替代服务器  280
另一种键- 值存储Redis  282
Redis 的数据类型  284
Redis 的命令与示例  285
小结  289
第六章 多核时代的编程
6.1  摩尔定律  293
呈几何级数增长  293
摩尔定律的内涵  294
摩尔定律的结果  295
摩尔定律所带来的可能性  296
为了提高性能  297
摩尔定律的极限  302
超越极限  303
不再有免费的午餐  304
6.2  UNIX 管道  305
管道编程  306
多核时代的管道  308
xargs——另一种运用核心的方式  309
注意瓶颈  311
阿姆达尔定律  311
多核编译  312
ccache  313
distcc  313
编译性能测试  314
小结  315
6.3  非阻塞I/O  316
何为非阻塞I  O  316
使用read(2) 的方法  317
边沿触发与电平触发  319
使用read(2) + select 的方法  319
使用read+O_NONBLOCK 标志  321
Ruby 的非阻塞I  O  322
使用aio_read 的方法  323
6.4  node.js  330
减负  330
拖延  331
委派  332
非阻塞编程  333
node.js 框架  333
事件驱动编程  334
事件循环的利弊  335
node.js 编程  335
node.js 网络编程  337
node.js 回调风格  339
node.js 的优越性  340
EventMachine 与Rev  341
6.5  ZeroMQ  342
多CPU 的必要性  342
阿姆达尔定律  343
多CPU 的运用方法  343
进程间通信  345
管道  345
SysV IPC  346
套接字  347
UNIX 套接字  349
ZeroMQ  349
ZeroMQ 的连接模型  350
ZeroMQ 的安装  352
ZeroMQ 示例程序  352
小结  354
版权声明  356

编辑推荐

《代码的未来》编辑推荐:20年后、100年后的编程语言会是什么样?《代码的未来》中Ruby之父松本行弘剖析云计算、大数据时代下的技术:Lisp会是未来的发展趋势吗? Go和Dart能取代C和JavaScript吗?关系型数据库已经走到穷途末路了吗?Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB…… 云计算、大数据时代下谁主沉浮?作者在《代码的未来》中一一剖析。

作者简介

《代码的未来》是Ruby之父松本行弘的又一力作。作者对云计算、大数据时代下的各种编程语言以及相关技术进行了剖析,并对编程语言的未来发展趋势做出预测,内容涉及Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB、摩尔定律、编程语言、多核、NoSQL等当今备受关注的话题。
  《代码的未来》面向各层次程序设计人员和编程爱好者,也可供相关技术人员参考。


 代码的未来下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计23条)

  •     可以当闲书看. 有两个意思, 一是行文比较流畅, 也没什么太高深的东西, 但可能有你不知道的东西; 二是不要期望读这个就可以不看任何方面的书籍了, 这只是闲书. 代码的未来就是CPU多核和并行分布式处理.
  •     这本书其实是连载《松本行弘:技术的剖析》的合集,与其《代码的未来》,我觉得原名更符合这本书的内容。刚开始看到书,翻开目录,发现这是什么啊,整个一个流行技术的合集,从摩尔定律讲到DSL,从C10K讲到nosql。但是仔细看下来,收获很大,有些地方又茅塞顿开的感觉。一般的技术类书籍或者文章,都是讲"How",怎么使用,结构如何,少有讲的清"Why"的,而Matz这本书虽然讲了很多技术,但是大部分都能从复杂的细节中脱离出来,只讲原理,并说清了原因,难能可贵的是,大部分都有Matz自己的见解,非常有参考价值。可能是东方人的思维比较相近吧,整本书看得也不枯燥,花了一个周末看完了。适合人群:对各项技术都有一定了解,但是尚未形成自身的知识脉络的中级开发者,看这本书会非常有收获。
  •     虽然我没有用过Ruby,但是我想他应该很美,有空去学习下。作者也善于去拉家常,很多技术都说的很入味。不过这次我没有细看,只是大概翻看了下,下次我想学习ruby时再细看下。作者是一个老编程家,是一个lisp 和 ruby的老玩家,他的预见是有一定道理的。

精彩短评 (总计64条)

  •     看了开始的一部分,感觉不错。
  •     这本内容讲得太浅了,不如松本的世界
  •     确实浅,内容太分散
  •     垃圾回收那章印象深刻
  •     内心的感受远比其他重要。
  •     Ruby之父的技术文章的一个合集,没有什么系统性,读读可以开阔一下自己的视野。
  •     仅仅作为失眠读物,切勿当作严肃的文章来读;
  •     前面讲解的很精彩,是作者擅长的领域,很有启发性,后面就是一些基本库、组件的用法,结合ruby代码,有滥竽充数的嫌疑,整体上来说值得一读。
  •     很不错的一本书,可以让有一定编程经验的程序员开阔视野。这本书主要是介绍一些新潮的技术,不过这种书时效性比较强,从作者出杂志稿至今也已经几年过去了,有些新技术都已经变成了热门甚至主流了。不过如果想要一次性对各种新技术有个了解,这本书是个不错的选择。
  •     编程语言、框架的科普读物
  •     花一个下午泛读,拓展知识面吧
  •     学不到高人的本事,但应该了解一下高人的想法。
  •     居然读着读着就读不下去了
  •     花两个多小时扫了一遍,基本没看到什么对我有价值的东西
  •     中文名有点哗众取宠,这是作者在技术的剖析专栏的合集,看看高手对各种技术的见解,可拓宽知识面,增进对各种技术的认识。
  •     喜欢Ruby,可能在最进一年接触这个语言
  •     作者对一些编程概念的理解是深刻的,比如闭包、并行编程等
  •     代码的未来还是代码。看了简介未读书,应该是非技术书籍。
  •     专题式的一些文章,关于某些概念的讲解真的是举重若轻。可能是因为文章形式的问题,看上去略显杂乱,不喜欢或者不懂的部分跳过了很多。以后有时间再补上吧。
  •     就那点儿破事嘛
  •     广而浅
  •     不错,但是内容大部分都通过其它渠道学到过
  •     这应该是个新书,感觉一定很好看。
  •     挺好的,虽然我学的C#,这书又是主讲UNIX相关,但是用来扩宽知识面还是很不错的。(一名新手C#渣),而且可读性高。
  •     除了某些流行程序语言作者写的关于自己语言的书, 像这种他们写的其他书籍也非常值得一看, 其中Mat自己还在报刊上开专栏, 专门写关于编程相关的东西, 那就更不能错过了.
  •     广度和深度兼备
  •     作者对未来的思考还是比较不错的。从硬件cpu到应用层软件分析都比较透彻
  •     知识普及,有广度
  •     读过了《松本行弘的程序世界》,感受过ruby的优美,还想看松本的第二本书。
  •     还行
  •     现在读来,感觉不应该叫代码的未来,应该叫代码世界的科普。
  •     1,抽象度高的编程语言不必描述详细过程,从而可以用简短的代码达到目的。 2,在函数对象中,将局部变量这一环境封闭起来的结构被称为闭包。3,GO虽然增加了对类型的描述,但却可以同时获得鸭子类型带来的灵活性,以及静态编译所带来的好处。4, 布隆过滤器算法有意思。
  •     推荐!
  •     讲设计语言的方法面面,有趣的读物。但是ruby差不多是运行速度最慢的脚本语言,不知道作者怎么看。
  •     不得不承认,作者的涉猎挺广的。但是,这本书基本上就是烂书。不知道是作者本身的问题还是翻译的问题,全书几乎看不到“文采”的存在,即使本书刻意模仿了《黑客与画家》也于事无补。书中涉及的各个话题,作者也是如隔靴挠痒般,或者说作者自己都不明白自己在说什么。如果真的想了解这些技术,还是看英文版的维基百科比较好。... 阅读更多
  •     浅入浅出
  •     我书评中少有的力荐,推荐想深入了解编程本质的人阅读
  •     没有想象的好看,也许是自己只是水平有限,但确实感觉越往后读越枯燥,直接没看完。作者讲着讲着老是习惯吹吹自己的ruby,也是醉。
  •     除了书中的部分语言或技术连听都没听说过以外,每一章都是大师对技术的深刻理解,填补了不少以前的误区
  •     属于随笔,比较零散不系统,适合有一定基础的人读。计算机科学上的知识,我只能抽着能理解的内容跳读了。
  •     说是代码的未来,其实可以说是对近几年一些技术的介绍。文中有很多计算机基础知识的回顾和总结,对复习面试很有好处
  •     比起《程序世界》深奥了不少,有些知识点还是当前的自己所无法理解的。
  •     内容空洞无物。有点像暴发户的自我陶醉。只适合外行看看热闹。rubbish
  •     上周有两个晚上失眠,本书阅读进度便大为提前。足见失眠之威力与危害。通读本书,对事件驱动、异步 I/O、NoSQL、ZeroMQ、node.js 的认识加深了。
  •     个人非常认同松本的观点,一本好书,带你遍览正在到来的未来
  •     半个晚上读完这本书,没有预期的精彩
  •     没读完
  •     加深了对计算机语言的理解。
  •     还不如上本¯\_(ツ)_/¯
  •     通过从语言的经典特性到新语言潮流中的新思想、多核、通信、现代存储等多个主题的讲述, 对我们这种可能最早"与未来遭遇"的人种有非常多的启发. 松本行弘, 作为一个语言开发者角度的作品, 值得推荐!
  •     看了几眼 挺不错的 内容很足
  •     好书,看看大拿们怎么思考语言,很有意思
  •     可以去读一读 但并没什么太多亮点 除了介绍一些计算机常识之外更像是一本Ruby的推销书
  •     收益颇丰。前三章将语言的很多新颖的专题,终于通过这本书对闭包,垃圾回收,元编程有了概念。最后一张讲阻塞和IO的也很好。中间的篇章,大数据,云计算,多核,感觉离我比较远,有点难以消化。好像是从博客上摘录的文章,因为内容有很多重复的,还都是一些偏主观的东西,基本都是作者的观点和讨论。总之,值得一读的一本书。
  •     依我看,未来还要不要用文本编程都是不一定的事情
  •     大部分是看不懂的,但是作者写了很多“呢”。“真的好像日漫里的的萌妹子呢”
  •     有的地方略显重复,读来仍然受益匪浅!Programming is a process of designing DSL for your own application.一语中地!
  •     以前是连序言都没有读懂。果然真正在一个领域优秀的人,是不断的重新塑造概念本身的人。
  •     对一些语言特性讲得很详细,但是总体上称不上“代码的未来”的名头
  •     这么贵的价格,这本书有点不值这个价
  •     Ruby 布道师,万万没想到,我居然也写起了 Ruby
  •     作者的见解相当有前瞻性。跟他本人深厚的功底是分不开的。读过之后还能对web开发的历史进程有一定的理解。但是可能是Ruby作者本人的私心,有点隐约推荐Ruby的味道。有些地方并不甚客观。不过不失为一本好书。
  •     可以當科普讀
  •     没有第一本惊艳,可是能看到大师对平常见到的一些技术和框架的理解也还是很有帮助
 

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

零度图书网 @ 2024