具体描述
《代码的未来》是Ruby之父松本行弘的又一力作。作者对云计算、大数据时代下的各种编程语言以及相关技术进行了剖析,并对编程语言的未来发展趋势做出预测,内容涉及Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB、摩尔定律、编程语言、多核、NoSQL等当今备受关注的话题。
《代码的未来》面向各层次程序设计人员和编程爱好者,也可供相关技术人员参考。
作者简介
松本行弘(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
· · · · · · (收起)
读后感
书中的内容主要的是思想阐述,以及各种语言宏观的概念,如果想学实在的技术这本书不适合!不过可以根据书上的所提到的技术语言进行补习!摩尔定律在硬件行业将不在遵守?发展到了极限?软件呢? 作者是ruby 之父,当然也提到了ruby的特性,ruby 语言设计还是很完美的。
这本书是Ruby之父松本行弘的专栏集,一方面作业回顾了各种编程语言的发展历程及其当下面临的困境,另一方面也介绍了编程中遇到的各种问题,如GC(垃圾回收)、多线程、并行处理、进程间通信等问题。在书的最后,作者站在云计算与大数据时代,重新思考了编程语言以及应对之道,...
这本书是Ruby之父松本行弘的专栏集,一方面作业回顾了各种编程语言的发展历程及其当下面临的困境,另一方面也介绍了编程中遇到的各种问题,如GC(垃圾回收)、多线程、并行处理、进程间通信等问题。在书的最后,作者站在云计算与大数据时代,重新思考了编程语言以及应对之道,...
用户评价
“代码的未来”——这个词组本身就带着一种强大的、不可阻挡的推进力。它让我立刻联想到那些改变世界的科技革命,每一次都源于代码的某种飞跃。我猜想,这本书一定不会仅仅停留在对现有技术简单罗列的层面,而是会深入探究驱动这些飞跃的底层逻辑和前瞻性思想。我期待它能像一个预言家,为我们指明代码发展的方向,揭示那些即将出现的、足以撼动整个行业的趋势。它是否会探讨“低代码”或“无代码”的兴起,让编程变得更加民主化,让更多人能够参与到创造过程中?又或者,它会深入到那些更深层次的领域,比如“可解释AI”,让我们能够理解那些复杂的算法是如何做出决策的,从而建立起对技术的信任? 我更希望这本书能提供一种全新的视角,让我们能够以一种更宏观、更具有哲学意味的方式来理解代码。它不仅仅是技术,更是一种思维方式,一种解决问题的模式,一种创造世界的力量。我期待它能激发我思考,在未来的世界里,如何才能掌握这种力量,如何才能不被时代所淘汰,而是成为那个引领潮流的人。
《代码的未来》这个书名,着实让我心中激荡起层层涟漪。它让我联想到那些科幻电影里的宏大场景,智能生命体操纵着看不见的逻辑丝线,编织着全新的现实。我很好奇,这本书是否会描绘出这样一幅画面?它是否会深入探讨,当代码不再仅仅是人类的工具,而是拥有了某种程度的“自主性”时,我们该如何与之共处? 我脑海中浮现出的,是一幅幅充满想象的图景:也许是虚拟现实的极致沉浸,让我们可以在由代码构建的世界里,体验超越现实的种种可能;又或者,是生物科技与代码的深度融合,我们能以前所未有的方式理解和改造生命本身。我渴望这本书能够为我打开一扇通往未知的大门,让我看到那些目前看来遥不可及,却又令人无限憧憬的未来图景。我希望它能带给我启发,让我思考,在代码构建的未来里,人类的角色将发生怎样的转变?我们是被动的接受者,还是依然是那个掌握方向的创造者?这本书的名字,就像一个潘多拉的魔盒,里面装满了关于未知与可能性的答案,而我迫不及待地想要去揭开它。
《代码的未来》——这书名,就像一个信号,预示着一场即将到来的变革。我脑海中立即闪过的是,那些曾经只存在于想象中的场景,如今正随着代码的不断演进,一步步成为现实。我很好奇,这本书是否会深入探讨,当AI的能力日益强大,它们是否会成为我们编程的伙伴,甚至在某些领域超越我们?它会如何解析这种共生关系,以及它对人类程序员意味着什么?是挑战,还是机遇? 我还想象着,在未来的代码世界里,会有怎样全新的编程范式诞生。是不是会出现一种更贴近人类自然语言的编程方式,让创造力得到极大的释放?又或者,代码会以一种我们现在无法理解的形式存在,成为连接物理世界与数字世界更深层次的桥 गुंतवणूक? 我对书中可能涉及的伦理和哲学思考也充满好奇。当代码的能力越来越强大,对社会的影响也越来越深远,我们该如何确保其发展方向是符合人类利益的?这本书是否会触及这些关键问题,并提供一些深刻的见解? 它不仅仅是一本关于技术发展的书,更是一次关于我们如何塑造未来的对话,而我,渴望成为这场对话的一部分。
这本书的名字实在是太吸引人了,《代码的未来》。光是这个名字,就足以让我想象出无数种可能,它会讲述怎样一个令人兴奋的故事?是关于人工智能如何颠覆我们现有的编程模式,还是关于量子计算将如何开启全新的计算时代?亦或是,它会深入探讨人类的创造力与代码的结合,在虚拟世界中构建出怎样的奇迹? 我期待着,这本书能带我踏上一段思想的旅程,去探索那些我们尚未触及的领域。它会不会像一本科幻小说,用引人入胜的情节,展现一个充满颠覆性的技术未来?又或者,它会是一本硬核的科技指南,用严谨的逻辑和深刻的洞察,为我们揭示代码演进的内在规律? 我对其中可能包含的关于“未来”的预测格外好奇。那些关于代码如何改变我们的生活、工作乃至思维方式的设想,究竟有多么大胆?它会不会挑战我们现有的认知,让我们对“可能性”的边界产生全新的理解? 我对作者的叙事方式也充满了期待。是娓娓道来的讲述,还是激情澎湃的呐喊?是理性分析的剖析,还是充满哲思的探讨?我希望这本书能拥有独一无二的风格,能够深深地触动我的内心,引发我强烈的共鸣。它不仅仅是一本书,更是一扇窗,让我得以窥探未来,感受科技浪潮的澎湃之力。
“代码的未来”——这个名字,一下子就勾起了我对未知领域探索的强烈渴望。我想象着,这本书会带领我穿越时间的迷雾,去一窥那些尚未显露的科技奇迹。它是否会描绘出,当代码渗透到我们生活的每一个角落,从智能家居到自动驾驶,再到更深层次的科学研究,我们将会迎来一个怎样的世界? 我好奇书中对于“代码”本身的定义是否会发生根本性的改变。它是否会从一种指令集,演变成一种更抽象、更具生命力的存在?它是否会触及到“软件定义的硬件”,让硬件的形态和功能可以根据代码的需求而动态变化? 并且,我期待这本书能给我带来一些震撼心灵的洞见。它会不会提出一些颠覆性的观点,挑战我们对当前技术发展轨迹的认知?它是否会引导我思考,在代码构建的未来里,人类的价值和意义将如何被重新定义? 我希望这本书能是一场思想的冒险,让我能够跳出固有的框架,以一种全新的视角去审视科技与人类的关系,去拥抱那个充满无限可能性的代码的未来。
喂!侬号角!怎么都是好像,貌似,可能,唉?
喂!侬号角!怎么都是好像,貌似,可能,唉?
里面讲借助unix系统实现负载均衡的那段确实令人耳目一新
弃,松本还是不写书得好...
:TP312/4952-16