经常听到有人在抱怨这个语言哪里哪里不好,那个语言又是如何的优秀。对于这样的牢骚,我只是一笑而过。
就我而言,语言只是工具,没有好坏之分。只要你采用相应的语言,完成对应的工作,那你的目标就完成了。我们无需抱怨这种语言的缺点,而是应该抱有接受的态度。任何语言的存在都有它的合理性,如果不合理是不会经受住时间的考验的。世间之物都具有双面性,只是看利多还是弊大。如果一个东西是十全十美的,那我毫不犹豫的告诉你,一种情况是它不存在,另一种情况是你还没发现它的缺点。
每种语言都有自己得天独厚的优势,当然缺点同时伴存。C语言是计算机界的常青藤。C语言执行效率高,用于写底层的驱动那是再适合不过。指针是C语言的精华。而C++是很强大的,只要你是个高手,你几乎可以利用C++完成任何事情。当然虚函数是C++的精华。Java取消了指针,这是应该喜还是忧。喜的是,没有C或者C++那种对内存繁琐的操作,而且也降低了很多致命性的错误发生的概率。忧的是,效率大打折扣,采用虚拟机的方式使得Java有跨平台的特性,必然会使得效率降低。另外一个方面,你借别人的东西使用(内存),是不是应该还回去呢?从这一方面考虑,C或者C++的设计思想更有意义。经常关注TIOBE世界编程语言排行榜,Java已经有很久排名第一,我觉得这样的排名只是看看而已,无需过多的信奉。下面看看几种主要语言的优缺点。
C语言
C语言的优点:
1.简洁紧凑、灵活方便
2.运算符丰富
3.数据结构丰富
4. C是结构式语言
5. C语法限制不太严格,程序设计自由度大
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
7. C语言程序生成代码质量高,程序执行效率高
8. C语言适用范围大,可移植性好
9. C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型
10.有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护
C语言的缺点:
1. C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C++的一大区别。
2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
3.可重用性差
4.数据安全性差
5.难以开发大型软件和图形界面的应用软件
6.把数据和处理数据的过程分离为相互独立的实体
7.当数据结构改变时,所有相关的处理过程都要进行相应的修改
8.每一种相对于老问题的新方法都要带来额外的开销
9.图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难
C++
C++优点:
1.可扩展性强
2.高效 简洁 快速
3.可移植性
4.面向对象的特性
5.强大而灵活的表达能力和不输于C的效率
6.支持硬件开发
7.程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障
8.通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便
C++缺点:
1.比较底层,易用性不是很好
2.多重继承和友元机制
3.标准库涵盖范围不足
4.开发周期长
5.非并行
6.掌握有难度
7.粒度封装不够
Java
Java的优点:
1.简单性
2.面向对象性(面向对象的程度可以达到95%)
3.健壮性
4.跨平台性
5.高性能(自动垃圾回收机制)
6.多线程
7.动态性
8.安全性
Java的缺点:
1.效率低(毋庸置疑)
2.跨平台是它最大的优点也是最大的缺点
3.复杂性(做一个项目需要很多的知识,涉及面广)
很多时候,一种语言的优点很可能是它的缺点,缺点又可能是它的优点。这主要看你是从哪方面去考虑。这就印证了那句话,凡事没有必然。
不管是哪种语言,就像文章开头所言,只要你采用他达到你想要的,那就成功了。无需过多在意它的缺点,更无需赞扬它的优点。所以网上那些关于哪种语言更好的口水仗,我只能说这样的争斗毫无意义。
语言只是工具,没有好坏之分。
参考资料:
http://www.mscto.com/C/07626105.html
http://topic.csdn.net/u/20081014/09/a38a71e5-78ad-4fda-867d-8628344575a1.html
分享到:
相关推荐
然而,面对编程语言和技术框架日新月异的更迭,初入IT领域的程序员们如何才能为自己规划一条清晰的职业发展道路呢?《程序员职业小白书——如何规划和经营你的职业》便是这样一本为这些职场新人提供指引的实用手册,...
程序员晋升.doc————电子版_doc版
在编程领域,程序员不仅需要掌握扎实的编程语言基础,例如Java、Python、C++等,还需要理解软件工程的基本原理,包括需求分析、设计模式、版本控制(如Git)和项目管理。此外,了解数据结构和算法是提高程序性能的...
2. "那些年啊,那些事——一个程序员的奋斗史.pdf" 是这本书的电子版,可能包含了作者的亲身经历、技术心得、职场感悟等内容。PDF格式保证了内容在不同设备上的一致展示,方便读者随时随地阅读。 3. "淘宝网特卖....
黑马程序员入学Java知识——精华总结
《程序员算法趣题——随书源码》是一个与算法相关的学习资源,包含了增井敏克著作《程序员算法趣题》中的实例代码。增井敏克是算法领域知名的专家,他的书籍通常深入浅出,旨在帮助程序员提升算法思维和解决实际问题...
读书笔记:程序员的自我修养——链接、装载与库
读书笔记:程序员的自我修养——学习笔记
本书描写了一位刚从大学毕业,对社会懵懵懂懂的菜鸟程序员段伏枥,通过自身的努力,一步一步前行,最后成为...这是一个程序员的奋斗,也是无数程序员的缩影。 同时,这也是一部IT公司潜规则与科技江湖厚黑学的实录。
读书笔记:Java程序员面试笔试宝典——算法实现
这个项目旨在帮助初学者通过实践加深对Java编程语言的理解,同时学习如何构建一个简单的Web应用程序。在“足球网”项目中,你将有机会运用到Java的基础知识,包括类、对象、数据结构、控制流以及文件I/O等,同时也会...
读书笔记:《程序员的自我修养——链接、装载与库》第13章实验——实现一个迷你的C语言运行库MiniCRT
读书笔记:mini CC++ runtime library —— 《程序员的自我修养——链接、装载与库》
读书笔记:《程序员的自我修养——链接、装载与库》