声明:本系列文章毫无技术含量,高手勿喷,低手勿嫌。就是40岁的老程序员,闲来无事想写点东西,跟同行交流,但凡文中能有一句话对你有所帮助,足矣。没写过文章,可能文章没啥条理性,想到哪儿就写到哪儿。后面动手实践的时候,我也是更多的都是视频直接操作和干货。
其实学习编程并不难,也不一定非要是计算机专业出身,很多初中生,高中生稍加练习,都可以很容易地掌握一门或者多门编程语言。一旦掌握了一两门主流的编程语言以后,其实再学习一门新的编程语言就变得非常简单了。以下我会从几个方面对编程语言进行一个梳理,方便后面的课程,进行实际编程的时候更容易理解。
一,编程语言的分类:
编程语言的分类有很多个角度,主要的分类方法就大概有这么几种:
1,编译型和解释型(脚本语言):
编译型语言代表就是c\c++,还有现在流行的go和rust。编译性语言指的编程语言直接编译成操作系统可以加载执行的二进制文件,也就是俗称的exe程序,linux下一般是没有后缀名的。
解释型语言就是常用的各种脚本语言,python,php,perl,asp,javascript,vbscript等,这类语言需要一个解释器来边解释边执行,造成的直接影响就是执行速度会慢,当然各种语言也都有类似的预编译和缓存机制来提高执行速度。
还有一种介于两者之间的像java和.net这种典型的基于虚机运行的语言,也需要编译,但是编译出来的是运行在虚机里的字节码,而不是直接被操作系统识别执行。这种方式带来的一个最大的好处就是跨平台,字节码是虚机来执行,所以从windows上编译的程序直接到linux上或者其他的os上也同样能运行,基本上只要虚机的版本一直,执行结果是不会有偏差的。
2,虚机运行和native:
虚机运行上面已经说过了,natvie其实上面也说过了,就是编译型语言编译处理的操作系统能直接运行的二进制的程序。
3,动态语言和静态语言:
前面两个角度说的都是跟运行原理有关系的,而这个分类角度是跟编程语言的语法有关系的,我用我自己理解的直白的语言来说一下,动态语言就是声明变量的类型是可以变的,是动的,类的方法,属性也是动态可变的。静态语言也就好理解了,变量的类型和属性方法都不可以变。再多说一句从语法的角度上还有其他的一些小的分法,面向对象的和面向过程的,代码风格类C语言的或者类Basic的,这种就不过多解释了,后面实际编程的时候会边用边说的。