转载自知乎 柠檬学院李伟

C:操作系统、嵌入式、驱动开发

C:图形图像、科研、通信、桌面软件、游戏、游戏服务器

C#:Windows桌面软件、.NET Web、服务器

Java: Java SE:跨平台的桌面应用,Android;Java EE:企业级应用,web开发、服务器后端;Java ME:手机应用、流行于非智能机时代;Java Android:用于安卓开发应用

2019年 Java零基础权威入学宝典

Java架构师/微服务/分布式/高并发/性能优化/源码解析-学习视频

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、易语言等都是高级语言,相对于低级语言来说,高级语言采用易于识别和记忆的字符来作为关键字,也更接近人类的思维方式,编写容易读写性好,开发效率更高。

a=a b 的表达方式:

int a;
int b;
a=a b;

重点是,高级语言是可移植的,做少量修改甚至无需修改,即可将代码运行在不同平台的计算机上。

  • 低级语言(包括机器语言和汇编语言) :

机器语言:

计算机硬件只能识别“断开”和“闭合”两种物理状态,也就是0和1。使用机器指令效率最高,因为无需对指令进行翻译。但是机器语言对人类不友好,一大串0和1,很难识别和记忆,且容易出错。

但是对于机器来说,秒懂。

汇编语言:

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

汇编语言采用人类容易记忆和识别的助记符来代表一些0和1的指令,比如AND代表加法。

a=a b 的表达方式:

MOV AX,2
MOV BX,3
ADD AX,BX

越是低级的语言对机器越是友好,越是符合机器的思考方式,因此执行效率高。
越是高级的语言对人类越是友好,越是符合人类的思考方式,因此开发效率高。

2、编译型语言和解释型语言(相对于高级语言而言)。

高级语言的可移植性是基于编译或者解释这个过程,对人类友好的高级语言只有经过处理才能被操作系统识别并加载到计算机硬件上最终执行。

高级语言的编译解释都是面向操作系统而言,并非面对计算机硬件。

编译型语言

编译就是把一个事先编好的叫做“编译程序”的机器语言程序安装在计算机内,当需要执行高级语言程序时,编译程序就把整个“高级语言的源程序”翻译成“机器语言的目标程序”。

解释型语言

高级语言进入计算机后,解释程序一边扫描一边解释,逐句输入逐句翻译,计算机一行一行执行,并不产生目标程序。

比如JAVA就是一种解释型高级语言。

3、强类型语言(静态态语言)和弱类型语言(动态语言)

强类型语言(静态语言):是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须生命数据类型。比如Java、C、C 、C#等。

String s="hello";    //String 类型的变量
boolean b=true;    //boolean 类型的变量
int i=0;    //int 类型的变量

弱类型语言(动态语言):是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。比如Php、Asp、JavaScript、Python、Perl等等。

var s ="hello";
var i = 0;
var b = true;

弱类型语言是数据类型可以被忽略的语言。它与强类型语言相反,一个变量可以赋不同数据类型的值。一个变量的类型是由其上下文决定的,效率更高。
强类型语言是必须强制确定数据类型的语言,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这种数据类型。一个变量的类型是申明的时候就已经确定的,更安全。
静态语言由于强制声明数据类型,让开发工具(IDE)对代码有很强的判断能力,在实现复杂的业务逻辑和开发大型商业系统、以及那些声明周期很长的应用中,开发者可以依托强大的IDE来更高效、更安全地开发。
动态语言思维不受约束,可以任意发挥,把更多的精力放在产品本身上;集中思考业务逻辑实现,思考过程就是实现过程。

夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!