LINUX下可以使用C++么?为什么说C++与linux文化相抵触?

c++语言由于过度的复杂性,以及与unix的文化相抵触,在unix/linux领域受到很多著名人士(比如Linux之父linus torvalds与著名黑客Eric S. Raymond)的强烈批评与抵制?

这段话从何而来啊,另外,请问,LINUX下可以用到C++么?
我初学编程语言,以前计算机二级过的是FORTRAN。而且想在LINUX下使用,如果认真一些,直接学习C++可以不?

一、Linux下不仅可以用C++,而且可以很好的用C++。
Linux的著名桌面框架KDE就是用QT开发的,QT是C++的一个程序框架。
只要有C++库和编译器就可以编写、编译C++程序,这个放心。

二、出处:参见《unix编程艺术》对c++的批评。

C++由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C++的编译系统受到C++的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。
由于本身的复杂性,复杂的C++程序的正确性相当难于保证。也有人提出不支持多线程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C++被广泛使用和成功。
c++语言由于过度的复杂性,以及与unix的文化相抵触,在unix/linux领域受到很多著名人士(比如Linux之父linus torvalds与著名黑客Eric S. Raymond)的强烈批评与抵制。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-28
当然可以用C++。
从运行效率上来说,C++和C相差不是太多。C稍微高一点。

从所谓的编码风格来说,C++是面向对象编程,C所谓的面向过程。但是通过使用函数指针,你也可以实现面向对象,你可以看看内核的代码。

下面回答一下为啥不喜欢C++的原因吧。
从编译器的角度来说,C++的编译器帮你做了一些你必须要注意的事情,比如拷贝,比如继承之类的。这种事情看起来可以减少编写代码的长度,但是对于维护和调试来说却带来了巨大的麻烦。因为编译器额外做了一些没有让你看到的事情,这些事情你又必须理解了才能让程序正常运行,这就是为啥说C++难以调试。你愿意花1天来写代码,然后花不知道多少天来调试呢,还是愿意花3天来写代码,然后花2天来调试呢?当然,你可以说是写代码的人水平不够造成了这个问题,但是你要知道人总是会犯错误的...这种基于隐藏规则的检查就应该由编译器来干才对。

要是想减少编码长度,可以选择Python啊,干嘛用C++?
第2个回答  推荐于2017-11-28
1)肯定可以的呀!
2)只是Linux下的编程通常偏向效率,而明显C的效率明显要好于C++,但是C++的面相对象特性,对于布局/架构代码也明显不是C可以做得到的。
3)现在很多Linux下的开发工作主要就集中于服务器和嵌入式,都比较偏重于效率性,尤其嵌入式;但是对于服务器,个人觉得如果不是对效率要求非常严苛,还是可以用C++的,毕竟C++对于管理代码,理解代码的架构还是比C容易得多。追问

为什么C++理解代码比C容易得多?

追答

因为C++的面相对象特性啊,你可以将每个功能都封装成一个类,功能单一,清楚,尽量做到与其他类少关联,这样你理解一个功能就可以集中精力在这个类上,而对于整体的结构又可以根据每个类的关系来理解。
而C是面向过程的语言,虽然也可以将部分功能封装到函数里面,但那只是很小的功能性,没什么结构,你里面代码时,就得全部代码一起,“逐行逐行”跑下来,多苦啊。
当然,对于千来,几千行的代码,都一样,但是当代码量上W,10W甚至更多的时候,就体现出来了。

追问

一个人编一段,然后汇集一起的?这个叫面向对象的?我如果是编程语言的初学者,直接学C++不去看C语言的东西也可以吧

追答

没有说什么可以不可以的,学就是。到最后你会发现,这些都不重要,你真的懂C了,你就懂C++了,你懂C++了你也懂C了,个人觉得没必要把他们分开了说。没看到基本上都是说C/C++这样的吗,你看有多少书 是将他们分开写的。

本回答被提问者采纳
第3个回答  2012-10-28
当然可以使用C++啊。
那段话的意思主要是指责C++语言的复杂性。
C++由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C++的编译系统受到C++的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。不过有如此多的知名人士提出了如此多的缺陷,正说明C++被广泛使用和成功。
第4个回答  2012-10-28
在没有学会骑自行车之前,可以不要学习开摩托车,就更别说开汽车了。这个问题是见仁见智的,复杂不复杂,好不好用是大家看问题的角度和层次不同。抵制是因为这些大拿都已经做出了,或者以后还会做出更好的工具...

如果是个工具,你可以学习并且用好它;如果你学好了,想发展它,可以继续深入的研究它;如果它确实有无法克服的缺陷,那就开发一种更好的工具取代它。如果能做到第一步,也就不错了。

PS:C\C++在Linux下都可以用。追问

你的意思是我现在学C还是学C++都行是么?还没到我能体会到他复杂程度的地步?

你认为C是自行车,C++是摩托车?

追答

False.

它们都可以同时是任何车,关键是用的人的水平。把它们当自行车骑要卖点力啊,当成摩托车骑就省多多劲老。要是能开成汽车,可以上高速。如果当成飞机开上了蓝天,你就可以看到原来在地上看不到的东西。

LINUX下可以使用C++么?为什么说C++与linux文化相抵触?
一、Linux下不仅可以用C++,而且可以很好的用C++。Linux的著名桌面框架KDE就是用QT开发的,QT是C++的一个程序框架。只要有C++库和编译器就可以编写、编译C++程序,这个放心。二、出处:参见《unix编程艺术》对c++的批评。C++由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C++的编译系统...

Linux系统中一般使用什么语言编程呀?
主要是C,C是Linux的“母语”,这也是linux这个开源环境和本身机制所导致的,就连linus都力挺C,而驳斥C++。虽然没必要拒绝C++,但是,不可否认,C更适合linux~。Linux操作系统主要包括内核和组件系统。Linux内核大部分是用C语言编写的,还有部分是用汇编语言写的,因为在对于硬件上,汇编有更好的性能和...

为什么Linux创始人不看好C++
原因在于C++面向对象的三大特点,这三大特点也是面向对象最重要的:封装,继承,多态。用辩证唯物主义来说:C++最强的地方也是C++最弱的地方。再次重申:C++是很优秀的语言,它和C各有所长,也各有所短,建议都学,并且在C++程序中完全地抛弃C。再次重申:Linux创始人的立场不代表我的立场。我认为C和C++...

为什么linux的内核用c不用c++呢?
一是,C语言比C++精益,语言核心很小,C++的运行时库和特性实现起来要比C的复杂的多,比如实现动态绑定的RTTI就会有开销。而操作系统核心的一个主要设计概念就是要控制内存和速度的开销,C++显然没有C语言更合适。二是,Linux之父Linus,他自己就不喜欢C++语言,原因有很多也包括上面说的第一点,你可以...

C++程序能在linux下运行吗
运行可以。不过编译 Linux 下面比较特殊,编译过程一般都是用 make 来执行编译过程控制的。编译用 GCC ,这两个都是命令行程序。前端程序似乎用的人不多,印象里 eclipse 里有这么个功能,但是大家传统上都是打命令来进行编译过程(相对来说环境要求低,make 命令是所有 Linux 乃至 UNIX 都有的程序)...

为什么LINUX下编程很少用C++,而是用C更多
1)肯定可以的呀!2)只是Linux下的编程通常偏向效率,而明显C的效率明显要好于C++,但是C++的面相对象特性,对于布局\/架构代码也明显不是C可以做得到的。3)现在很多Linux下的开发工作主要就集中于服务器和嵌入式,都比较偏重于效率性,尤其嵌入式;但是对于服务器,个人觉得如果不是对效率要求非常严苛,...

为什么C++与Linux关系如此紧密?好多关于C++的书都或多或少与LINUX有关...
Linux和Unix非常类似,可以划为一类。C和C++也很相近,统称为C\/C++ 下面回答问题:1.C语言的创始人同时也是Unix系统的创始人之一 2.Unix类系统通用的cc或gcc编译环境是最标准的C语言编译环境。最接近C语言的本质

为什么linux开发都用c++
我所知道的linux开发是完全没用c++的, 内核全是用c写的。 至于应用,服务器基本上是java, php,nodejs。 你说的c++估计是指那些功能性的应用吧。主要是应为linux环境标准, 和posix非常吻合, 所以开源社区c++项目非常多。

visual c++可以用linux ubuntu里的那些软件代替?
作为C++\/VC++工程师表示很难取代,Linux下面用到最多的编辑器应该是vim+插件,IDE环境当然也有,不过我个人认为没有一个比visualC++好使的。个人的通常做法是用visualC++开发,然后扔到Linux上编译,一般使用标准库和Boost库。如果需要在Linux环境下调试用vim就够了,vim也一定要熟悉,因为这个用的最多...

linux中的C与C++有区别吗
c和c++是编程语言,linux是操作系统,两者互相独立。编程语言既可以用在linux下也可以windows下,区别就是编译器、链接的lib库不同而已。

相似回答