必赢亚洲手机app下载


macbook运行win系统时温度过高解决办法

消灭

读书笔记2014第17本

要去西南出差了,却从友好的书架上和Kindle中找不出感兴趣的书来,临出发前去老SUN屋里寻摸一圈,选中了《代码的前途》这本书。选中它的缘故有几条:Ruby之父写的书,作者是东瀛人,日本人写的书一般相比较实用、也想了然一下Ruby、翻目录时发现有Go、Dart、CoffeeScript、Lua多少个新语言的对照分析、老SUN说网上对此书评论不错。

飞机上看了合伙,一口气读了前2章,90多页,对各种语言中的关键特性分析得万分成功,对语言的开拓进取历史有了概括性的摸底。出差后白天忙工作,晌午把剩余的一部分高速读完了,前面三章的始末对我的话吸引力就不够了,可能是技术性太强了,咱们不会探讨到这样深,只会去用旁人写好的现成的框架。

先是章 编程的时刻和空中

一开头作者从编程的本色动手,编程就是创办出一种人类和总结机都可以领悟的言语(编程语言),并经过这样的语言将人类的打算传达给电脑,这样的表现就称为编程。自然语言的歧义性太强,未来的用户界面肯定是完善的语音输入应该没有问题,但用语音把题目总体说出来,交给统计机去落实,现在看来依旧相当有难度,即便前些天兑现了,那么程序员是不是要下岗了?仍然都转入到更底层的代码的编撰中去?

编程是一项成立性的干活,可以听从自己的心愿来创立世界,正是编程的最大魅力所在。想起高中时录入的几行BASIC代码,可以做到繁琐的乘除,就想着自己编排一个小游戏会是何等状态吗?从而爱上了编程这项工作而一发不可收拾。

电脑语言的提高与Moore定律也有那些大的维系,但总计机的算法改变得并不大,特别是有的古老的底蕴算法仍在大气采纳。摩尔定律现在基本还管用,但CPU主频的加强已基本到了顶峰,未来多核技术、内存容量增大、硬盘向SSD转变将会成为主流。我们的次序和算法需要什么适应这个变迁呢?

这时候想起当男女小的时候,我启蒙性地让她看了看LOGO语言,让他宰制小海龟在屏幕上画出奇妙的绘画,她真正感觉到那一个神奇,但对出手创立新的世界并无太大的乐趣,可能女子的个性并不爱好那个东西吧,难怪女程序员如此之少。我也不想强行给子女灌输什么编程技术,毕竟软件开发仍是一件特别麻烦的劳作,依旧别让儿女整天面对代码过日子呢。

笔者也奋勇地对前途拓展了预测,IT技术变化日新月益,5年就会发现很大的转移。价格下降、性能提升、容量增大、带宽扩大,而且这个项都是按指数关系发展的,这一个构成了IT技术预测的底子。在这多少个增长方面,存储容量的附加好像更快,而数据传输速度扩展并不曾那么快,这个发展的不平衡也会左右大家的前途。

编程人士的笔触果然离不开编程,作者选用顶点编程XP的笔触来预测一下前景。当把几项目的都调到极大,世界会是怎么着子?

电脑价格低得跟白菜一样,现在的智能家电已经见到有些趋势了。将来的社会风气自然布满了芯片,物联网看来正是大势所趋。地板是智能地板、手表是智能手表、灯是智能灯、杯子是智能杯子、智能箱子,这一个都在出现,未来的术语肯定不再行使“智能”这么俗的字眼,默认就是带总结机芯片的配备,便地都是电脑了,看来程序员事情更多了,任务更复杂了。

微机性能特别强会暴发什么样?将来我的台式机配置会是1024核?多核CPU并行编程肯定要有新的前进,假诺哪项编程语言有这种特性,应该是亟需着重关注的言语。可能作者把Go语言排在相比靠前就是其一原因呢。

容量十分大?我的记录簿电脑会配置1EB硬盘?不,硬盘已经没有了,内存与硬盘已经合2为1了,因为内存也早就是白菜价了,配置1TB内存?其余东西都存在云端了,没必要管怎样容量问题了,因为带宽不成问题,从网络上读写10G数据也是几秒的事务?malloc()你就尽情地分配个八维数组吧,别去管如何内存溢出之类的不胜,哈哈。现在以SSD为根基的数据库系统和大数目解析技术已经出去了。

网络带宽1Gbit/s?总结机刚出版时,那是一个要旨集权的时期,一台大型总括机,周围唯有局部极端。当人手可以有一台微机时,出现了C/S系统。当WWW浏览器在世上普及时,B/S形式的中心集权起初复辟。现在JavaScript在浏览器上流行,实际上又是C/S换个马甲复活了。假如B/S是趋势,这你安排那么强劲的私有电脑又有什么用处吧?不,每台微机本身也是网络云总结中的一个节点,你无法不提供总结资源,才能访问外人的服务?

第二章 编程语言的病逝、现在和前途

2.1编程语言的社会风气

此间涉及了打孔纸带、巴贝奇的差分机、女程序员艾达(Ada)、第一台总括机ENIAC,至于到底何人是的确的第一这是翻译家的事了。总计机语言首要介绍了FORTRAN、COBOL、LISP、SNOBOL语言,然后讲到了脚下的主流语言。

100年后的编程语言会是什么样子?变化不大?使用编程语言来编程的这些行为已经不存在了?发明了更高抽象度写法的编程语言?反正我是看不到了。

20年后的编程语言是何等体统?肯定会在多CPU协作和多机分布式处理方面更是强有力。当前的线程编程模型实在太让程序员痛苦了。

2.2 DSL(特定领域语言)

外部DSL是由专用的言语引擎来兑现的DSL,可以中度自由的定制,但学习成本相比较高。
YAML、JSON、正则表达式都得以称呼外部DSL。XML相当通用,但描述冗长,不适合阅读和次序编制,将来会什么改进?

内部DSL则寄宿在某一编程语言的根底上,这样就不需要再学一门新的语言,宿主语言的语法等都可以拿来行使,节约了大气的先后支付时间。

实际上设计一堆API的过程,就是一种设计DSL的进程。

自我也早就想把工区底图和剖面程序DSL化,主旨程序员开发好组件库,其他程序员只需要这样写就行了:

a = Basemap.New

a.AddImage(image, 0, 0, 1, 1)

a.AddSurvey(…)

survey.Hide

SeismicLine.Show zxcVolume inline 200

……

可惜在C#里实现内部DSL如故一对一麻烦,只可以暂时用API了。

笔者认为Lisp、Smalltalk和Ruby适合当作内部DSL的语言,这也许与它们的元语言编程特性有关呢。

DSL
设计的组成因素:上下文、语句、单位、词汇、层次结构,那多少个概念我还暂时了解不了。

2.3 元编程

用程序来编写程序就是元编程Metaprogramming。这时又想到了数字油田中整天都说到的元数据,存储这多少个元数据尽管首要,但剥离应用的元数据肯定收集不上去,必无生存之地。假诺元数据和元编程都实现了,程序员获取数据的逻辑应该就是像well1.GetWellLog(“AC”)这样?你既不需要写SQL,也不需要写ORM映射关系,也不需要写实体类,写起来是便宜了,但仿佛学习起来难度更大了。

在Java和C#中紧要都是通过反射Reflection来拿到和改动程序本身的新闻,而Ruby的元编程很是强大,可以用几行代码生成100个方法,而在Java和C#中就不得不通过编制专门的代码生成器了。

Lisp中的程序是用S表明式来表示的,其先后和数据是一心平等的,
所以元编程已经尖锐融入到Lisp中了。

元编程很强大,但也不可以用得太多,否则了解源代码就很坚苦。

2.4 内存管理

污染源收集GC的二种情势:标记清除、复制收集、引用计数。引用计数形式的原理和兑现即使简易,但缺点也很多,由此近日基本上不再动用。想想Qt中的内存管理也是拔取引用计数,让程序员去决定什么日期增1、减1真是一种切肤之痛。

新的排泄物收集算法有:分代回收、增量回收、并行回收。

再有一位IBM的大方将物经济学上的大集合理论(Grand Unified
Theory,简称GUT)
用于垃圾收集,统一为跟踪回收和引用计数。

2.5 分外处理

今昔的尖端语言都有这么些处理机制,让程序员可以更有益于地拍卖非凡。传统的用极度再次回到值的不二法门,容易让原来正常的主次被错误处理代码所埋没。

Java
的检查型卓殊强制让编译器检查分外,有时的确不便于。非常之所以被喻为相当,本来就因为它很难事先预料到。明知如此,还非要在代码中强制性事先对特别做好表明,以避免发出编译错误,这实在是太痛苦了。

Ruby中的ensure、rescue和retry参考了Eiffel语言的保留字。

2.6 闭包

学Haskell语言时,我原先觉得闭包Closure就是指高阶函数,可以把函数当参数传递给函数。

C语言中函数指针的最力克笔是无力回天落实对表面局部变量的访问。可以对表面变量举行走访(引用、更新),是闭包的咬合要件之一。

其三章 编程语言的新时髦

在这一章中笔者重要介绍四种编程语言Go、Dart、CoffeeScript和Lua。看到此间自己打开了TIOBE关于软件编程语言的名次榜(截止到2014年2月),Go语言名次在20名之外(名次46),Dart名次22,CoffeeScript没瞧见,可能联合在JavaScript中了,Lua排行41。

Java稳居第2,JavaScript跃居第7,Ruby有点下降,处于第18名,而发展最快的R和斯维夫特(Swift)(Swift)没有出现在作者的书中。

必赢亚洲手机app 1

3.1 语言的设计

必赢亚洲手机app 2

静态类型的语言编译期间就能窥见更多的BUG,更易于阅读和了然。而动态类型语言的优点在于其简洁性和灵活性。

鸭子类型Duck
Typing:要是像鸭子一样走路,像鸭子一样可以,则它一定是一只鸭子。

3.2 Go(排名46)

可以称呼现代版的C语言。声称为New(新的)、Experimental(实验性的)、Concurrent(并发的)、Garbage-collected(带垃圾回收的)、Systems(系统级)的语言。作者最看好它,可能根本是因为它内置补助并发编程,再不怕它系出名门吧。

3.3 Dart(排名22)

Dart想取代JavaScript,但后者已经怀有了汪洋用户,看来Dart的前程并不光明。

3.4 CoffeeScript

JavaScript被投入了大气基金开展连发前行,其速度已经越来越快。既然JavaScript地位更加重要,能无法既不吐弃JavaScript,又克制其症结呢?CoffeeScript就是这种思路,它的编译器实现上就是JS写成的,CoffeeScript程序会全盘编译为JS代码去实践,其提升值得期待。 

3.5 Lua(排名41)

Lua重点在嵌入式领域,以轻量、高速和响应快为特色。

第四章 云总结时代的编程

从这一章最先,读起来兴趣不大了,简单询问多少个概念吗。

4.1 可扩大性

从简单的二分法查找,讲到散列表和布隆过滤器,又讲到了遍布环境中的DHT(分布式散列表)、Roma(键值存储数据库)和MapReduce。

4.2 C10K 问题 

C10K是Client 10000
Problem的缩写,指“在同时连接受服务器的客户端数量超越10000个的条件中,即便硬件性能充足,依旧不可能正常提供服务”。epoll、libev和伊夫ntMachine,这个就不掌握了。

4.3 HashFold

不感兴趣。

4.4 进程间通信

看Ruby 实现的网络服务器代码是分外的简要,将来有机遇可以一试。

4.5 Rack 与Unicorn

不感兴趣。

 

第五章 支撑大数目标数量存储技术

必赢亚洲手机app,这章早已不止了本人的通晓范围,列几个术语吧,CAP、NoSQL、MongoDB、OD
Mapper、VoltDB、memcached、Redis。 

第六章 多核时代的编程

这章中提到了UNIX中的管道效能,真是分外的精粹和强劲,相相比之下,Windows中的管道却是通过临时文件模拟实现的,非凡的杂质。

其余有关非阻塞I/O、node.js 、伊夫ntMachine的内容暂时在自己的趣味之外。

关于进程间通信,作者提到了ZeroMQ,是一种为分布式应用程序开发提供经过间通信功用的库。有时机可以一试。

 

必赢亚洲手机app 3

必赢亚洲手机app 4

必赢亚洲手机app 5

必赢亚洲手机app 6

必赢亚洲手机app 7

必赢亚洲手机app 8

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图