Android 程序员 编程语言分类
- 分类方式
- Java
- Dart
- Erlang
- Kotlin
- Swift
- Object-C
- PHP
- JavaScript
- Ruby(动态)
- C/C++
- Python(动态)
- Groovy(动态)
- Scala(静态)
- Go(静态)
- Boo(静态)
- Golang
分类方式
- 动态语言(如:Ruby)
- 程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的,优点为方便阅读,清晰明了,缺点为不方便调试。
- 静态语言
- 静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#、java就是静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中.
需要明确说明一点,那就是,是不是动态类型语言与这门语言是不是类型安全的完全不相干的,不要将它们联系在一起!
- 编译型语言
程序在执行之前需要一个专门的编译
过程,把程序编译成 为机器语言
(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的)的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高
,依赖编译器
,跨平台性差些
。如C、C++、Delphi等.
由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统
、大型应用程序
、数据库
系统等时都采用它,像C/C++
、Pascal/Object Pascal(Delphi)等都是编译语言
- 解释性语言
编写的程序不进行预先编译
,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行
而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性
有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等
解释性语言,例如java语言,java程序首先通过编译器编译成class文件,如果在windows平台上运行,则通过windows平台上的java虚拟机(VM)进行解释。如果运行在linux平台上,则通过linux平台上的java虚拟机进行解释执行。所以说能跨平台,前提是平台上必须要有相匹配的java虚拟机。如果没有java虚拟机,则不能进行跨平台
Java
Dart
Dart 是一种真正的面向对象的语言,所以即使是函数也是对象
Dart 要比Java更有表现力,最重要的是Dart对函数式编程
支持要远强于Java(目前只停留在Lambda表达式
)
Dart 目前真正的不足是生态
Erlang
问世于1987年,Erlang是运行于虚拟机的解释性语言,常用开发工具:Sublime text
适合做什么?看看知乎的回答 What’apps的聊天服务器
Erlang最大的优势在于并发,以及并发系统的稳定性
Kotlin
Kotlin 是一种在 Java 虚拟机上运行的静态类型
编程语言,被称之为 Android 世界的Swift,由JetBrains
设计开发并开源
Kotlin特点:
-
简洁
: 大大减少样板代码的数量。 -
安全
: 避免空指针异常等整个类的错误。 -
互操作性
: 充分利用 JVM、Android 和浏览器的现有库。 -
工具友好
: 可用任何 Java IDE 或者使用命令行构建。
Android Studio 从 3.0
(preview)版本开始将内置安装 Kotlin 插件
Swift
Object-C
PHP
PHP一个慕课网学习链接:PHP入门篇
JavaScript
弱类型
脚本语言
JavaScript无疑是动态化支持
最好的脚本语言
Ruby(动态)
- 适合于快速开发,一般开发效率是JAVA的5倍
- 一种类似于 Python 和 Perl 的服务器端脚本语言
C/C++
C语言 之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言
C语言
是一门面向过程
、抽象化的通用程序设计语言(70年代出现的一门计算机语言
),广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译
、处理低级存储器
、仅产生少量的机器码
以及不需要任何运行环境
支持便能运行的编程语言
Python(动态)
是一种面向对象的解释型计算机程序设计语言。7月20日,IEEE发布2017年编程语言排行榜:Python高居首位
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。
Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine
学习Python极好的一个网站:中文,免费,零起点,完整示例,基于最新的Python 3版本
Python应用场景
- 网络爬虫在爬虫方面,python是独领风骚的。python有非常丰富的库去访问网页文档的接口api以及后期网页文档的快速处理
- 数据处理python作为一门工程性语言,对于数据处理的类库是相当丰富的,比如有高性能的科学计算类库NumPy和SciPy
- 人工智能,真正的人工智能的底层语言是C/C++,因为真正的计算全在于C/C++,而python仅仅是调用AI的接口然后去实现一些逻辑而已。但是为什么说人工智能首先python呢?这个其实是由于python作为“胶水语言”的特质才会显的出类拔萃,主要使用python是因为CPython和底层原因的融合使得开发起来更加方便
- 云计算,大名鼎鼎的云计算框架OpenStack就是python开发的
Groovy(动态)
- 是一种基于JVM(Java虚拟机)的敏捷开发语言
- 一种成熟的面向对象编程语言
- 既可以用于面向对象编程,又可以用作纯粹的脚本语言
- Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程)
Scala(静态)
- 一种多范式的编程语言
- 设计意图是要集成面向对象编程和函数式编程的各种特性
- Scala是一种纯面向对象的语言,每一个值都是对象
Go(静态)
Boo(静态)
Golang
Golang学习这种语言发展方向
- 区块链研发工程师
- Go服务器端/游戏软件工程师
- Golang分布式、云计算