在linux或unix上正好相反, c语言一直到现在都还是主流, c语言编写的命令程序可以很方便与其他程序在shell上配合. c, 脚本和shell构建了一整套unix/linux哲学.
与c语言相提并论的一般是c++, 因为与java, python, vb这些语言明显不是一个领域.
c语言相对c++来说比较简单, c++则编程语言中最复杂的一个.
可以简单的总结说:
1. c语言符合unix/linux哲学, 它适合和其他程序以进程方式组合来构建大型的应用, 也是因为这个原因, linux直到2.5才把线程提到考虑范围中. linux特别重视进程的开销, 而相比windows, linux的进程开销也相对较小
2. c++语言符合windows编程环境, 大部分windows程序都是以界面为主, 在windows上想用c写界面程序是很不容易的, 而且可利用的资源还少.
所以缺点只是相对而言, 如果你适合在win平台开发, 不需要再考虑c, c++可以完全替代它. 如果你适合在linux平台开发, 你甚至可以只用c, 因为linux中的桌面系统gnome都是拿c(但是经过了一些模拟对象化的处理, 而且大部分上层应用还用了python来编写)来写的.