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

《程序员的呐喊》读书笔记(上) 《程序员的呐喊》是Google一位老程序员的经验总结,文中展现了他对各大语言如Java、C/C++、Lisp、Python、Ruby、Perl等的极端观点,比如大力吐槽C++,极力推崇C、Lisp、Ruby。他的观点只是他个人经验所得,也不一定符合实情,仅供参考,有任何想法都可以说出来一起讨论。程序员和司机一样,总是自我安慰说等到需要的时候再去学新技能也来得及。但是在内心深处他们都明白,其实当需求 阅读详情

声明:本博客仅代表本人观点,如有问题可以联系我,email:chaoyanglius@outlook.com,转载请注明出处。

逛图书馆的时候,偶然看到《程序员的呐喊》这本书,欣喜不已,于是就拿来翻了翻。因为以前就听说过这本书,只是不知道里面讲的是什么。今天有机会看到,当然不能放过啦!
刚刚读完一篇我就被吓到了,书里面竟然这样评价C++:

C++非常冷漠,可以说地球上最糟糕的语言

看到这句话,我有点受不了了,但是我还是坚持看完了这篇文章《巴别塔》,因为我想知道究竟是什么原因让作者(Steve Yegge )这么吐槽C++。

刚看到这篇文章的题目《巴别塔》,我就满脸的疑惑,“‘巴别塔’是什么鬼,跟这篇文章有什么联系?”查过资料才知道,原来巴别塔只是作者的一个比喻,比喻编程世界里不同的语言。这个不是重点,先不深究了。下面我来总结一下作者为什么说C++是“地球上最糟糕的语言”:

  • 冷漠,C++完全缺乏自省能力

首先我们要知道“自省”是什么意思,确切的说应该是“编程语言的自省”。这个概念是针对面向对象的编程语言来说的,具体是指程序在运行时能知道对象的类型。作者说的这一点,我刚开始有些认同,但是就目前来说我觉得这个观点可能就有点太过于偏激,C++并不是完全缺乏自行能力,只不过是相对较弱而已,因为我们可以通过typeid来获取对象的类型(这是我目前所知道的)。

  • 愚钝,愚钝的语言写不出聪明的系统

作者这里的意思是C++完成一个软件需要巨大的代码量,他总是喜欢拿亚马逊来说事儿:

像山一样高的排泄物,规模超过你见过的任何山脉。每当你要修复什么东西的时候,非得爬到最中间才行。

这一点作者说的一点也没错,用过MFC的人应该都深有体会。但是我觉得不能用愚蠢来形容这个语言,这个评价实在是太严重了。我这里并不是想否定作者的话,我也没有资格(因为作者在文中说到“我建议你去了解一下优秀的编程语言是什么样子的,如Lisp,然后你才有资格否定我的话”),我只是想说:事物不是一成不变的,任何编程语言都会成长,更何况C++较以前已经改进了很多,它已经从Java、C#等语言中吸收到了很多优点;而且我不认为世界上会有一门“天生”就优秀的编程语言,Lisp语言本身就比C++出生的早!

参考资料

  1. “编程语言的自省”. 学步园. http://www.xuebuyuan.com/. 2013-01-09
  2. typeid Operator. MSDN. http://msdn.microsoft.com/EN-US/library/fyf39xec(v=VS.140,d=hv.2).aspx.

知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

《程序员的呐喊》读书笔记(下) 接着《程序员的呐喊》读书笔记(上),继续分享下篇,这次干货比较多哦,有静动态类型的优缺点、强弱类型系统的对抗、设计模式、程序员的数学、编译器的重要性以及保守派自由派的较量,一时消化不了的建议保存以便read it later。静态类型和动态类型的优缺点静态类型的优点下面列出了静态类型的主要优点:(1)静态类型可以在程序运行之前,依赖其与生俱来的限制来及早发现一些类型错误。(或是在插入/更新记录,解 阅读详情

相关推荐

程序员的呐喊.pdf

程序员的呐喊.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

《程序员的呐喊》:一场思想的盛宴,程序员的必读之选

《程序员的呐喊》:一场思想的盛宴,程序员的必读之选 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 《程序员的呐喊》是由Google知名程序员Steve Yegge所著的一本精彩文章合集。书中不仅收录了作者在业界颇具争议的文章,还涵盖了编程语言文化、代码方法学、Google公司文化等热点话题。这本书不仅是一本技术书籍,更是一本能够引发程序员深思的哲学著作。 项目技术分析...

gitblog_06620的博客 580

程序员的呐喊,完整扫描版

【坚持做一个傻瓜!】 《程序员的呐喊》的作者是业界知名的程序员——来自Google的Steve Yegge,他写过很多颇富争议的文章,其中有不少就收录在本书中。《程序员的呐喊》是他的精彩文章的合集。   《程序员的呐喊》涉及编程语言文化、代码方法学、Google公司文化等热点话题。对IT界的各种现象、技术、趋势等,作者都在本书中表达了自己独特犀利的观点。比如Java真的是一门优秀的面向对象语言吗?重构真的那么美好吗?强弱类型语言到底哪个更好?敏捷真的靠谱吗?程序员要不要懂数学等。另外,他还谈到了很多大公司的理念,比如亚马逊做平台为什么那么成功等。最后,《程序员的呐喊》还收录了他写的Google面试攻略,这篇文章可以说为无数应试者点亮了明灯。   《程序员的呐喊》讨论的都是程序员非常关注的热点话题,内容广泛,观点独到,非常适合广大程序员阅读参考。

吐槽java之《程序员的呐喊》读后总结

《程序员的呐喊》读后总结 ——关于java的批判 一、写在总结前面的一些废话 《程序员的呐喊》(后文简称呐喊),是一本非常有趣的散篇,全文都是作者对目前软件开发界的看法,主要翻译者也很可爱,用了一些中国化的文字进行描述,感觉看的时候十分畅快,当然前提你得是个程序员。作者,是一名开发了20几年的软件工程师,用过10几门主流语言,开发过无数大型项目和平台,曾在亚马逊和谷歌工作。 作

qiubaihong的博客 4312

GEO芯片数据下载和探针ID转换(保姆级教程)

R语言安装、GEO芯片数据下载、探针ID转换

qq_43138237的博客 3万+

详解在linux上安装vpn客户端

详解在linux上安装vpn客户端

FuncPlotCalc 8422

《程序员的呐喊》一一1.4 名词王国里的执行

本节书摘来自异步社区出版社《程序员的呐喊》一书中的第1章,第1.4节,作者:【美】Steve Yegge ,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 名词王国里的执行 程序员的呐喊“他们中有些家伙的脾气可大了——特别是动词,最傲气的就是他们——形容词可以随便捏,但动词就不行——不过他们都得听我调遣!不可捉摸!我就说这么多啦!” ——...

weixin_34254823的博客 205

librealsense2 camera.so: undefined symbol:ZN2cV3MatC1EV解决笔记记录

先参考的这个兄弟的办法虽然没解决但是提供了大方向感谢; realsenseD400系列相机报错:undefined symbol: _ZN2cv3MatC1EiiiRKNS_7Scalar_IdEE解决方案 后解决办法参考 No GPU usage on jetson xavier NX · Issue #2326 · IntelRealSense/realsense-ros · GitHubOpenCV_DIR" to a directory containing one of the above f

梁俊星的博客 3514

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

忙忙碌碌的生活依然少不了读书,尽管是利用零零碎碎的时间,我也依旧不会忘记把这本书翻上几页。现在我想把用零碎时间读这本书产生的零碎想法整理一下,于是我写下了这篇读书笔记。

退休码农飞伯德 536

解决Windows 10安装语言包时遇到的0x800F0954错误

在安装Windows 10操作系统的语言包时,如果遇到错误代码0x800F0954的提示,这无疑会让许多用户感到困惑和无助。这个错误通常意味着在安装过程中遇到了一些阻碍,导致无法正常完成语言包的安装。本文将为大家详细解析这个错误代码0x800F0954,并提供一系列有效的解决方法,帮助大家顺利安装所需的语言包。

nntxthml的博客 3793

从养殖场到科技前沿:YOLOv11+OpenCV精准计数鸡蛋与鸡

YOLOv11结合OpenCV技术,精准识别和计数鸡蛋与鸡,广泛应用于养殖场、市场监控和自动化包装。通过深度学习与计算机视觉,提升农业生产效率,让智能化管理更简单高效。

专注于深入研究多种编程语言,以实战为导向,逐步拓展开发技能,提升工程化编码和思维能力,展现无敌技术实力。 1204

《程序员的呐喊》一一1.1 作者手记:巴别塔

本节书摘来自异步社区出版社《程序员的呐喊》一书中的第1章,第1.1节,作者:【美】Steve Yegge ,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.1 作者手记:巴别塔 程序员的呐喊这篇是本书最老的文章,写于2004年9月,当时我已经在亚马逊干了差不多6年了。当时亚马逊正饱受其庞大代码库的困扰,我曾经一度认为它的代码库规模失控是因为语...

weixin_34174322的博客 165

【Pytorch实战教程】基于RML2018的融合网络分类 | LSTM网络和ResNet网络融合 | 含数据集的处理

这段代码是从原始数据中读取所选择的数据,画出星座图,并将星座图保存本地,然后将IQ数据保存成mat文件,将图片数据读取之后保存为npy文件,方便后续融合网络使用。

若北辰 927

高通平台Android 无线 UWB 开发全解析:UWB系统设计、天线与校准全流程指南

为使 UWB 系统达到目标性能,在整个开发流程中遵循一套设计最佳实践至关重要。系统架构:需基于飞行时间(ToF)功能的基准方案(POR)定义系统框图,这是整体系统架构的基础。天线布局:天线位置对性能影响极大,需尽可能贴近 UWB 芯片,以减少信号损耗、保持高传输效率。器件选型:需谨慎选择元器件,推荐使用单刀双掷(SPDT)或双刀双掷(DPDT)开关、UWB 带通滤波器射频同轴测试接头,以保障信号传输路径与测试能力。原理图优化:原理图开发阶段,走线损耗优化极为关键。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 171

人工智能训练师三级考试备考全攻略|报名条件+真题+补贴申领一站式通关(2026版)

本专栏是人工智能训练师三级考证最完整的备考指南,共77篇文章,覆盖从职业认知、报名实操、AI基础知识、数据标注、模型训练测试部署、考前冲刺到考后进阶的全链路。本导读按模块整理了全部文章链接,帮你快速定位所需内容。人工智能训练师是国家认定的正式职业,证书可在osta.mohrss.gov.cn查询,三级证书可申领最高3120元技能补贴。

白话机器学习 1781

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

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

代码湾 754

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

《程序员的呐喊》读书笔记——学习数学的正确方法

数学的学习方法 本文源于《程序员的呐喊》,作者:Steve Yegge。其中对于程序员学数学的观点令我有所启发,故在此记录当时所想。 《程序员的呐喊》,作者:Steve Yegge 并附上pdf电子档下载链接:https://pan.baidu.com/s/1UGdZ4dUc5IPVXMMzsCVWXA 密码:kjs4 对数学的看法 事实是:程序员不懂数学,依旧能生活得好好的。 ...

h_y的博客 870

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

读小敏子简书《程序员的呐喊》读书笔记(上)有感

中午午休时间,又看了几篇小敏纸的文章,这两天关注她是因为自己经过毕业后三年多的职业发展,觉着自己已经进入了一个瓶颈,这个瓶颈就是现实环境的视野已经遮住了我看清远方的眼睛,不向BAT看齐的话就不知道自己来北京的下一步进步的方向在何方了。 今年以来一直想着对自己的过去进行一段告别,从过去的屌丝生活中挣脱出来。但是生活不是想变就能变了的,它是一个潜移默化的过程。自己最近小半年一直在看书,主要是传记和理

fuxin0519的专栏 716

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

《程序猿的呐喊》读书笔记(下)

接着《程序猿的呐喊》读书笔记(上)。继续分享下篇。这次干货比較多哦。有静动态类型的优缺点、强弱类型系统的对抗、设计模式、程序猿的数学、编译器的重要性以及保守派自由派的较量,一时消化不了的建议保存以便read it later。静态类型和动态类型的优缺点静态类型的长处以下列出了静态类型的主要长处:(1)静态类型能够在程序执行之前。依赖其与生俱来的限制来及早发现一些类型错误。(或是在插入/更新记录...

weixin_34137799的博客 251
上一篇: ros_arduino_bridge功能包集的使用错误及解决方法总结
下一篇: 给博客签上CC协议
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值