道德专判
c语言的场景是偏硬件,跨硬件平台,嵌入式,资源敏感的场景等。
操作系统,交换机,防火墙,基站,光猫等等一些传统IT CT厂家喜欢用的。
现在互联网用java c++ golang甚至Python node.js的都多。c语言语法本身太简单,操作原生套接字和原始报文,要做点什么高级点的事情都要自己花很大经历造轮子,要不就用别人开源的东西。
一般公司能hold吗,光字符编码,内存泄露,踩内存,这些经常出现的问题就玩死一票小公司了,还别说极度依赖各种第三方库了,还有c语言是极度不安全的编程语言,因为极度灵活,所有安全性基本上全靠程序员自身的约束。
还有人说效率问题,开发效率也是效率。
阿里巴巴用大量java做后端,腾讯百度大量用c++做后端。gmail用java,知乎用Python。
c的性能强是强在计算,网络这种io密集型,语言间的计算性能差异根本就不是很重要。
说完了企业方面,再说个人方面,用c语言写个最简单的echo服务器,因为c语言没有网络功能,win平台和linux mac都需要使用对应平台的api从socket层面开始写,select epoll kqueue都需要自己实现,而且你没有大公司那一套编程规范,内存安全函数,已经内存调试手段,出问题都很难找。这些东西在其他原生支持网络库的语言都是一句话的事情。要是自己写着玩,用c写就是找罪受,而且业界也用得不多。为了找工作也不受待见。每个语言擅长面是不一样的,拿java写软交换,一样蛋疼。
如何你想学习网络,学习报文底层的收发,用c没问题,因为高级语言屏蔽了细节,但并不说这是适合。