为什么说学java的不缺对象_我为什么不建议初学者学“c++”

本文探讨了C++初学者面临的挑战,即语言的“纯粹性”导致需配合大量库。作者强调了C++底层API的重要性,并提出通过学习操作系统原理和具体业务场景来提升抽象能力。阅读《Linux Application Development》是提升C++实用性的关键。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

众所周知,C++是一个多范型编程语言。面向对象在C++语言中占有相当大的比例。面向对象最重要的作用在于对事物的抽象。而C++本身是一个“纯粹”的语言,其本身不包括太多与外部环境有关系的类库。所以初学C++的人,如果不了解操作系统的很多东西,是没法写出什么可以让初学者感到有实际用处的程序。如果只会C++,只能是做纯思维的锻炼,但是由于缺乏一些具体的东西,而且也没有可能遇到很复杂的业务场景,导致没什么东西需要去抽象的。这导致初学者容易产生以下几种想法:

1.我学C++学的这么辛苦,怎么什么都编不出来,你看人家学Java的,学C#的,学ASP的,学PHP的,等等。

2.C++到底能干什么?

3.学了这么辛苦,还什么都做不出来,编程序太难了,不适合我,我放弃了

难道真的是C++什么都做不出来吗?当然不是了!那为什么会这样?就是因为C++太“纯粹”了。C++必须配合与操作系统打交道的库,才能实际上做出来点什么东西。而C++的库却太多了,不同的方向有不同的库,同一个方向,也有无数个库,初学者根本不知道有这些库,知道了,更迷茫,到底选择哪个库?

而Java的却相当于有自己的官方库,学习了基本的Java语法以后,马上就会学习点别的东西,比如与数据库打交道类,比如Swing,比如Socket之类的东西,很快就可以做出点对初学者来说可以看到见摸得着的东西,容易产生成就感,不会有太强的挫折感。而且很快就遇到了很多“具体”的事物,所学习的面向对象的思想,可以用来抽象和表达这些具体的事物,使得其学习不会给初学者以“空中楼阁”,“纯理论”的感觉,更接地气的感觉。

个人觉得C++没有自己的官方库,确实是其在某些方面的发展声势不如Java的一个很重要的原因! 但是C++要跨平台,提供很多东西,也确实有很多困难。

不得不承认,C++的优势在于其对底层接近的一些事物的抽象能力,同时有保持了很高的性能。那这些与底层接近的事物,在常见的操作系统上都是以非面向对象的API形式提供给用户的。比如线程,进程,socket等等。所以要想去自由使用C++去进行抽象的前提,就是去对这些底层的事物有了认知以后,才能去做。

那么也就意味着你必须去先学习操作系统的API,了解操作系统的东西以后,再结合具体的业务场景,这个时候,你才能认知到抽象的价值,那么才能体会到C++的美妙。

所以Linux Application Development - 2nd Edition读起!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值