二、 巴别塔
开头介绍了下冯诺依曼体系结构,这个我在过去几年准备考研的时候学过,但是没掌握好,今年25岁,没时间考研了,感觉人生现在被推着走,相亲了十多个,没一个互相看对眼的:)。
文章说必须掌握C,要学习Scheme,不需要学习其他Lisp。文章说C++很糟糕,STL作者也这么说,在掌握更优秀的语言的前提下,才会懂得怎样批判自己最熟悉的语言。
Steve认为是垃圾工程师和WEB开发人员尤其是前端工程师毁了亚马逊创业成功的基石——Obidos服务器。我正好是前端入行,希望我不会成为垃圾制造工程师:)。全世界的伟大工程师都用Emacs。真正的工程师只用Emacs。考虑到是04年的博文,我允许他这么认为吧:)。Steve认为Java是软件工程历史上的一大进步,但是太喜欢Java的人都不值得信任。Java需要时间来掌握。后面提到了Geoworks,我找到一篇介绍它的文章https://tedium.co/2019/06/20/geoworks-geos-history/。 Perl的作者过于关注Unix集成和字符串处理,没有注意列表和对象。Ruby结合了Perl和其他语言的优点,在知乎上看到关于松本行弘说自己数学差的讨论,笑死我了:)。Python问题是空白符和脑子不转弯,不过是作者个人看法。
三: 作者手记: 名词王国里的死刑
这篇我昨天学node的时候看过了,不过没怎么看懂为什么说看了这篇就能懂函数式编程。几年前我看书自学过JavaSE,没有深入,不知道现在的Java是不是还是重视名词忽视动词。
四、名词王国里的死刑
C、JavaScript、Perl和Ruby等不需要像Java造名词来束缚动词,在需要的时候可以定义类来创建重要的名词。对于Haskell、Ocaml、Schem等,动词很重要。至于文章提到的Lambda, 不知道是不是指基于Lambda演算的语言。
五、作者手记:神秘机器的笔记
略
六、神秘机器的笔记
Steve认为本文能传授给读者程序员一种能终生受用的思维模式。他认为软件工程师也和现实中的政治一样分为保守派和自由派,二者没有确切的相关性,可能完全相反。有些人比较中庸,可以算温和派。温和派在软件工程界里的影响力也不可忽视。创业公司往往是自由派,商业化的说法是为了改变世界。自由主义主要是以最快速度开发新功能,同时能保证系统的灵活性,防止开发过程被拖慢或受阻。保守派也以此为目标,但是灵活性和生产力不再是主要动机,安全最重要,其次是性能。
软件世界里自由派和保守派根本分歧是到底要在安全性上下多大功夫。这里的安全不仅指编译时的类型安全,还包括更广义的大规模系统上的“防止小白误操作”的安全性。作者举的分歧例子里有个第三范式,我在知乎上查到一个回答,有点长,先放着。自由主义会认为Bug无法避免,我们要掌握诊断和调试,不然要代码冻结干什么(代码冻结意味着代码被冻结,开发人员将不再进行任何修改。代码冻结后,代码不应由开发人员更改。只有在出现严重缺陷的情况下,开发人员在更改控制板批准后才能更改代码,并进行修改以解决这一严重缺陷)。
今天是6月12日,相亲对象说我微信不怎么跟她聊天,不愿意出去,但是每天早上好晚上好也太无聊了,除非对方愿意这样,她从来不会主动找我聊,我又不知道她的想法,现在才跟我这么说,感觉我好难啊。我和她game over了。
静态类型是软件政治观点的分水岭,更是保守主义世界观的特征。有一个双方都会支持的观点——有静态类型的话,工具链的支持会比较好。