文章吧-经典好文章在线阅读:《Seven Languages in Seven Weeks》读后感摘抄

当前的位置:文章吧 > 原创文章 >

《Seven Languages in Seven Weeks》读后感摘抄

2022-05-15 02:07:47 来源:文章吧 阅读:载入中…

《Seven Languages in Seven Weeks》读后感摘抄

  《Seven Languages in Seven Weeks》是一本由Bruce A. Tate著作,Pragmatic Bookshelf出版的Paperback图书,本书定价:USD 34.95,页数:328,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。

  《Seven Languages in Seven Weeks》精选点评:

  ●可以了解不同语言的特性,可以增强对软件设计的能力

  ●只看了clojure部分,想不通编这本书的意义在哪,这几种语言都是偏冷门的,一般不会有人同时都要用到他们。clojure部分分成了day1, day2, day3,读起来就好像回到了21天精通Java之类的系列一样。我只是从里边捡一些知识点,但三天的量又能覆盖多少呢

  ●飞机上的快餐

  ●不同的语言或者语言范式是用来解决不同领域的问题的,强烈推荐这本书,它可以作为语言学习的目录书籍。

  ●其实我这个名字应该改一改 Seven Language in Seven Days, 哈哈, 10年的大年30那几天就是这个陪我过的

  ●扫了scala的一段,什么时候有空继续扫erlang和clojure。

  ●读过clojure部分,从单语言来看本书没有价值,不好评价。。。

  ●七周都没有学会小舌音

  ●多收了三五种Hello World的写法,主要作用还是让人对几种语言产生基本的观感,具体细节和扩展要另寻它处。Prolog最让人耳目一新,Clojure作为LISP的方言也很想了解一下。(2012-05-24在读)

  ●给三星吧。可能限于篇幅,每个语言讲得都比较粗,但是最大的语言特性基本都提及到了。看到中后面有点乏味因为都是差不多的东西,直到haskell的monad才又激发了兴趣。

  《Seven Languages in Seven Weeks》读后感(一):计算机爱好者不应该错过

  首先,看了此书的英文版之后又看了中文版,翻译应该算值得信赖。

  Jolt的奖项也是对这本书的肯定。而最近这本书火起来,中文版也功不可没。

  众所周知,每一种语言或复杂或简单,使用者想要使用到一定境界,都不是短短一周可以达成的。所以这本书从根本上就不是像副标题中描述的A Pragmatic Guide to Learning Programming Languages。这本书更像是对“非主流”的语言界的一次全面概括。作者精挑细选的7门语言基本囊括了“非主流”界的各种范式,也不乏“非主流”界中的主流,名门望族。细致的描述了每一个语言的特性,以及多种语言之间的对比。对于每一个喜欢language,想要了解language的计算机爱好者都不应该错过。有志想去独立的设计一个language的爱好者当然更不应该错过。

  《Seven Languages in Seven Weeks》读后感(二):编程语言巡礼

  挑着看的,看了Ruby,Io,Clojure,Haskell几章。开拓了视野,原来编程语言还可以这么玩。

  不得不说,Python果然是集大成者,吸收各种语言的特性,难怪用起来这么爽。但也丧失了各种语言的最核心的优势,比如Ruby 的元编程能力,Lisp的宏等等。

  这本书中介绍的几种编程语言都或多或少有元编程能力,能改造自身称为一门DSL。也有对并发的自己的一套解决方案。

  Haskell太纯的函数式显得过于死板,为了解决某些过程式问题,引入一个奇怪的monad,好麻烦。而且currying一次处理一个函数参数不会降低速度么?

  Clojure 的binding 有点意思,好像也被Python吸收了,匿名参数,不 care。

  lazy evaluation 的确很神奇,Clojure和Haskell都有该特性,生成无限长的列表,取其所需的一部分,有点意思。

  list comprehension 也被Python吸收了。

  不得不说,作者在引言中说:本书不仅仅是让你会用不同的编程语言写出Hello world 和Fibonacci函数,而是要让你能够在真正的项目中使用该语言。但对于Clojure和Haskell来说,好像也逃不出这两条。

  《Seven Languages in Seven Weeks》读后感(三):哪些必学的编程语言

  编程语言大类,莫非Object-Oriented,Procedural,Functional, Logical。而 《7 languages in 7 weeks》 则推荐如下编程语言:

  OO: Ruby Scala

  rototype: IO

  Logical: Prolog

  FL: Scala Clojure Erlang Haskell

  语言特性又如:

  Concurrency: Actors in Io, Erlang, and Scala; STM in Clojure

  artern Match: Scala, Erlang, Clojure, and Haskell

  本书未提而其他还蛮有意思的如:

  Declaritive:Prolog SQL

  Data Oriented: SQL

  Aspect Orented: AspectJ AspectC++

  学习编程,个人愚见,几种类型都涉猎无疑功力大增。Erlang偏居一隅,不必学。Io倒不如JS。Prolog、Scala还是必须学。 作者过赞Ruby,小型网站Web开发尚可;还不如学习用途更广之Python。还想深入,纯FL则Haskell、LISP方言则Clojure。 还未提到的Aspect-Orented的AspectJ和Data-Oriented的SQL,也是比不可少要学的。

  于是自己列了一自拟的编程语言学习先后等级:

  C Scala Prolog

  ython、SQL

  Clojure、Haskell、Ocaml、AspectJ

  想必自己学完如上所有语言,对各种语言模式了解更深,以及解决不同问题时对各种顺手语言的选择空间更大。

  《Seven Languages in Seven Weeks》读后感(四):一切不符合人类阅读习惯的语言都不是好语言

  时隔一年,现在所在的公司重构后端时,曾考虑过 `Scala`,有个基友看游戏工资高,毅然决然的去看`Erlang`,有次 `Thoughtworks` 活动分享听到了 `Clojure`

  再看这本书时,赫然发现 `Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell`

  坐井观天了啊,再次翻阅这本书,发现其实并不用看这本书

  所以若是猎奇,满足好奇心,可以看看,如果是想认认真真的学,还是跳过吧

  ---

  纵观编程语言,林林总总,大致逃脱不了以下范畴:

  1. 模型

  - 函数式

  - OO

  - 原型

  2. 数据结构算法

  1. 数据结构

  - 类型

  - 链表

  - 哈希表

  2. 过程

  - 判断

  - 循环

  3. 并发

  关于并发,由于过程不符合人类思维,目前貌似还没什么好办法

  我想以后即使解决了,也应该是通过天才的一些人,写好封装起来,让我这种智商平平的人,像写 `ifelse` 那么简单来解决掉的

  个人感觉,一个语言的流行,与以下几点密不可分:

  1. 商业推广(Java|OC)

  2. 安全稳定

  3. 是否易于人类阅读

  前两点无需多言,说多了都是泪

  七周七语言中有提到:

  In many ways, Clojure is the wise kung fu master, the oracle on the hill, or the enigmatic Jedi trainer.

  Lisp 的好处,从《黑客与画家》就得知了,并且 Emace 誉为“神用的编辑器”

  但是,说的那么好那么牛逼,却流行不起来,是个值得深思的问题

  从语法糖的角度来说,还记得有次用 `Swift`,一个上一代的(C/C++/Java)程序员(无贬义),仅仅是看到返回值变成了 -> , 变量类型在后面就惊呼不已

  至于我自己,完全接受 `Go Swift` 等语法糖,却也感觉 `Lisp` 的前缀表达式各种难受,简单还好,一长就晕了,并且结尾一堆右括号很有异端的感觉

  可见程序员习惯了一套体系后,再接受新语法有多困难

  “代码是写给人看的”

  所以我想,反人类阅读方式的语言不说会消失,至少不会在人类中流行开来

  所以 Mazi 另辟蹊径,把重点放到了如何让程序员快乐的写代码上

  所以没什么最好的语言,只有最合适的语言

  当然上述所说的,都不是用于一种情况,即电脑进化到可以编写代码

  因为这已经脱离了人类的范式

  《Seven Languages in Seven Weeks》读后感(五):点子不错,缺乏洞见

  读完蛮失望的。

  作者在前言中说:“I will take you beyond syntax”,要“get into the head of a language designer”。他写道“I won’t settle for a superficial treatment.” 那么这本书成功与否,就看作者是否实现了他的承诺。

  在我看来,显然没有。

  在前言中,作者说这本书会忽略细枝末节,着眼于每门语言最精华、独特的思想。的确,每章并没有一步步指导你怎样配置环境安装软件,但仍然把大部分篇幅花费在介绍基本语法上。书中几乎每个语言都或多或少带些函数式编程的味道,于是我们就看到作者一遍又一遍不厌其烦地介绍匿名函数和map、filter、fold、take, etc etc。list comprehension、lazy evaluation、future 等特性也反复出现——除去对又一新语法的猎奇外没有太多信息量。

  或许是因为这些零零碎碎占去太多篇幅,介绍那些真正重要内容的部分就差强人意了(显然每章的电影人物类比也没起到什么作用)。随便举例:

  Ruby 元编程只在第三天简单碰了一下。

  Io 的 coroutine 究竟好在哪?只说 pre-emptive multitasking 不好,就自动证明“voluntarily suspend and resume execution”好?例子太刻意,完全不能说明问题。

  rolog 因为太特别,所以仅仅是读代码、做练习就很开阔眼界。但 unification 作为语言的核心概念,作者也只是简单提到,却从未解释。

  cala 的正则表达式就是每个字符串多了个方法.r,这就"first-class"了?

  Clojure 的 protocol 从书中的介绍来看只是 Java interface 的替代品而已。如果是这样,何必浪费篇幅提它?(反正整个 interop 部分都略去了。)更重要的是 protocol 提供了在不牺牲性能的条件下解决 Expression Problem 的方案,忽略这点岂不是本末倒置。

  介绍 Clojure 的并行机制是就直接扔出 STM、Atom、Agent,而不讨论三者在独立/协作、同步/异步等方面的异同,作者为 STM 给出的例子又完全可以换由 Atom 更简单地实现,实在不免让人困惑它们各自的用途。

  Actor 从 Io 到 Scala 再到 Erlang,三章都没明确讲清 Actor 哪里好,在什么情况下适用。Io 一章只是说 shared state 不好,所以每个 actor 自己的 state 不和别人 share 就好?这也太 simple naive 了吧。后面的例子莫名其妙。Scala 一章用 Actor 解决了一个明明用(连 Java 都有的)future 解决起来更简单的问题。Erlang 一章也只是说 Actor 好是因为在分布式的系统中能更好地容错——但书中却没能给出一个用Erlang实现分布式系统的例子。

  类似以上的例子不一而足。当然,作者说了他不可能样样都讲清,还是需要读者自己额外阅读。问题在于,我们需要额外阅读的,是基本语法,还是(作者承诺在书中讨论的)真正有趣的语言特性?这些语言特性中,作者该模模糊糊地“mention”很多,还是该集中篇幅剖析几个?

  对于书中提到的每门语言,网上都有质量更高的入门指南和深入探讨,因此我不觉得这本获得Jolt大奖的书值得推荐。不过或许在寻找有趣的语言时可以参考一下它的目录。

  我想,如果郑晖先生把他的《冒号课堂》前半部分扩展成这样一本书应该会有趣得多吧。

  附:失去耐心前完成的前7章习题。。

  https://gist.github.com/2922865

评价:

[匿名评论]登录注册

评论加载中……