万本电子书0元读

万本电子书0元读

顶部广告

代码的未来电子书

20年后、100年后的编程语言会是什么样? Ruby之父剖析云计算、大数据时代下的技术 ◆ Lisp会是未来的发展趋势吗? ◆ Go和Dart能取代C和JavaScript吗? ◆ 关系型数据库已经走到穷途末路了吗? Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB…… 云计算、大数据时代下谁主沉浮? 《代码的未来》是Ruby 之父松本行弘的又一力作。作者对云计算、大数据时代下的各种编程语言以及相关技术行了剖析,并对编程语言的未来发展趋势做出预测,内容涉及Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB、摩尔定律、多核、NoSQL

售       价:¥

纸质售价:¥54.50购买纸书

44人正在读 | 2人评论 6.2

作       者:(日)松本行弘 著

出  版  社:人民邮电出版社

出版时间:2013-03-01

字       数:56.1万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
本书是Ruby 之父松本行弘的又一力作。作者对云计算、大数据时代下的各种编程语言以及相关技术行了剖析,并对编程语言的未来发展趋势做出预测,内容涉及Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB、摩尔定律、编程语言、多核、NoSQL 等当今备受关注的话题。 本书面向各层次程序设计人员和编程爱好者,也可供相关技术人员参考。<br/>【推荐语】<br/>20年后、100年后的编程语言会是什么样? Ruby之父剖析云计算、大数据时代下的技术 ◆ Lisp会是未来的发展趋势吗? ◆ Go和Dart能取代C和JavaScript吗? ◆ 关系型数据库已经走到穷途末路了吗? Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB…… 云计算、大数据时代下谁主沉浮? 《代码的未来》是Ruby 之父松本行弘的又一力作。作者对云计算、大数据时代下的各种编程语言以及相关技术行了剖析,并对编程语言的未来发展趋势做出预测,内容涉及Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB、摩尔定律、多核、NoSQL 等当今备受关注的话题。<br/>【作者】<br/>松本行弘(Yukihiro Matsumoto) Ruby语言发明者,亦是亚洲首屈一指的编程语言发明者。现兼任网络应用通信研究所(NaCl)研究员、乐天技术研究所研究员、Heroku首席架构师等。昵称“Matz”。讨厌东京,喜欢温泉。 周自恒 IT、编程爱好者,技术宅,初中时曾在NOI(国家信息学奥赛)天津赛区获一等奖,大学毕业后曾任IT咨询顾问,精通英语和日语,译著有《30天自制操作系统》、《大数据的冲》、《Android应用发门》。<br/>
目录展开

译者序

中文版序

前言

第1章 编程的时间和空间

1.1 编程的本质

编程的本质是思考

创造世界的乐趣

快速提高的性能改变了社会

以不变应万变

摩尔定律的局限

社会变化与编程

1.2 未来预测

科学的未来预测

IT未来预测

极限未来预测

从价格看未来

从性能看未来

从容量看未来

从带宽看未来

小结

第2章 编程语言的过去、现在和未来

2.1 编程语言的世界

被历史埋没的先驱

编程语言的历史

编程语言的进化方向

未来的编程语言

20年后的编程语言

学生们的想象

2.2 DSL(特定领域语言)

外部DSL

内部DSL

DSL的优势

DSL的定义

适合内部DSL的语言

外部DSL实例

DSL设计的构成要素

Sinatra

小结

2.3 元编程

Meta, Reflection

类对象

类的操作

Lisp

数据和程序

Lisp程序

宏的功与过

元编程的可能性与危险性

小结

2.4 内存管理

看似无限的内存

GC的三种基本方式

术语定义

标记清除方式

复制收集方式

引用计数方式

引用计数方式的缺点

进一步改良的应用方式

分代回收

对来自老生代的引用进行记录

增量回收

并行回收

GC大统一理论

2.5 异常处理

“一定没问题的”

用特殊返回值表示错误

容易忽略错误处理

Ruby中的异常处理

产生异常

更高级的异常处理

Ruby中的后处理保证

其他语言中的异常处理

Java的检查型异常

Icon的异常和真假值

Eiffel的Design by Contract

异常与错误值

小结

2.6 闭包

函数对象

高阶函数

用函数参数提高通用性

函数指针的局限

作用域:变量可见范围

生存周期:变量的存在范围

闭包与面向对象

Ruby的函数对象

Ruby与JavaScript的区别

Lisp-1与Lisp-2

第3章 编程语言的新潮流

3.1 语言的设计

客户端与服务器端

向服务器端华丽转身

在服务器端获得成功的四大理由

客户端的JavaScript

性能显著提升

服务器端的Ruby

Ruby on Rails带来的飞跃

服务器端的Go

静态与动态

动态运行模式

何谓类型

静态类型的优点

动态类型的优点

有鸭子样的就是鸭子

Structural Subtyping

小结

3.2 Go

New(新的)

Experimental(实验性的)

Concurrent(并发的)

Garbage-collected(带垃圾回收的)

Systems(系统)

Go的创造者们

Hello World

Go的控制结构

类型声明

无继承式面向对象

多值与多重赋值

并发编程

小结

3.3 Dart

为什么要推出Dart?

Dart的设计目标

代码示例

Dart的特征

基于类的对象系统

非强制性静态类型

Dart的未来

3.4 CoffeeScript

最普及的语言

被误解最多的语言

显著高速化的语言

对JavaScript的不满

CoffeeScript

安装方法

声明和作用域

分号和代码块

省略记法

字符串

数组和循环

小结

3.5 Lua

示例程序

数据类型

函数

元表

方法调用的实现

基于原型编程

和Ruby的比较(语言篇)

嵌入式语言Lua

和Ruby的比较(实现篇)

嵌入式Ruby

第4章 云计算时代的编程

4.1 可扩展性

信息的尺度感

大量数据的查找

二分法查找

散列表

布隆过滤器

一台计算机的极限

DHT(分布式散列表)

Roma

MapReduce

小结

4.2 C10K问题

何为C10K问题

C10K问题所引发的“想当然”

使用epoll功能

使用libev框架

使用EventMachine

小结

4.3 HashFold

HashFold库的实现(Level 1)

运用多核的必要性

目前的Ruby实现所存在的问题

通过进程来实现HashFold(Level 2)

抖动

运用进程池的HashFold(Level 3)

小结

4.4 进程间通信

进程与线程

同一台计算机上的进程间通信

TCP/IP协议

用C语言进行套接字编程

用Ruby进行套接字编程

Ruby的套接字功能

用Ruby实现网络服务器

小结

4.5 Rack与Unicorn

Rack中间件

应用程序服务器的问题

Unicorn的架构

Unicorn的解决方案

性能

策略

小结

第5章 支撑大数据的数据存储技术

5.1 键-值存储

Hash类

DBM类

数据库的ACID特性

CAP原理

CAP解决方案——BASE

不能舍弃可用性

大规模环境下的键-值存储

访问键-值存储

键-值存储的节点处理

存储器

写入和读取

节点追加

故障应对

终止处理

其他机制

性能与应用实例

小结

5.2 NoSQL

RDB的极限

NoSQL数据库的解决方案

形形色色的NoSQL数据库

面向文档数据库

MongoDB的安装

启动数据库服务器

MongoDB的数据库结构

数据的插入和查询

用JavaScript进行查询

高级查询

数据的更新和删除

乐观并发控制

5.3 用Ruby来操作MongoDB

使用Ruby驱动

对数据库进行操作

数据的插入

数据的查询

高级查询

find方法的选项

原子操作

ActiveRecord

OD Mapper

5.4 SQL数据库的反击

“云”的定义

SQL数据库的极限

存储引擎Spider

SQL数据库之父的反驳

SQL数据库VoltDB

VoltDB的架构

VoltDB中的编程

Hello VoltDB!

性能测试

小结

5.5 memcached和它的伙伴们

用于高速访问的缓存

memcached

示例程序

对memcached的不满

memcached替代服务器

另一种键-值存储Redis

Redis的数据类型

Redis的命令与示例

小结

第6章 多核时代的编程

6.1 摩尔定律

呈几何级数增长

摩尔定律的内涵

摩尔定律的结果

摩尔定律所带来的可能性

为了提高性能

摩尔定律的极限

超越极限

不再有免费的午餐

6.2 UNIX管道[5]

管道编程

多核时代的管道

xargs——另一种运用核心的方式

注意瓶颈

阿姆达尔定律

多核编译

ccache

distcc

编译性能测试

小结

6.3 非阻塞I/O

何为非阻塞I/O

使用read(2)的方法

边沿触发与电平触发

使用read(2) + select的方法

使用read+O_NONBLOCK标志

Ruby的非阻塞I/O

使用aio_read的方法

6.4 node.js

减负

拖延

委派

非阻塞编程

node.js框架

事件驱动编程

事件循环的利弊

node.js编程

node.js网络编程

node.js回调风格

node.js的优越性

EventMachine与Rev

6.5 ZeroMQ

多CPU的必要性

阿姆达尔定律

多CPU的运用方法

进程间通信

管道

SysV IPC

套接字

UNIX套接字

ZeroMQ

ZeroMQ的连接模型

ZeroMQ的安装

ZeroMQ示例程序

小结

版权声明

累计评论(1条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部