本人大一学C语言,大二学VB,大三学VC,毕业后工作前两年用C++,接着两年用C#,最近几个月Android开发用Java。
以下本人总结以下,有些疑惑希望大师帮忙解答。
1. C语言,精简,灵活,适合底层,编码相对大多数高级语言,比较原始,所以构建大项目,如果没有大量代码库储备,工作量非常大,性能高,开发效率低。
2. C++,引进了面向对象,又长期存在,所以基础库比较多,比如STL等等,语言的表现力非常强。即面向底层、系统层,又能高级UI开发,个人感觉,最好的语言。缺点是发效率相对稍微差一点点,一点而已,同时C++庞杂,学习稍微困难点。
C/C++最大的优势是直接操作内存,对效率性能非常非常有帮助,而且数据类型内存级强制转换、段域等,对数据类型转换,内存处理相对方便。而C++在此基础上支持面向对象,又有大量开发库支持,太好了,我喜欢。
3. C#,用了一两年,只用了C/S、WinForm方面,开发效率高,UI开发、事件委托机制、属性机制等,比较系统,比较高级,命名、类库结构等等是学习的典范。
4. Java,用了3个月,只是在Android使用,所以没接触java几大框架。
C#/Java主要特点是屏蔽了内存操作、引进了一些近几年的新概念,增强了语言的表现力。表现力强了,计算机描述问题就简单了些。剥离了内存操作是一大遗憾。
C#作为强大支持的微软,其整个C#领域,从设计、实现、小到命名规则、大到强大基础库支持,都是学习的典范。
Java优势就是开源和跨平台,开发平台搭建麻烦点,各个实现都要涉及多方面拼接,完全没有C#的完整性。Java本身类库支持的远远不够,比如Data类,字节转换类,比如一些(线程安全)队列等等。似乎Java提倡一切从头构建?难道我理解错了?为什么很多想使用的机制或者类库,在java没找到。