1.主要是应用的区域不同。c主要用于底层开发,而c++是既面向过程又面向对象,适合各种类型的开发,java和c#是完全的面向对象,主要是开发一些应用程序。2.一般而言,硬件工程师用c较多,c++,java,c#软件工程师使用较多。做架构的人(嵌入式行业)是必须软硬皆通的,而且中间层是相当精通的。例如公司一个项目,通过前期调研确定了硬件方案,软件方案有好几种,比如linux,wince等其它平台,架构工程师必须比较各种平台的优缺点,选择最合适的方案(非最优)。