我们应该怎么和计算机进行交流?

简介: 浅谈目前主流计算机语言C/C++、Java、python的优缺点

2012年,通用电气提出工业互联网概念,2013年,德国提出“工业4.0”战略,这两个概念都是为了智能制造提出,智能制造,需要智能,而我们要怎么实现智能?就需要用到计算机,而不仅仅是工业方面,像1980年提出的大数据(巨量资料),那如此庞大的数据,要怎么样去处理,去解决,也是需要计算机,那我们怎么样去和计算机交谈?每一种物种之间都流通着语言才能交谈,那计算机也一样,也需要一种语言才能和它交谈,那和计算机交谈的语言就叫计算机语言,计算机语言有很多,目前主流的有C/C++,JAVA,Python等,那今天我就以这三门语言展开,讲一些他们都优缺点,请大家根据需要去选择语言。


目录

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,每种语言都有自己独特的风格,大家喜欢什么,想做什么,可以结合上面说的优缺点去选择,大家要记住语言只是工具,不要让工具去束缚自己,我们要做的是熟练的使用工具,不是让工具去奴役我们。

相关文章
|
10月前
|
机器学习/深度学习 人工智能 测试技术
MoBA:LLM长文本救星!月之暗面开源新一代注意力机制:处理1000万token能快16倍,已在Kimi上进行验证
MoBA 是一种新型注意力机制,通过块稀疏注意力和无参数门控机制,显著提升大型语言模型在长上下文任务中的效率。
576 3
|
12月前
|
人工智能 自然语言处理 搜索推荐
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
Open Notebook 是一款开源的 AI 笔记工具,支持多格式笔记管理,并能自动将笔记转换为博客或播客,适用于学术研究、教育、企业知识管理等多个场景。
937 0
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
|
机器学习/深度学习 算法 调度
拓扑排序解析:计算机与数学的交汇点以及C++ 实现
拓扑排序解析:计算机与数学的交汇点以及C++ 实现
387 0
|
前端开发 Java 关系型数据库
xxl-job 登入功能集成 OIDC 统一认证
xxl-job 是一款 java 开发的、开源的分布式任务调度系统,自带了登录认证功能,不支持对接、扩展 LDAP 、OIDC 等标准认证系统,考虑到单独维护 xxl-job 自有的用户系统不方便,以及存在人员离职、调岗、权限变动等需要及时调整用户权限的情况,需要接入公司统一的 OIDC 认证系统
2156 0
|
人工智能
ChatGPT 常见错误原因及解决方案:报错、回答不完整等
最近,由人工智能实验室 OpenAI 发布的对话式大型语言模型 ChatGPT 火得一塌糊涂。它可以与人类轻松地对话,无论是多么奇葩的问题 ChatGPT 都不在话下。在体验 ChatGPT 的同时我们也会遇到各种各样的问题,这里我总结了其对话过程中可能会发生的错误以及如何去解决它们。
215585 5
ChatGPT 常见错误原因及解决方案:报错、回答不完整等
|
前端开发 容器
CSS实现三列布局(左右固定宽度,中间自适应)
CSS实现三列布局(左右固定宽度,中间自适应)
|
开发工具 git
【笔记】十分钟学会正确的github工作流,和开源作者们使用同一套流程
【笔记】十分钟学会正确的github工作流,和开源作者们使用同一套流程
493 11
|
存储 程序员 编译器
|
存储 前端开发 JavaScript
优化前端性能:提升网页加载速度的五种技巧
在当今互联网时代,网页加载速度是用户体验的关键因素之一。本文将介绍五种有效的技巧,帮助前端开发人员优化网页加载速度,提升用户体验。
C#DateTime时间转换方法大全
C#DateTime时间转换方法大全
743 0