关于C++前途问题

时间:2022-09-01 12:30:43
我一个学C#的朋友说C++早该被淘汰,气死我了。

我说C++有指针,适合做底层开发————》他说C#也有指针可以轻松操作内存,但也支持自动回收内存更安全。

我说QT库可以跨多种平台,开发手机程序————》他说C#也可以跨平台了,而且技术很成熟。

我说C++开发程序不用托管环境————》他说现在net都是windows自带的。

我说C++开发效率高,他说C#效率也不低,现在的电脑配置越来越高,服务端都很多用C#的了。

我无言以对,大神们我不懂C#,他说的是真的吗?

C++还说的过去,MFC更被他贬,请大神做个对比,帮我平平气氛。

6 个解决方案

#1


心平气和的认真听取别人声音是个不错的优点,所以你下次可以稍稍改进一下。

物之高下在于人。

C#有指针但很少能够用到(要标记为unsafe),垃圾回收很方便但无法对内存精确控制,有利也有弊,当然对其大多使用场景来说显然是利大于弊。

虽然.NET借助Moon也能勉强跨个平台,但如果不是自己找抽,编写跨平台的UI最好使用Qt。 Web开发的话,现有ASP.NET程序移植到Moon上要填很多坑,估计填过的都知道。

只在Windows下运行的程序,UI库推荐Qt(C++)、WinForm(.NET)或WPF(.NET)。

WinForm还是GDI、GDI+那套东西,和MFC没有本质区别,但使用起来要方便的多。WPF主要基于DirectX,有点类似于各个公司私自搞得DirectUI,但它用了XAML(一种XML)使逻辑与界面分离,还是比较现代的。WPF能够较容易把界面做的比较炫,但效率目前看稍差。实际上你用的Visual Studio在2010以后都用到WPF。

.NET 是Vista系统以上自带的,但版本混乱,写3.x吧Win8居然没有,写4.x吧Win7还要现装,总之没有想象的好。

至于MFC,它已过时了 ,如果你还没接触最好早早放弃,除非工作中用到。

实际上,WinForm/WPF 都半死不活的 不过说实话 现在所有PC客户端的UI库都是半死不活的 移动开发太火爆。

C# 只能做应用开发还行,其他的... 做不了系统,写不了驱动,目前无法胜任大多高效能场景。

游戏开发大多数引擎使用C++等原生语言,比如移动端现在很火的cocos2d-x,但Unity3d用了C#(C++可为其编写插件),Xamarin(C#)可以用于开发Android程序。

掌握C++你不会后悔,它发展多年,不受公司控制,特性丰富,书籍众多,使用场景广阔,对知识的融汇贯通大有好处,如果我重回大学我将主选C++。

另外,如果他掌握的较好的话并且时间富裕,与你的同学好好学习一下C#,一来C#确实是个相当优秀的语言(语法优美,编写效率高,与Visual Studio简直绝配),二来现在是个多语言协同的时代,如果你将来打算在Windows下工作,这门语言几乎无法避免。

#2


争论什么语言,其实主要还是在于人,你比他牛逼不就完了,管他什么语言。
又不是C++之父和C#之父争论谁语言比谁牛逼。

#3


这个没啥好争的,你尽管笑而不语就行了!你跟他争,就沦落为上下无品左右无德的境地,尽管这都是程序员们的通病.....

语言之间本身没有孰好孰坏之分,这主要取决于每个程序员的喜好,比如我就喜欢C/C++,其他语言都不入我法眼,即使C/C++指针内存操作那么的复杂! 但我绝不会跟其他程序员讨论语言之间孰好孰坏的问题,你自己知道即可(“他说C#效率也不低,现在的电脑配置越来越高,服务端都很多用C#”这句话,显然我是嗤之以鼻的,但对于一个对自己想法有说辞的人,你认为你可以说服他吗?毕竟程序员都很固执,坚持己见!——反过来,对于我的观点,辩论对方也很少会有认同的吧,要不怎么叫争论呢?)

另外,你们提到MFC被贬,这个是不争的事实,尤其是编译的软件要带其运行库,否则‘干净’的机器上无法运行这一点!但是,MFC也有它的优点,而且还不少,我们要辩证的看待问题,去其糟糠,取其精华。将其优点、思想应用于Win32中,未尝不是好事吧?

#4


我大早晨的把Mono打成了Moon 就没有人指出来么,呵呵。

#5


每种语言都有各自的应用领域,没有什么语言能处处通吃,很多大型软件系统都不是只靠一种语言就能实现的。
C#是有不少优点,但目前的现状是C++程序员岗位需求比C#多多了,随便到一个求职应聘网上搜一搜C++和C#的岗位需求量就明白了,以51job为例,C++程序员需求量是C#的2倍还多。另外很多领域就算是不用C/C++,其首选也不是C#啊,java/php/objective-c都还没发话呢。

#6


不要较真了,每个东西都有他擅长的东西,不能说有了高大上的导弹就淘汰了简单的子弹

#1


心平气和的认真听取别人声音是个不错的优点,所以你下次可以稍稍改进一下。

物之高下在于人。

C#有指针但很少能够用到(要标记为unsafe),垃圾回收很方便但无法对内存精确控制,有利也有弊,当然对其大多使用场景来说显然是利大于弊。

虽然.NET借助Moon也能勉强跨个平台,但如果不是自己找抽,编写跨平台的UI最好使用Qt。 Web开发的话,现有ASP.NET程序移植到Moon上要填很多坑,估计填过的都知道。

只在Windows下运行的程序,UI库推荐Qt(C++)、WinForm(.NET)或WPF(.NET)。

WinForm还是GDI、GDI+那套东西,和MFC没有本质区别,但使用起来要方便的多。WPF主要基于DirectX,有点类似于各个公司私自搞得DirectUI,但它用了XAML(一种XML)使逻辑与界面分离,还是比较现代的。WPF能够较容易把界面做的比较炫,但效率目前看稍差。实际上你用的Visual Studio在2010以后都用到WPF。

.NET 是Vista系统以上自带的,但版本混乱,写3.x吧Win8居然没有,写4.x吧Win7还要现装,总之没有想象的好。

至于MFC,它已过时了 ,如果你还没接触最好早早放弃,除非工作中用到。

实际上,WinForm/WPF 都半死不活的 不过说实话 现在所有PC客户端的UI库都是半死不活的 移动开发太火爆。

C# 只能做应用开发还行,其他的... 做不了系统,写不了驱动,目前无法胜任大多高效能场景。

游戏开发大多数引擎使用C++等原生语言,比如移动端现在很火的cocos2d-x,但Unity3d用了C#(C++可为其编写插件),Xamarin(C#)可以用于开发Android程序。

掌握C++你不会后悔,它发展多年,不受公司控制,特性丰富,书籍众多,使用场景广阔,对知识的融汇贯通大有好处,如果我重回大学我将主选C++。

另外,如果他掌握的较好的话并且时间富裕,与你的同学好好学习一下C#,一来C#确实是个相当优秀的语言(语法优美,编写效率高,与Visual Studio简直绝配),二来现在是个多语言协同的时代,如果你将来打算在Windows下工作,这门语言几乎无法避免。

#2


争论什么语言,其实主要还是在于人,你比他牛逼不就完了,管他什么语言。
又不是C++之父和C#之父争论谁语言比谁牛逼。

#3


这个没啥好争的,你尽管笑而不语就行了!你跟他争,就沦落为上下无品左右无德的境地,尽管这都是程序员们的通病.....

语言之间本身没有孰好孰坏之分,这主要取决于每个程序员的喜好,比如我就喜欢C/C++,其他语言都不入我法眼,即使C/C++指针内存操作那么的复杂! 但我绝不会跟其他程序员讨论语言之间孰好孰坏的问题,你自己知道即可(“他说C#效率也不低,现在的电脑配置越来越高,服务端都很多用C#”这句话,显然我是嗤之以鼻的,但对于一个对自己想法有说辞的人,你认为你可以说服他吗?毕竟程序员都很固执,坚持己见!——反过来,对于我的观点,辩论对方也很少会有认同的吧,要不怎么叫争论呢?)

另外,你们提到MFC被贬,这个是不争的事实,尤其是编译的软件要带其运行库,否则‘干净’的机器上无法运行这一点!但是,MFC也有它的优点,而且还不少,我们要辩证的看待问题,去其糟糠,取其精华。将其优点、思想应用于Win32中,未尝不是好事吧?

#4


我大早晨的把Mono打成了Moon 就没有人指出来么,呵呵。

#5


每种语言都有各自的应用领域,没有什么语言能处处通吃,很多大型软件系统都不是只靠一种语言就能实现的。
C#是有不少优点,但目前的现状是C++程序员岗位需求比C#多多了,随便到一个求职应聘网上搜一搜C++和C#的岗位需求量就明白了,以51job为例,C++程序员需求量是C#的2倍还多。另外很多领域就算是不用C/C++,其首选也不是C#啊,java/php/objective-c都还没发话呢。

#6


不要较真了,每个东西都有他擅长的东西,不能说有了高大上的导弹就淘汰了简单的子弹