有些人会说语言学到最后不都差不多吗?其实可以这样讲,也可以不这样讲。虽然每种语言的表达能力大部分是重合的,只是语法表现形式不一样,但是由于历史发展的原因,每种语言形成了自己的支撑环境,所以都有其主要的适用范围。
C、C++、Python和Java四种是通用编程语言,JavaScript和PHP算是Web环境的专用编程语言。
C(令人崇拜的语言)
由于其底层操作特性和历史的积累,在嵌入式领域是当之无愧的王者。
C++(神秘莫测的语言)
是一种支持最广泛编程范式的复杂语言,在高级语言当中,处理运行速度是最快的,大部分的游戏软件,系统都是由C++来编写的。
Python(高端大气上档次的语言)
作为一种灵活的轻便的通用型脚本语言,使用范围比较广,从应用软件到Web开发都有它的身影,由于其解释语言的特点,比较适合轻量级或原型开发;
Java(有噱头的语言)
Java由于其跨平台可移植性,在Web开发领域大放异彩,特别是在企业级Web开发,同时由于Android系统采用Java来开发应用程序,所以也随着Android的发展而应用越发广泛;
JavaScript(有潜力的语言)
JavaScript语言由于其是浏览器内置的脚本语言,是Web前端开发的主流,近年来由于google的V8引擎开源,出现了Node.js之类JavaScript后台开发框架,把JavaScript的应用领域扩展到了Web后台。
PHP(低调奢华的语言)
独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页;还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
理清不同语言间主要语法特性的差异,才能更好的在合适的领域或场景下去应用合适的编程语言,以满足我们所面对的需求。这六种语言都是从C语言发展而来,所以它们的语法都比较像C语言,下面我就主要语法特性对各个语言做一个对比。
1、常量定义
C:#define TEST 0
C++:#define TEST 0
或者
const test = 0;
Python:test = 0
C#:不支持
PHP:define(‘test’, 1);
Java:final int test = 0;
分析:JavaScript不支持常量,C、C++都用特有的预定义宏,PHP用特殊的define语法,其它的都用定义不变变量的方式。
2、变量定义
C:int test = 0;
C++:int test = 0;
Python:test = 0
JavaScript:val test = 0;
PHP:$test = 0;
Java:int test = 0;
分析:这个最基本的都支持了。
3、函数定义
C:int test(int param){}
C++:int test(int param){}
Python:def test(param):
JavaScript:function test(param){}
PHP:function test($param){}
Java:public class test{
public int test(int param){} }
分析:这个也是最基本的了,只是Java比较特殊,不支持定义类之外的函数。
4、类定义(含继承)
C:不支持
C++:class test2: public test1{}
Python:class test2(test1):
JavaScript:function test2(){}
test2.prototype =inherit(test1.prototype){}
PHP:class test2 extend test1{}
Java:class test2 extends test1{}
分析:C由于是传统面向过程的语言不支持类,其他的都支持了,只是JavaScript的类模型比较特殊,把函数作为类来使用。
5、对象定义
C:不支持
C++:test2 obj = new test2();
Python:obj = test2()
JavaScript:var obj = new test2();
PHP:$obj = new test2();
Java:test2 obj = new test2();
分析:除了C外其它语言都是通过new一个对象。
6、数组定义
C:int a[] = {1, 2, 3};
C++:int a[] = {1, 2, 3};
Python:a = [1, 2, 3]
JavaScript:var a = [1, 2, 3];
PHP:$a = array(“1”, “2”, “3”);
Java:int a[] = {1, 2, 3};
分析:数组是语言的基本特性,都支持了,只是PHP通过类似函数调用的语法来完成。
7、条件语句
C:if (test > 0){}
else if (test < 0){}
else{}
C++:if (test > 0){}
else if (test < 0){}
else{}
Python:if test > 0:
elif test < 0:
else:
JavaScript:if (test > 0){}
else if (test < 0){}
else{}
PHP:if ($test > 0){}
elseif ($test < 0){}
else{}
Java:if (test > 0){}
else if (test < 0){}
else{}
分析:这是最基本的语句,都支持了。
8、循环语句
C:for (idx=0; idx C++:for (idx=0; idx Python:for idx in range(1,10): JavaScript:for (var idx=0; idx PHP:for ($idx=0; $idx<$num; $idx++){} Java:for (idx=0; idx 分析:这个也是基本的语句,都支持了。 9、foreach语句 C:不支持 C++:不支持 Python:for i in a: 或者 for key in d: d[key] JavaScript:for(i in a){} PHP:foreach($a as $i){} Java:for(int i : a){} 分析:foreach算是循环语句的一个变种,在操作顺序容器的时候非常有用,可以看到C和C++不支持,其它的都语言内置支持了。 10、打印语句 C:printf(“test: %d”, val); C++:cout<<“test: “< Python:print “test: “+val JavaScript:不支持 PHP:echo “test: $val”; Java:System.out.println(“test :”+val); 分析:打印算是语言所运行环境的支持库功能,除了JavaScript外都支持了,因为JavaScript主要使用来操控DOM树的,没有自己的输出窗口所以也没必要支持。 11、字符串定义 C:char test[] = {“helloworld”}; C++:String test = “helloworld”; Python:test = “helloworld” JavaScript:var test = “helloworld”; PHP:$test = “helloworld”; Java:String test = “helloworld”; 分析:这个都支持了,其中C++、Java都是用标准库来现实的。 12、字符串串接 C:test = strcat(test1, test2); C++:test = test1 + test2;(STL库) Python:test = test1 + test2 JavaScript:var test = test1 + test2; PHP:$test = $test1 .= $test2; Java:test = test1 + test2; 分析:很有用的功能,除了C是用标准库函数来实现,其它都是语言内置支持了。 13、字符串分割 C:不支持 C++:test.substr(3, 8); Python:test[3:8] JavaScript:test.slice(3, 5); PHP:substr($test, 3, 5); Java:test.substring(3, 8); 分析:常用的功能,C不支持,Python是语言内置支持,其他的都依靠库来完成。 14、字符串正则表达式 C:不支持 C++:不支持 Python:test.replace(“test1”, “test2”) JavaScript:test.replace(/test1/gi, “test2”); PHP:str_replace($test, “test1”, “test2”); Java:test.replaceAll(“test1”, “test2”); 分析:常用的功能,可惜C、C++不支持,其他都有标准库来支持。 15、内置容器类型 C:数组 C++:数组 顺序容器 Vector 关联容器 Pair MapSet Python:列表/元组 字典 JavaScript:数组 对象 PHP:数组(含关联数组) Java:数组 序列 Collection 映射表 Map 分析:C最简单只支持数组,其他都支持容器,不过主要还是顺序容器和关联容器两大类。 16、注释方式 C:/* */ C++:// Python:# JavaScript:/* */ // PHP:/* */ // # Java:/* */ // 分析:大概就/**/、//、#三种方式,各自支持情况不一。 17、多线程支持 C:支持 C++:支持 Python:支持 JavaScript:不支持 PHP:不支持 Java:支持 分析:四种通用编程语言都支持了,两种专用编程语言都不支持。 18、socket支持 C:支持 C++:支持 Python:支持 JavaScript:不支持 PHP:支持 Java:支持 分析:除了JavaScript以外都支持,这也是JavaScript的应用领域限制所决定的。 19、垃圾回收机制 C:不支持 C++:不支持 Python:支持 JavaScript:支持 PHP:支持 Java:支持 分析:这是现代语言的重要机制,C和C++不支持,其他的都支持了。 20、引入其他文件中的函数 C:export int test(); C++:export int test(); Python:from test import * JavaScript:<script language=’javascript’ src=”test.js”charset=”utf-8″></script> PHP:require_once(‘test.php’); 或者 include_once(‘test.php’); Java:import java.util.test.*; 分析:都支持,C和C++用export,Python和Java用import,JavaScript依靠HTML脚本,PHP用自己的函数调用。 21、将字符串作为指令执行 C:不支持 C++:不支持 Python:eval(“port=5060”) JavaScript:eval(“port=5060;”); PHP:eval(“port=5060;”); Java:Porcess proc = new ProcessBuilder(“test”).start(); 分析:很有用的一个动态语言特性,C和C++都不支持,Java要类库来支持,其它的语言内置eval关键字.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。