2012年,通用电气提出工业互联网概念,2013年,德国提出“工业4.0”战略,这两个概念都是为了智能制造提出,智能制造,需要智能,而我们要怎么实现智能?就需要用到计算机,而不仅仅是工业方面,像1980年提出的大数据(巨量资料),那如此庞大的数据,要怎么样去处理,去解决,也是需要计算机,那我们怎么样去和计算机交谈?每一种物种之间都流通着语言才能交谈,那计算机也一样,也需要一种语言才能和它交谈,那和计算机交谈的语言就叫计算机语言,计算机语言有很多,目前主流的有C/C++,JAVA,Python等,那今天我就以这三门语言展开,讲一些他们都优缺点,请大家根据需要去选择语言。
目录
C/C++
C语言是一门通用计算机编程语言,它广泛的运用于底层开发,底层是什么?我们可以把计算机看成一栋高楼,那最下面的东西就是底层,但是!计算机中的底层是就是硬件,或者是硬件和系统之间的那一块东西,而C语言就是这样一种和硬件或者和系统底层打交道的语言,这就决定了C语言他的运行效率相对较快,而且C语言是一种能以简易的方式编译、处理低级处理器、产生少量的机械码并且不需要配置运行环境就能进行编译的一种语言,尽管C语言提供了很多处理低级处理器的功能,但是它依旧可以保持良好的跨平台性,但是是不跨系统的,比如我在windows上面写的C语言,要用到liunx上,只能再去liunx在进行编译。
C语言是一种面向过程的语言,没有面向对象的功能,严格意义上来讲,不属于高级语言的范畴。
C语言本质上是一门函数语言,它是由一个一个的函数体组成,因为C语言提供的库函数能实现的功能有限,所以大部分时候需要我们自己去造轮子,自己去写一个函数,C++也一样,所以C/C++的程序员对自己程序的掌控力强,也知道自己的功能实现出的具体样子。
因为C语言接近底层,所以能够熟练使用C语言的程序员甚至可以知道变量在内存里面的一种状态,也因为接近底层,需要自己去造轮子,所以C语言的逻辑性要强于JAVA和Python。
在程序员中有一句话叫“C生万物”,这句话就表明了C语言在编程语言中的地位,事实也是如此,很多编程语言也是基于C语言上面开发的,所以学好C语言对学其他编程语言有很大帮助,很多高校也是从C语言开始教的,但是要学好C语言需要投入大量精力,包括去刷题提高自己的逻辑思维。
C++是一门对C语言的扩展,相对于C语言加了面向对象的功能,但是对于硬件开发是不如C语言的,C++可以进行C语言的过程化程序设计,也可以进行抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
因为C++和C语言一样,他运行效率高,做到的东西也更加精细,也是因为这些特点,所以C++广泛运用在游戏引擎,比如Epic的ue系列,就是用C++进行编写。
JAVA
Java是一种功能强大、简单易用的语言,它具有简单性、面向对象、分布式等特点,广泛的运用于桌面应用开发,、wed应用程序、分布式系统等。
Java很像C++,但是它又把C++中很多特征去掉了,比如goto语句、指针等,在Java中,它去掉了C++的操作符过载和多继承特征,并且不使用主文件,免去了预处理程序,在Java中没有结构,数组在Java中是对象,所以就不需要指针,Java拥有自己处理对象引用和间接引用的功能,可以让程序员更好的把重心放在研发中。
Java和C/C++最大的区别在于,C\C++在意的是算法,就是我们的逻辑,而Java本身的库足够强大,想实现什么东西可以直接调用,直接导包就可以,C\C++的算法逻辑是很重要的,Java则不同,所以Java程序员对自己编写程序的掌控力不如C\C++程序员。
Java相比较C\C++来说,安全性高,因为Java本身的储存分配模型的原因,因为Java没有指针,所以作为Java的程序员不能去指向存储器的,更重要的是Java编译程序不处理存储的安排决策,所以Java的程序员不能通过声明去猜测类在运行时候实际的存储位置,再者,Java的运行系统使用字节码验证过程保证装载到网络上的代码不违背Java的语法和语言限制,所以Java写出的程序安全性要高于C\C++.
Java的跨系统可移植性要高于C,可以实现跨系统的移植,这些归功于Java自己的虚拟系统(JVM),但相比较两者,C\C++的运行效率要远高于Java,Java学起来相比较C\C++也容易很多。
python
python是一门特别简单容易上手的语言,它是一种广泛使用的解释性语言,它具有面向对象的功能,但是只能进行简单的面向对象编程,python的语法和动态类型以及它本身就是一门解释性语言,使得python成为很多平台上写脚本和开发一些简单应用的编程语言,但是python的缺点也很明显,比如python的运行速度慢,且运行效率不高,导致python做不了一些“精细活”,目前python广泛的应用与人工智能,自动驾驶等领域。
如何选择?
语言本身没有好坏,而选择语言也取决与每个人想要做的事情,比如我想开发游戏引擎,想开发游戏,就学C\C++,又比如他想去做wed开发,想做桌面应用,就可以去学Java,每种语言都有自己独特的风格,大家喜欢什么,想做什么,可以结合上面说的优缺点去选择,大家要记住语言只是工具,不要让工具去束缚自己,我们要做的是熟练的使用工具,不是让工具去奴役我们。