当C++学到第20天的时候我崩溃了(找回刚开始的激情)
首先声明,我是个使用多语言(ASM/C/C++/Java/Perl)的人,主要使用C++和Java所以我认为我的意见还算中肯。
那些否定C++的人,你们是否了解————
Borland鼓吹Delphi如何强大,但他们招的人可以不会Pascal/Delphi,但你必须会C/C++
Sun(被Oracle收购了)鼓吹Java如何强大,可他们招的人也不许会C/C++
Microsoft当年力推VB,现在又力推C#,可他们的面试题还是C++
那些说C++怎样怎样的人,是你们的眼界太窄了,说Java好的人,多半只会做ERP,说Delphi/C#强大的人,多半只会做桌面应用。
数据库引擎作者们笑了,游戏引擎作者们笑了,操作系统内核作者们笑了(除了Linux内核是纯C加少量汇编,各大操作系统都有C++的参与),编译器作者们笑了(Java/C#的编译器是C++写的)。。
我并不说C++多好多好,我持博主观点,不批评,不赞扬,学习C++是非常耗时耗力的,但有时候(有时候!!)这是值得的,Java很强大好用,但是脱离了虚拟机什么也不是(各种嵌入式设备本来空间就紧张,再装个虚拟机。。),C#很强大很好用,但是脱离了.Net类库(如果单说.Net库,C++也可以用.Net)什么也不是。。但是C++可以不依赖什么而存在。。。可以不依赖操作系统(如C和汇编),不依赖虚拟机,却也同样可以构造一个高度抽象的类库(抽象能力正是C的欠缺)。。。
说到底,何来那么多对C++的不满呢?归根结底,是个大语言编译器厂商为了推广自己产品而误导广大程序员,Sun一直在说C++的弊端,《Java核心编程》里面也到处是C++与Java的比较(事实上从这个角度来说,Sun也是承认C++的地位的),而且比较的结果总是偏向Java,微软的对C++的态度还算好,但是为了推广C#,VS对C++的支持却日渐式微,但是为何微软大部分产品却不用.Net,这是为什么,诸位自己清楚。
我不否认任何语言,该用C++的人继续用C++,用Java的人继续用Java,用C#的人继续用C#,选择正确的语言做正确的事。我为C++辩护的原因,仅在于,不要误导新人,也不要引起任何语言战争。
@Coding_life
难学的部分根本不需要学,大部分人根本不需要STL,boost等等等等,你完全可以自己写类库代替。
而且今天出了stl,明天出了boost,后天又搞个什么特性,难道程序员每天不用干别的了
重复的重构自己的代码已适应看上去很时髦的C++“技术”?
绝大部分人用C++其实都是瞎用,包括楼主这种所谓的C++传教士。
编码在整个工程领域只占20%,80%主要是业务,从成本等角度考虑有学习C++高级技巧和考虑乱七八糟抽象的时间,完全可以用在最实在的业务研究上。C++最靠谱的用法就是c with class!
其他的都是瞎掰!看上去越花哨的功能底层往往越难掌握,那最好的办法就是不用这破玩意就好了。
OO本来就是用来封装代码的,抛开这点来说OO根本没多少用处。OO这些都是表面现象。真正的意义还在于业务流程的理解。大部分程序员都把精力放在20%的语法研究上了。就算让你提升了1%的性能又能如何?说到底还是那点奇技淫巧。而且随着标准的更新和自己技术的增强,也许你根本不会等到自己的代码被复用的那天,因为过几天你就开始反感你前几天自己写的代码了。
这个世界在发展,技术在进步,有永恒不变的思维模型么?
无知者无畏觉得自己无所不能这也叫信心,可是真正的商业开发中,技术越厉害的人越注重细节,在大部分人看来根本不是事的地方特别关注。最后你发现越厉害的人写的代码越返璞归真,只有小菜才会天天关注一些花哨的“C++技术”
学习C++最多21天,超过这个时间的人要么就是你关注错误的方向了(stl,boost全部可以无视因为没用所以没用)要么就是也许您真的不是做编程的料,或者python更适合您。
鼓吹C++的人大部分都是经验主义,似乎有一种C++情节觉得C++难学,我好不容易学会了我就不可一世了,那用打孔机编程的人是不是可以嘲笑几乎所有程序员,你们这帮靠着鼠标键盘的码奴居然写出这么烂的代码,你看我都是手工打孔的。
抛弃20%的语法研究你可以获得80%的业务研究时间。让你真正掌握什么是真正的编程。
编程不是艺术,而是技术,技术就应该实用主义,抛开具体实用的工程,编程根本没有意义。
你就算把牛津字典全部背诵下来你也写不出哈姆雷特。
程序好不好看的是设计,编码仅仅是20%的部分。甚至还没有文档重要。
当C++学到第20天的时候我崩溃了(找回刚开始的激情)的更多相关文章
- 【小白学PyTorch】20 TF2的eager模式与求导
[新闻]:机器学习炼丹术的粉丝的人工智能交流群已经建立,目前有目标检测.医学图像.时间序列等多个目标为技术学习的分群和水群唠嗑的总群,欢迎大家加炼丹兄为好友,加入炼丹协会.微信:cyx64501661 ...
- 小白学 Python(20):迭代器基础
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学Python(20)—— Turtle 海龟绘图
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...
- 学 Win32 汇编[20]: 洞察标志寄存器
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 NT IOPL OF DF IF TF SF ZF AF PF CF 未使用 嵌套标志 I/O权限标志占2位 溢出标志 方向 ...
- AJ学IOS(20)UI之UIPickerView_点菜系统
AJ分享,必须精品 先看效果图 ## UIPickerView控件 UIPickerView用处: 用来展示很多行(row) 很多列(component )的数据,多用于电子商务的点菜,城市选择等等. ...
- 小白学 Python(21):生成器基础
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(22):time 和 calendar 模块简单使用
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(23):Excel 基础操作(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- GNU make 总结 (一)
make的执行依赖于一个makefile文件,该文件告诉make应该如何执行编译和链接操作.make通过比较对应文件的最后修改时间来决定哪些文件需要更新.make工具主要用来进行工程编译和程序链接操作 ...
- loadView, viewDidLoad 快速使用
一 loadView: 在每次访问 UIViewController时,且其 view = nil 时,会调用这个方法,所以大家在开发中想自己设置 view 的可以用这个方法,在这个方法中自定义 v ...
- VBS数组函数学习实例分析
Array 函数 返回包含数组的Variant. Array(arglist) 参数:arglist是赋给包含在Variant中的数组元素的值的列表(用逗号分隔).如果没有指定此参数,则将会创建零长度 ...
- [Z] 深入浅出 Systemd
1. Systemd 的简介和特点 Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度.systemd 和 u ...
- android activity之间传递返回值
activity A,跳转至 Activity B ,A传参数user_name给B,然后B再返回修改后的参数user_name给A 首先A传user_name给B Intent input_B = ...
- ffmpeg 命令
1.保存文件: ffmpeg -i rtsp://admin:12345@172.29.61.108/Streaming/Channels/1 -vcodec copy -acodec libvo_a ...
- Ombrophobic Bovines - POJ 2391
Description FJ's cows really hate getting wet so much that the mere thought of getting caught in the ...
- SVN--(Eclipse)在历史记录中比较版本差异
前言 在SVN中比较各版本的差异是非常重要的功能. 方式 看图说话 结果
- 【BZOJ】【3907】网格
组合数学/python 3907: 网格 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 162 Solved: 76[Submit][Status][ ...
- 使用JFinal-weixin配置微信开发
先扯点闲话,申请好公众号后,一直因为没有域名.没有外网IP而没有尝试过开发微信服务.后来发现nat123可以从内网直接映射到外网,但是nat123需要钱或者T币大于0,于是为了赚一个T币,签到灌水了一 ...