软件开发这个行业的武器就是编程语言。IT发展到今天,产生了种类繁多的编程语言,有的古老却任然使用,有的新生而激情四射,有的只是昙花一现就黯然消逝,有的则从诞生之日就不断 发展壮大。选择何种编程语言平台,便是摆在很多希望步入IT行业人面前的首道难题。
1.Java
Java语言自1995年发布以来,由于其面向对象、跨平台和分布式的特性迅速风靡整个IT界。加之Sun、Oracle、IBM等行业巨头的大力支持,以及众多开发者为其设计的各种框架技术使得Java技术涵盖了当今软件开发的几乎所有方面。其中,JavaEE和JavaME分别在企业级和移动开发上牢牢占据着霸主的地位。
另外,由于Java主要面向上层应用,运行在Java虚拟机上,所以无法对系统底层进行很强的操作。因此底层系统的开发,如操作系统、51单片机等,一般是不会采用Java技术的。
2.C
C语言历史悠久,功能强大,很多编程语言都或多或少地收到C语言的影响,发展至今仍然可以傲视大部分后来者。C语言是一种面向过程的结构化语言,由于其面向底层,编程灵活,效率高,广泛应用在嵌入式、操作系统等系统级别的开发中。
早期C语言也用来做上层语言的开发,近些年来由于其它专门针对上册开发的语言平台的长足发展,C语言逐渐淡出了上册软件的开发。
3.C++
C++衍生自C语言,但是发展到现在,C++和C语言已经独立开来,并且C++编译器也可以容纳C的源代码。C++被很少应用于WEB级和企业级开发,更多地被应用在系统开发的项目中,在大型游戏、设备驱动等方面有较大的优势。但是C++语法并没有彻底甩掉C语言的累赘,面向对象搞地不够彻底,使得C++语言过于复杂,可靠性要略低于其他语言。
很多人认为Java和C++是不共戴天的死敌,其实Java和C++之间并不存在,或者不存在太多的竞争关系。
目前编程语言繁多,引起很多初学者的困惑,有些初学者甚至连VC++和C++都不分,认为VC++就是C++。VC++只是C++的一个Windows版本,除此之外C++还有嵌入式、Linux和Solaris等多个平台的版本。
严格意义上讲,Java和C++之间并不存在,或者不存在太多的竞争关系,这主要是由二者的语言特性和开发效率决定的。
1)语言特性
与C++相比Java语言比较简便,比较适合开发上层应用.而C++有许多复杂的特性,尤其是指针和内存管理令人头疼。
显然C++的这种语言特性决定了其无法应用与种类繁多的上册应用,而Java依靠其灵活性可以更好地胜任这一点。
C++的语言特性决定了其使用较为困难,开发过程相对速度慢、成本高。而Java凭借其良好地开发效率,降低开发成本。
2)跨平台性
C++开发的应用一般是绑定平台的,即适用于Windows平台下的应用程序无法在Linux或其他平台下直接运行,而开发上层应用都希望能够运行在多个平台上。显然C++在开发上层应用时无法与可跨平台的Java想媲美。
但是C++具有Java做不到的底层开发的能力,因此C++在平台级的底层开发(如驱动程序等)中具有不可比拟的优势,而这一点是Java办不到的。
实际上,在2000年之前,Java和C++的竞争合作关系还有些混淆不清,但是之后二者的分工越来越明显。无论是在安卓平台上,还是在Linux或其他平台,Java和C++都是同一个战壕里的亲密战友,很多版本的Java虚拟机本身就是用C或C++编写的。另外,提到Java和C++,有必要再比较一下JavaEE与C#。C#和JavaEE之间还是有一定的竞争关系的,不过虽然二者都是面向企业级的平台开发,但也有了比较明确的分工。
C#语言开发的应用程序只能在微软平台下运行,这样就给用户带来的选择空间比较小,因此C#更适合于中小型规模的企业应用。
Java得天独厚的跨平台性使得JavaEE平台下的应用程序可以运行在多种平台,从Tomcat到Weblogic,从Windows到Solaris,因此大型的企业级应用仍是Java的天下。
4.C#
C#是微软开发的面向对象的编程语言,C#有许多优于C++的特性,比起C++,C#在面向对象方面做得更好。C#用于Web开发比C++好,而底层开发却远不如C++,C#需要运行在.net framework之下,有一定的跨平台性。
5.PHP
PHP是一种内嵌在HTML中的服务器端脚本语言,它是开放源代码的。经过历代开发者的辛勤劳动,PHP1.0从只有一个简单的网站计数器和留言本,发展到PHP5强大的面向对象功能。在开源项目的如茶如火的发展趋势下,PHP还会吸引大批的开发者加入。
不过PHP由于一些线程安全问题、缺少标准框架和其他商业原因等(不要认为开源的就是彻底免费的),PHP在开发一些大型复杂的项目是就有些捉襟见肘,因此PHP比较适合于中小型的项目开发。
6.(Visual)Basic
Basic最初是初学者设计的一门语言,很多人认为不应该将其作为初学者的入门语言,不利于初学者学到基础的编程模式和结构及养成良好的编程习惯。而且用VisualBasic开发的程序只能运行在微软的Windows平台之下,也在一定程度上约束了其用武之地。
7.Perl
Perl是一种具有动态特性的脚本语言,同时支持泛型变量等灵活的特性。由于Perl借鉴了其他编程语言的很多语法,因此使得Perl比较容易学习。Perl主要应用在UNIX平台下的程序开发和PHP的开发中,具有一定的跨平台性能。
8.Python
Python是一门比较年轻的语言,在2004-2005年间非常流行,之后发展平稳。其最大的特点就是可以和Java、C++等语言很好滴结合在一起,而且只要添加某种模块,就可以实现相应的功能。Python主要应用与多媒体处理、网络编程等方面。
9.JavaScript
JavaScript不同于Perl等脚本语言,JavaScript是运行在客户端的脚本语言。其简单易学,但是要想用好必须下很大的功夫学习。尽管安全性差,JavaScript还是靠着其跨平台性、灵活性高等特点称为最受欢迎的脚本语言,尤其是在如火如茶的AJAX技术渐渐成为大众新宠之后。
10.Ruby
Ruby和Python以及Perl比较类似,最大的不同之处在于Ruby里所有都是对象,而且它比后两者都年轻.Ruby有一个基于MVC模式的框架ROR(Ruby On Rails),在解决中小型应用时快速简洁。
11.Delphi
Delphi是由Borland公司开发的,它并不是一门语言,而是个开发环境。主要使用ObjectPascal语言。很多人熟悉的"熊猫烧香"就是用Delphi开发的。除了开发Windows下的应用程序,Delphi还可以应用在Linux平台下。
12.Pascal
同Basic一样,Pascal一开始也是为教学而设计的,因此Pascal是一门很好的教学语言,用于数值计算也非常适合,也是很多计算机类大赛的参赛语言,同时很多名牌大学也是将其作为入门语言。Pascal语言产生了很多版本,Delphi采用的就是其中的ObjectPascal。