常用编程语言汇总及其用途
C:操作系统、嵌入式、驱动开发
C++:图形图像、科研、通信、桌面软件、游戏、游戏服务器
C#:Windows桌面软件、.NET Web、服务器
Java: Java SE:跨平台的桌面应用,Android;Java EE:企业级应用,web开发、服务器后端;Java ME:手机应用、流行于非智能机时代;Java Android:用于安卓开发应用
GO:高性能服务器应用,比较年轻
Erlang:高并发服务器应用,多用于游戏
Python:Web、科学计算、运维
Ruby:web
Perl:运维、文本处理,用的较少
Lisp:科研,一种逻辑语言,用于人工智能
Node:一个JavaScript运行环境(runtime)
Haskell:Haskell是一种标准化的、通用纯函数编程语言,数学逻辑方面
Scala:一种类似Java的编程语言,集成面向对象编程和函数式编程的各种特性
Javascript:前端,在node中可以做后端
HTML/CSS:标记语言,主要是给前端工程师构建页面使用
编程语言的分类
1、高级语言和低级语言:
高级语言: C、C++、Java、Python、Pascal、Lisp、Prolog、FoxPro、易语言等都是高级语言,相对于低级语言来说,高级语言采用易于识别和记忆的字符来作为关键字,也更接近人类的思维方式,编写容易读写性好,开发效率更高。重点是,高级语言是可移植的,做少量修改甚至无需修改,即可将代码运行在不同平台的计算机上。
低级语言(包括机器语言和汇编语言) :
机器语言:
计算机硬件只能识别“断开”和“闭合”两种物理状态,也就是0和1。使用机器指令效率最高,因为无需对指令进行翻译。但是机器语言对人类不友好,一大串0和1,很难识别和记忆,且容易出错。
但是对于机器来说,秒懂。
汇编语言:
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
汇编语言采用人类容易记忆和识别的助记符来代表一些0和1的指令,比如AND代表加法。
越是低级的语言对机器越是友好,越是符合机器的思考方式,因此执行效率高。
越是高级的语言对人类越是友好,越是符合人类的思考方式,因此开发效率高。
2、编译型语言和解释型语言(相对于高级语言而言)。
高级语言的可移植性是基于编译或者解释这个过程,对人类友好的高级语言只有经过处理才能被操作系统识别并加载到计算机硬件上最终执行。
高级语言的编译和解释都是面向操作系统而言,并非面对计算机硬件。
编译型语言
编译就是把一个事先编好的叫做“编译程序”的机器语言程序安装在计算机内,当需要执行高级语言程序时,编译程序就把整个“高级语言的源程序”翻译成“机器语言的目标程序”。
解释型语言
高级语言进入计算机后,解释程序一边扫描一边解释,逐句输入逐句翻译,计算机一行一行执行,并不产生目标程序。
3、强类型语言(静态语言)和弱类型语言(动态语言)
强类型语言(静态语言):是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须声明数据类型。比如Java、C、C++、C#等。
弱类型语言(动态语言):是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。比如Php、Asp、JavaScript、Python、Perl等等。
弱类型语言是数据类型可以被忽略的语言。它与强类型语言相反,一个变量可以赋不同数据类型的值。一个变量的类型是由其上下文决定的,效率更高。
强类型语言是必须强制确定数据类型的语言,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这种数据类型。一个变量的类型是申明的时候就已经确定的,更安全。
静态语言由于强制声明数据类型,让开发工具(IDE)对代码有很强的判断能力,在实现复杂的业务逻辑和开发大型商业系统、以及那些声明周期很长的应用中,开发者可以依托强大的IDE来更高效、更安全地开发。
动态语言思维不受约束,可以任意发挥,把更多的精力放在产品本身上;集中思考业务逻辑实现,思考过程就是实现过程。