当前位置: 首页 > news >正文

从程序员的角度看人类通信史

有没有一种可能:人类将来能用意念进行通信?

大家好,我是可乐。

相信大家看过的一些玄幻小说,都有这样一种场景:两个修仙人物相隔千里,都能通过意念传音进行沟通。

这比当前人类最快的通信方式都要快,不知道人类将来能不能实现用这种方式通信的梦想。

话说回来,人类社会的发展过程中,通信的速度和质量要求也是越来越高,接下来我从程序员的角度,来给大家科普下人类的通信发展史。

1、肢体语言

最开始的人类,没有文字,没有语言,大家通过肢体动作表达一些信息。

有了语言文字以后,便可以通过语言进行通信,但是我们知道声音传播是有距离的,如果人与人之间相隔太远了,说话对方就听不到了,那该怎么办呢?

2、烽火台

烽火戏诸侯的故事相信大家都听过,周幽王为博褒姒(bāo sì)一笑,点燃了烽火台,戏弄了诸侯。

烽火本是古代敌寇侵犯时的紧急军事报警信号。由国都到边镇要塞,沿途都遍设烽火台。西周为了防备犬戎的侵扰,修建了很多烽火台。一旦犬戎进袭,首先发现的哨兵立刻在台上点燃烽火,邻近烽火台也相继点火,向附近的诸侯报警。诸侯见了烽火,知道京城告急,便起兵勤王。

烽火浓烟很显然要比声音传播的距离远,但是它传播的信息有限,只能有两种信息,点燃烽火是一种,不点燃是一种。再想传播更多的信息就不行了。

可以类比计算机中的单个bit,只能有0或者1两种状态。

3、飞鸽传书

转眼到了隋唐时期,飞鸽传书出现了,利用鸽子的回巢性,只需要将书信绑在鸽子腿上就可以进行通信了。

但是缺点也很明显,鸽子中途走丢,书信容易损毁等等不可控原因太多了,而且还很容易被人掉包。

4、驿站

为了解决飞鸽传书的缺点,驿站出现了,类似现在的快递邮局,每个城市都建立一座驿站,送信人骑马从一个驿站送到下一个驿站,依次接力。

那时有陆路驿站、水路驿站和水陆兼办三种驿站传递方式,最快时的驿马一天能跑300多里路。这种制度直到清代中期才被近代的邮政所代替。

这种方式也有个缺点:废人废马。

5、摩尔斯电报

终于在 1844 年迎来了人类“信息时代”这一历史时刻。

1844 年5月24日,美国科学家塞约尔·莫尔斯应用自制的电磁式电报机,通过65公里长的电报线路,成功地传送了圣经上的一句话“ What hath God wrought!” 。

电报机本质上就是一个“蜂鸣器 + 长长的电线 + 按钮开关”。蜂鸣器装在接收方手里,开关留在发送方手里。双方用长长的电线连在一起。当按钮开关按下的时候,电线的电路接通了,蜂鸣器就会响。短促地按下,就是一个短促的点信号;按的时间稍微长一些,就是一个稍长的划信号。

这就对应了摩斯电码。

莫斯电码由短促的点信号dot(.)和(相当于3个点信号的时间长度)划dash(-)这两种信号所组成的。

然后通过不同的排列组合成我们所知的字符。

至此,人类可以远距离相对快速的进行通信了,但我们还是不满足,电报机由莫斯电码翻译成字符需要时间,而且不能随时随地进行远距离通信。

6、电话

电话是 1876 年贝尔发明的,原理如下,非专业的大家了解下就行:

1、当发话者拿起电话机对着送话器讲话时,声带的振动激励空气振动,形成声波。

2、声波作用于送话器上,使之产生电流,称为话音电流。

3、话音电流沿着线路传送到对方电话机的受话器内。

4、而受话器作用与送话器刚好相反把电流转化为声波,通过空气传至人的耳朵中。

7、总结

从原始人的肢体语言,到商周的烽火台,再到隋唐的飞鸽传书,驿站,再到近代的电报通信,以及现在的电话。

人类通信史上历经了一个又一个的里程碑,谁又知道下一个人类通信史的里程碑是啥?

或许修仙科幻小说的意念(脑电波)通信将成为现实?

作为能改变世界的程序员,我相信下一个通信里程碑一定有程序员的身影!!!

相关文章:

  • OpenCV之识别银行卡号
  • 回归-线性回归算法(房价预测项目)
  • 【一起学数据结构与算法】Java实现双链表
  • Spring Boot集成阿里云视频点播服务的过程记录
  • SpringBoot社区居民联系方式管理系统(附源码)
  • [ccc3.0][数字钥匙] UWB配置和使用(二)
  • MongoDB(一)
  • C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序
  • MySql主从同步
  • java基于springboot+Vue+nodejs的高校运动会报名管理系统 element
  • 单链表❀数据结构
  • Linux——孤儿进程|进程的优先级 用top命令去修改优先级 其他概念 环境变量 PATH 获取环境变量
  • Linux系统编程-网络基础(四)-协议03:数据包封装【以太网(Mac)帧:最大值1500字节称为以太网的MTU(最大传输单元),不包括帧报头长度】
  • 一次诡异的numpy数组越界访问
  • cmd炫技小方法
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • angular组件开发
  • CSS魔法堂:Absolute Positioning就这个样
  • docker容器内的网络抓包
  • HashMap剖析之内部结构
  • Java-详解HashMap
  • JS 面试题总结
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Lsb图片隐写
  • mysql外键的使用
  • PHP那些事儿
  • Rancher如何对接Ceph-RBD块存储
  • React+TypeScript入门
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 构建二叉树进行数值数组的去重及优化
  • 基于组件的设计工作流与界面抽象
  • 来,膜拜下android roadmap,强大的执行力
  • 每天一个设计模式之命令模式
  • 前端存储 - localStorage
  • 如何在GitHub上创建个人博客
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​io --- 处理流的核心工具​
  • # include “ “ 和 # include < >两者的区别
  • #stm32整理(一)flash读写
  • #Z2294. 打印树的直径
  • $NOIp2018$劝退记
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (AngularJS)Angular 控制器之间通信初探
  • (二)c52学习之旅-简单了解单片机
  • (九)c52学习之旅-定时器
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .bat批处理(一):@echo off
  • .Net 4.0并行库实用性演练
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .Net7 环境安装配置
  • .net操作Excel出错解决
  • .NET成年了,然后呢?
  • .net下的富文本编辑器FCKeditor的配置方法
  • .sh