《程序员的呐喊》读书笔记(上)

《程序员的呐喊》是Google一位老程序员的经验总结,文中展现了他对各大语言如Java、C/C++、Lisp、Python、Ruby、Perl等的极端观点,比如大力吐槽C++,极力推崇C、Lisp、Ruby。他的观点只是他个人经验所得,也不一定符合实情,仅供参考,有任何想法都可以说出来一起讨论。

  1. 程序员和司机一样,总是自我安慰说等到需要的时候再去学新技能也来得及。但是在内心深处他们都明白,其实当需求出现的时候就已经太晚了。因此现实情况是这样的,旱鸭子会和水保持距离,司机会绕开泥泞的路段,而程序员会躲在舒适区里,搭建围栏把自己保护起来,然后祈祷世界和平。

    me:其实喜欢躲在舒适区里是每个人都或多或少存在的性格弱点,谁能克服它谁就能学到新技能,谁就能站的比别人高。对于偶尔努力经常懒惰的我来说,技术也是学的广而不精,对新技术都有兴趣但学不到精深处,希望刚工作的我可以改善这个弱点。

  2. 当时04年亚马逊正饱受其庞大代码库的困扰,我曾经一度认为它的代码库失控是因为语言问题,后来才意识到企业文化是主因。首当其冲的是,亚马逊的主流语言里有两门非常哆嗦的语言C++中和Java,外加一门精练的语言Perl。但是Perl正受到排挤,渐渐退出主流。我觉得这是因为Perl程序员能用更少的人力完成和Java/C++程序员同样的工作量,所以要是比人多的话,他们注定是赢不了的。根据我们的估算,亚马逊的代码量比它的功能数量膨胀得更快。第二个因素是,亚马逊的很多技术问题完全可以用自定义领域语言(DSL的方式来解决),比如大规模的查询、分布式计算、产品配置等,他们写了太多不必要的代码了。我后来跳到Google,发现他们为这些完全一样的问题专门编写了强大的自定义DSL。这证实了我心中的疑虑,亚马逊的工程师在这些问题上和无头苍蝇没什么两样。我敢说这句话误伤的概率极低。最后一点就是,和绝大多数公司一样,亚马逊非常抗拒用新语言来解决问题。他们会避免使用表达能力更强的通用语言,比如Ruby或Erlang。他们也几乎从来不会想到自己去写DSL。

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值