【从计算机的发展角度理解编程语言】C、CPP、Java、Python,是偶然还是应时代的产物?

news2024/9/20 16:58:09

参考目录

  • 前言
  • 什么是"computer"?
  • 计算机的大致发展历程
    • 计算机系统结构阶段(1946~1981)
    • 计算机网络和视窗阶段(1982~2007)
    • 复杂信息系统阶段(2008~today)
    • 人工智能阶段
  • 越新的语言是越好的吗、越值得学习吗?

前言

在这里插入图片描述

  最近读了 《Python语言程序设计基础》 这本书,起初没读的时候我以为是草草介绍一些基本语法的一些入门书籍而已,的确,读过一章之后,我发现他的确是一本入门书籍,令我吃惊的是他第一部分把计算机和语言的应时代发展讲的很好,今天特地参考书籍结合自己理解来写一篇博客。

  我想读过本篇文章之后可以回答你以下问题:

  • 计算机的大体发展历程是如何的?
  • 为什么会出现C、CPP、Python等众多语言?为什么他们具备其各自的特点?
  • 作为学生,我们应该选择C\CPP?还是Java?Python?

这里仅仅是谈自己的一些观点,有处理不妥善之处还请谅解…


什么是"computer"?

“compuper”,人类最伟大的发明之一。这是这本书开始的一段话…这不是空穴来风的一句话,的确,计算机的发展在过去的百年里已经深深的改变了世界。

“computer”最初指的是从事计算工作的人,后来在20世纪中叶,计算机的崛起成为计算机的专有名词。
  实际上,计算机不仅仅指的是电子计算机,比如我们的笔记本电脑、台式电脑…更准确来说,计算机的概念指的是对数据按照指令集进行处理的设备。也就是说,计算机的概念可以拓展到光子计算机、生物计算机…而不仅仅局限于电子计算机,当然还是以电子计算机最为常见就是了。
在这里插入图片描述
我们知道,现代意义上的计算机大概出现在20世纪中叶。那计算机以不到百年的时间迅速改变世界,经历了一个大致什么阶段呢?

计算机的大致发展历程

计算机系统结构阶段(1946~1981)

  1946年,全球首台数字计算机ENIAC诞生,标志着计算机正式起步发展,拉开了计算机系统结构阶段的序幕。
在这里插入图片描述

  这个阶段的特点,就是计算机主要服务于军事、商业、科学等国家或团体;其次,这个阶段的计算机普遍算力一般(相对于现在计算机而言),即使是现在几百块钱的“山寨”手机也比百年前“超级计算机”强得多…。
  受制于计算机的算力不足,科学家们必须从系统结构层面尽可能的让仅有的算力完成尽可能多的工作。——因此,为了完成这一目的,高效而简洁的C语言诞生了C语言应时代要求,以高效的执行方式出色的完成了大大缓解了几十年前计算机算力低的问题,使计算机算力充分得到利用,大大促进了计算机的发展。
  实际上,更准确的说是时代选择了C语言,与C语言同年代的一并出道的编程语言并不在少数,然而由于各种原因以及语言自身的局限性并没有得到大范围推广或延续…
后来,随着计算机的不断发展,1981年,IBM PC为代表的个人计算机诞生,为科学家、军事服务的计算机时代结束,计算机技术进入面向大众的新的历史阶段。
在这里插入图片描述

计算机网络和视窗阶段(1982~2007)

  1982年,面向全球子网间组网的TCP/IP网络协议的标准化为个人计算机PC的进一步发展提供了条件,计算机发展进入“互联网”时代。
  四百年前,新航路的开辟、美洲发现把世界由孤立逐渐拉近距离,成为全球。五十年前,“互联网”的出现则使信息快速传递提供了条件,“地球村”时代来临。
  应互联网发展的需求,各种技术层出补充,围绕计算机,网络技术、视窗技术、多媒体技术发展,个人计算机逐渐取代军事、科学专用机成为时代主流。为了更好的造好计算机面向大众使用,微软、苹果这些富有时代先觉的企业率先成立互联网公司,为电脑制造商业化…促进了计算机的普及。随后,为了提升用户体验,视窗技术迅速被两家世界互联网公司(微软和苹果公司)发觉,制造出了“图形化界面”。大大降低了用户的电脑使用学习成本。那个时代的计算机更加趋向于“图形化”计算机革命。计算机的图形化不仅仅依赖于硬件,更需要软件编程的支持。因此需要更加抽象,允许高度可移植、跨平台在不同机型上跑的编程语言被迫切需要——CPP、JAVA语言应运而生。
  最初CPP为CPP之父——Bjarne Stroustrup所构建,后来更多人加入了CPP发展计划…作为高级语言面向对象的先驱语言,CPP有很多优点,支持面向对象支持模板…但是有些问题是必须有先驱语言来“踩坑”的,CPP也造出了很多语法上的大坑,比较经典的就是零星虚拟继承的问题,为了填补这些大坑和向前兼容性,CPP又额外引入了一些复杂语法作为填补。毫无疑问,这会使CPP语言学习难度倍增…
  以CPP为前车之鉴,JAVA吸取CPP优点,集众语言之长,避免了CPP中的许多大坑,JAVA作为新一代抽象面向对象的高级语言诞生…
后来,苹果公司为了打败竞争对手微软(当然不仅是为了这个),苹果公司小型化个人电脑,2007年,制造出了iPhone智能手机。标志着计算机发展进入移动网络应用时代。
在这里插入图片描述

复杂信息系统阶段(2008~today)

  前文提到,2007年苹果公司发布iPhone智能手机。微软也不甘示弱,迅速投入到移动设备,尤其是手机领域的研究。苹果公司是一家软件硬件兼备的公司,当然容易把PC计算机小型化做出智能手机,微软是主要致力于硬件生产的公司,为了应对苹果公司的挑战,微软自己本身不搞软件,因此就联合谷歌开源操作系统——安卓操作系统。2008年,安卓系统的开源,是复杂信息系统时代的来临的开端
在这里插入图片描述
  该阶段,毫无疑问是竞争异常激烈的阶段…各种手机端APP的编写发布…各种电脑端软件与手机端软件的融合…在这个阶段,是多种技术相互协调发展的阶段,很难有一个技术”独领风骚“,而是各种技术相互融合发展。移动互联网、多核众核、云计算…物联网、互联网+…以及互联网信息安全技术…人类会逐渐到达自己所能理解掌控的智慧边界…
  为了更快的、抽象的、易学的。面向更多人、更多领域、更多业务的编程——Python作为新一代简单抽象易学面向大众诞生(2008年,Python3.0发布,并且不兼容Python2.0)并持续发展…时至今日,Python在编程语言排行榜上已是稳居前三,甚至经常是第一…
  实际上,Python语言如此“火爆”,是因为各个领域都会用到一点…我感觉Python简直可能会是下一个时段的“WPS”。
  该阶段目前仍在继续,已经逐渐向下一个阶段“计算机人工智能”阶段方向发展。当前,我们现在的AI并没有做出划时代意义的举动…但不久后一定会到来。

人工智能阶段

  这是未来的事情了,在未来,几十年之后,“人工智能”阶段展开。这必随着深度学习、智能机器人、搜索引擎、量子计算技术的发展…计算机将结合智能技术为人类呈现更友好的交互方式,逐步接管人类非创造性工作。
在这里插入图片描述

越新的语言是越好的吗、越值得学习吗?

主流语言都值得好好学习。

然而,这并不意味着Python语言就是最好的编程语言…只是说一种发展趋势而已,即使是今天,像很多大型游戏,系统内核用的主要依旧是C/CPP,很多网站、购物平台则用的是Java,很多插件则更多偏向于Python…

简而言之,C、CPP、Java、Python成为主流语言且常年不衰,是经得时间和实践考验的,更是时代的选择


EOF

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2145620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux运维篇-服务器简介

目录 前言服务器分类(按服务器的机箱结构来划分)台式服务器机架式服务器刀片式服务器 外观部件内部结构前面板前面板组件前面板接口说明前面板指示灯和按钮前面板指示灯/按钮说明 后面板后面板组件后面板接口说明后面板指示灯后面板指示灯说明 主板和 iB…

C#|.net core 基础 - 值传递 vs 引用传递

不知道你在开发过程中有没有遇到过这样的困惑:这个变量怎么值被改?这个值怎么没变? 今天就来和大家分享可能导致这个问题的根本原因值传递 vs 引用传递。 在此之前我们先回顾两组基本概念: 值类型** vs 引用类型** **值类型&a…

适合金融行业的银行级别FTP替代升级方案

在数字化办公日益普及的今天,金融领域对数据传输的需求日益增长,场景也变得更加多样化和复杂。这不仅包括内部协作,还涉及金融服务、外部合作以及跨境数据流动等方面。因此,金融行业对数据传输系统的要求越来越高,传统…

LeetCode 算法笔记-第 04 章 基础算法篇

1.枚举 采用枚举算法解题的一般思路如下: 确定枚举对象、枚举范围和判断条件,并判断条件设立的正确性。一一枚举可能的情况,并验证是否是问题的解。考虑提高枚举算法的效率。 我们可以从下面几个方面考虑提高算法的效率: 抓住…

孙怡带你深度学习(3)--损失函数

文章目录 损失函数一、L1Loss损失函数1. 定义2. 优缺点3. 应用 二、NLLLoss损失函数1. 定义与原理2. 优点与注意3. 应用 三、MSELoss损失函数1. 定义与原理2. 优点与注意3. 应用 四、BCELoss损失函数1. 定义与原理2. 优点与注意3. 应用 五、CrossEntropyLoss损失函数1. 定义与原…

『 Linux 』HTTP(一)

文章目录 域名URLURLEncode和URLDecodeHTTP的请求HTTP的响应请求与响应的获取简单的Web服务器 域名 任何客户端在需要访问一个服务端时都需要一个IP和端口号,而当一个浏览器去访问一个网页时通常更多使用的是域名而不是IP:port的方式, www.baidu.com这是百度的域名; 实际上当浏…

数据结构和算法|排序算法系列(五)|排序总结(时间复杂度和是否稳定)

文章目录 选择排序冒泡排序插入排序快排归并排序堆排序 选择排序 一句话总结,开启一个循环,每轮从未排序区间选择****最小的元素,将其放到已排序区间的末尾。「未排序区间一般也放在后面,已排序区间放在前面」 选择排序 时间复…

2024蓝桥杯省B好题分析

题解来自洛谷,作为学习 目录 宝石组合 数字接龙 爬山 拔河 宝石组合 # [蓝桥杯 2024 省 B] 宝石组合## 题目描述在一个神秘的森林里,住着一个小精灵名叫小蓝。有一天,他偶然发现了一个隐藏在树洞里的宝藏,里面装满了闪烁着美…

Flutter Android Package调用python

操作步骤 一、创建一个Flutter Package 使用以下指令创建一个Flutter Package flutter create --templateplugin --platformsandroid,ios -a java flutter_package_python 二、修改android/build.gradle文件 在buildscript——>dependencies中添加以下内容 //导入Chaqu…

接口幂等性和并发安全的区别?

目录标题 幂等性并发安全总结 接口幂等性和并发安全是两个不同的概念,虽然它们在设计API时都很重要,但侧重点不同。 幂等性 定义:幂等性指的是无论对接口进行多少次相同的操作,结果都是一致的。例如,HTTP的PUT和DELE…

TON基金会与Curve Finance合作:推出基于TON的新型稳定币互换项目

2024年,TON基金会宣布与去中心化金融(DeFi)领域的知名协议Curve Finance建立战略合作,携手推出一个全新的基于TON区块链的稳定币交换项目。这一合作标志着TON生态系统在DeFi领域的进一步扩展,并将通过Curve Finance的核…

玖逸云黑系统源码 v1.3.0全解无后门 +搭建教程

功能带有卡密生成和添加黑名单等,反正功能也不是很多具体的自己看程序截图即可。 搭建教程 完成 1.我们先添加一个站点 2.PHP选择7.3 3.上传源码解压 4.导入数据库 5.配置数据库信息config.php 源码下载:https://download.csdn.net/download/m0_6…

Python包管理工具pip 入门

主要参考资料: 全面解析 python 包管理工具 pip: https://blog.csdn.net/maiya_yayaya/article/details/135341026 目录 pypi社区pip工具安装 piprequirements.txt 记录python包管理工具8.1 什么是 requirements.txt8.2 requirements.txt 格式8.3 示例8.4 pip 安装 …

鸿蒙手势交互(二:单一手势)

二、单一手势 有六种:点击手势(TapGesture)、长按手势(LongPressGesture)、拖动手势(PanGesture) 捏合手势(PinchGesture)、旋转手势(RotationGesture)、滑动手势(SwipeGesture) 点击手势(TapGesture) TapGesture(value?:{count?:number, fingers?:number}) /…

7.7opencv中(基于C++) 翻转图像

基本概念 在OpenCV中,翻转图像指的是沿着一个或多个轴翻转图像。OpenCV提供了一个函数 flip 来完成这个任务。这个函数可以沿着水平轴、垂直轴或者同时沿着水平和垂直轴翻转图像。 函数原型 void flip(InputArray src,OutputArray dst,int flipCode );参数说明 •…

vulnhub-prime1

目录 靶场环境解题过程 靶场环境 项目ip靶机(prime)未知攻击机(kali)10.128.129.128 解题过程 打开靶机,我们只能看见一个登录界面,上面只有半截提示 我们首先要做的是主机发现,因为是网络适…

使用 HFD 加快 Hugging Face 模型和数据集的下载

Hugging Face 提供了丰富的预训练模型和数据集,而且使用 Hugging Face 提供的 from_pretrained() 方法可以轻松加载它们,但是,模型和数据集文件通常体积庞大,用默认方法下载起来非常花时间。 本文将指导你如何使用 HFD&#xff08…

makefile 的语法(9):函数 file foreach

(57) 之前学了处理文本的函数,处理文件名的函数,现在学习读取文件的函数 file : (58)可以对文本中每一项进行函数处理的 foreach : (59) (60&…

路由原理介绍

定义与过程 定义:是指导IP报文发送的路径信息 过程: 检查数据包的目的地确定信息源发现可能的路径选择最佳路径验证和维护路由信息 路由来源 直连路由:不需配置,路由器配置IP后自动生效 静态路由:手动配置 ip r…

小商品市场配电系统安全用电解决方案

1.概述 随着市场经济的快速发展和人民生活水平的不断提高,全国各地相继建起了大批大型小商品批发市场,此类市场以其商品种类繁多、价格实惠、停车方便等特点吸引了大量的顾客,成为人们日常光顾的重要场所,地方便了广大人民群众的日常生活。 小商品市场集商品销售和短时货物储…