当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):变 ...
随机推荐
- Machine Learning 学习笔记 (2) —— 使用牛顿法寻找极值
本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 用牛顿法解方程 牛顿法是一种 ...
- 邻接表实现Dijkstra算法以及DFS与BFS算法
//============================================================================ // Name : ListDijkstr ...
- 【Populating Next Right Pointers in Each Node II】cpp
题目: Follow up for problem "Populating Next Right Pointers in Each Node". What if the given ...
- java中的IO流之文件复制
O(∩_∩)O哈哈~ 1.综述 一门成熟的语言肯定具备的几个模块:IO,通信,线程,UI...... Java作为一门成熟的程序语言,其IO流是比较复杂的.上个图大家感受下: 简单分析一下,IO分为两 ...
- websphere OSGi应用环境下服务调用saaj包加载问题分析报告
websphere OSGi应用环境下服务调用saaj包加载问题分析报告 作者:bingjava 版权声明:本文为博主原创文章,转载请说明出处:http://www.cnblogs.com/bingj ...
- django-CSRF verification failed. Request aborted
现象: 解决办法1: 在view.py文件中设置如下: from django.views.decorators.csrf import csrf_exempt @csrf_exempt #再写下面的 ...
- 02.Apache FtpServer使用数据库管理用户
1.创建数据库及表 使用\apache-ftpserver-1.0.6\res\ftp-db.sql建表,内容如下: CREATE TABLE FTP_USER ( userid VARCHAR(64 ...
- 【CentOS】安装jdk
问题描述: jdk安装与配置 (1)查看是否安装jdk --CentOS默认自带openjdk 先查看 rpm -qa | grep java 显示如下 ...
- Json Serialize 忽略特定属性
Json Serialize 忽略特定属性 Json Serialize SerializeFilter 忽略特定属性 key words:Json Serialize jackson fastjso ...
- [工作积累] OpenGL ES3.0: glInvalidateFramebuffer
https://www.khronos.org/opengles/sdk/docs/man3/html/glInvalidateFramebuffer.xhtml 这个在GLES2.0上只有Exten ...