函数式编程学习之路(14)
科学家的逆袭:
数据库服务初创公司Cloudant是由三位麻省理工的物理学家联合创立,他们当时致力于分析大型粒子对撞机的海量数据,不过在研究的过程中,管理和分析大数据的可用性工具竟然受限,于是他们构建了一个新的数据库服务。
Good,科学家逆袭成功,而这引出了一个新东西,就是JSON格式的数据库!
然后又引出这个:
什么是 CouchDB?
CouchDB 是一个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。术语 “Couch” 是 “Cluster Of Unreliable Commodity Hardware” 的首字母缩写,它反映了 CouchDB 的目标具有高度可伸缩性,提供了高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。CouchDB 最初是用 C++ 编写的,但在 2008 年 4 月,这个项目转移到 Erlang OTP 平台进行容错测试。
最后就是Google的MapReduce:
最简短的语言解释MapReduce:
We want to count all the books in the library. You count up shelf #1, I count up shelf #2. That's map. The more people we get, the faster it goes.
我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。
Now we get together and add our individual counts. That's reduce.
现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。
其中涉及一个概念:RESTful
什么是REST?
REST (REpresentational State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
结合HTML, Javascript, JSON, Web Api, 加上上面那些东西来拼图,那么一幅图象产生了.这就是基于函数式编程的简化互联网开发模式.是一种完全取代现有开发模型的新方法,它是这么干的:
界面层:
Html+CSS呈现,运行在浏览器里.
编程语言:Javascript
数据模型:JSON
后台服务标准:RESTful, 也是基于JSON
Web服务:Node.js编程语言也是Javascript
数据库:JSON数据库
数据库分布式:MapReduce
搭建这样的一个开发框架:其带来的好处就是无限制的兼容,无限制的跨平台,无限制的分布式,无限制的性能,无限制的界面,无限制的移动...
这样的一个开发平台,对于程序员需要掌握什么技术?
基本的前端html+css+javascript
基本的后端:javascript+json
而其中json, html,css都是一些格式定义,理解起来相当简单.只需要学习javascript,而javascript是所有编程语言中最容易入门的.
可见,这种模式每个人都可以编程,最小集可以写个Html页在浏览器里玩,极限可以开发云计算.这可能会是互联网技术发展大同吗?