选择学习 C 语言、Go 语言、C++11 各有哪些优缺点?
选择学习 C 语言、Go 语言、C++11 各有哪些优缺点? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
C写出了当今命令式机器里的大部分核心软件,C++要解决C不能解决的复杂性问题,但C++引入了更多的问题。其中一个最致命的问题,我给它起的名字叫语言友好性。C写出的库,很多语言可以使用,这也是为什么用C写操作系统。C++写出来的库,只能C++自己用,试想有人敢用C++写操作系统吗?无论如何,如果你想了解当今软件里的基本原理,我建议,必须会C,会明白C++里的大部分特性,以及C++的问题。了解Go,思考软件语言的未来 |
|
|
|
|
C: 基本上所有成功的OS内核都是C写的。*NIX / Windows / OSX BSD Subsystem的API也是C
C++: 历史上最大的推力其实是来自微软,*NIX社区并不怎么待见。严格的说C++并不是Windows API的语言,只是应用层普遍选择的语言。这个语言纵然有很多问题,微软平台上的native应用很少有不用的。不过由于微软系统的巅峰时代已经过去,这个语言的前途并不明朗;视频游戏领域倒是还无可替代
Objective-C: OSX的GUI应用和iOS的API语言,别的地方基本没人在用。这个语言的问题不比C++小,但是由于Apple的推力很大,目前看相当成功,长远看难说(走C++的老路)
Go: 尚未有成功的系统为之背书,仍需证明自己。如果Google出一个杀手应用,指定Go做API语言,情况就会大不一样 |
|
|
|
|
过去属于 C,现在属于 C++,未来是Go的(仅限于高性能网络应用服务端开发) |
|
|
|
|
C++过于复杂,在相对底层的环境中应用广泛(和C基本相当),但是在很多新兴领域,尤其是互联网相关的领域,C++很可能会成为项目的痛点,尤其是在项目组成员水平不太高的情况下 |
|
|
|
|