·计算机已经成为人大脑的延伸

计算机已经成为我们这个时代的核心设备,每时每刻都需要它。计算机也不再是大家以前印象中的台式机、服务器,已经演变成了我们身边随处可见的物体。比如:手机、平板电脑、笔记本,以及很多人没意识到,但实际上设备内部包含“计算机”的设备。比如:电视机、微波炉、汽车,甚至小孩玩的智能小机器人等。
可以这么说,计算机已经成为了人类身体的延伸、大脑的延伸,成为不可或缺的一部分。
未来,计算机将真的进入人体、进入大脑,真正成为人体的一部分。比如,在科幻电影《黑客帝国》中,主角被超级针头插在颈部后方,便能使他快速学习,改变大脑神经网络,几秒就成为功夫高手,如图 1-1 所示。

算法是计算机的灵魂,编程语言是塑造计算机灵魂的工具

计算机是如何工作的?对于普通人来说,这很神秘。让计算机具备“灵魂”,可以按照人的意志运行,甚至某天按照计算机自己的意志运行(如果这一天实现,科幻电影《终结者》中的场景也会成为人类社会的可能选项),其核心就是“算法”。 “算法就是计算机的灵魂”算法的实现又依赖于“计算机编程语言”。
计算机编程语言的发展,是随着计算机本身硬件发展而发展的。硬件速度越快、体积越小、成本越低,应用到人类社会的场景就会越多,那么所需要的算法就会越复杂,也就要求计算机编程语言越高级。
最初重达几十吨但一秒只能运算 5000 次的 ENIAC(世界上第一台计算机),只能做非常小的应用,比如:某些情况的弹道计算。现在任何一个人的手机运算能力都可以秒杀那个年代地球上所有计算机运算能力的总和。
计算机编程语言的发展历经了从低级到高级发展。发展的核心思想就是“让人更容易编程”。越容易使用的语言,就有越多人使用;越多人使用,就有越多协作;越多协作,就可以创造越复杂的物体;现代社会,一个软件动辄几十人协作、几百人协作、甚至几千人协作也成为可能,这自然就为开发复杂软件提供了“人力基础”。这是一个人类普遍的社会现象,越容易使用的工具,通过使用数量,通过大量人的协作,彻底改变某个行业甚至人类社会。

计算机语言经历了三代:第一代是机器语言,第二代是汇编语言,第三代是高级语言。

·第一代语言:机器语言(相当于人类的原始阶段)

机器语言由数字组成所有指令。当让你使用数字编程,写几百个数字、甚至几千个数字,每天面对的是纯数字,我大胆预测:“程序员群体 100%会有精神问题”。
机器语言通常由数字串组成(最终被简化成 01),对于人类来说,机器语言过于繁琐。
使用机器语言,人类无法编出复杂的程序。如下为一段典型的机器码:
1. 0000,0000,000000010000 代表 LOAD A, 16
2. 0000,0001,000000000001 代表 LOAD B, 1
3. 0001,0001,000000010000 代表 STORE B, 16

·第二代语言:汇编语言(相当于人类的手工业阶段)

为了编程的方便,以及解决更加复杂的问题。程序员开始改进机器语言,使用英文缩写的助记符来表示基本的计算机操作。这些助记符构成了汇编语言的基础。如下是一些常见的汇编语言助记符(单词)比如:LOAD、MOVE 之类,这样人更容易使用了。识别几百、几千个单词,感觉要比几百几千个数字,美妙多了。汇编语言相当于人类的手工业社会,需要技术极其娴熟的工匠,但是开发效率也非常低。
汇编语言虽然能编写高效率的程序,但是学习和使用都不是易事,并且很难调试。另一个复杂的问题,汇编语言以及早期的计算机语言(Basic、Fortran 等)没有考虑结构化设计原则,而是使用 goto 语句来作为程序流程控制的主要方法。这样做的后果是:一大堆混乱的调转语句使得程序几乎不可能被读懂。对于那个时代的程序员,能读懂上个月自己写的代码都成为一种挑战。
汇编语言仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等。

·第三代:高级语言(相当于人类的工业阶段)

对于简单的任务,汇编语言可以胜任。但是随着计算机的发展,渗透到了工作生活的更多的方面,一些复杂的任务出现了,汇编语言就显得力不从心(应该说是程序员使用汇编语言解决复杂问题出现了瓶颈)。于是,出现了高级语言。像我们熟知的 C、C++、Java 等等都是高级语言。
高级语言允许程序员使用接近日常英语的指令来编写程序。例如,实现一个简单的任务:A+B=C , 使用机器语言、汇编语言和高级语言的的实现如下图 1-2 所示.

从上面这个简单的加法计算,可以看出越到高级语言,越接近人的思维,人使用起来就越方便。

高级语言的出现,尤其是面向对象语言的出现,相当于人类的工业社会,高级语言极其易用,编程门槛和难度大大降低,大量的人员进入软件开发行业,为软件爆发性的增长提供了充足的人力资源。目前以及可预见的将来,计算机语言仍然处于“第三代高级语言”阶段。

·为什么担心软件开发人才饱和是多余的?

很多未进入或刚进入软件行业的朋友,特别担心一个问题“这么多人学,会不会饱和?”。
这其实是杞人忧天,越多人编程,才能为软件行业提供巨量的人力资源,才能实现我们以前都不敢想的应用开发。要以发展的眼光看问题,而不是静态的眼光。
越多人编程,越多应用需要做,越多应用需要做,更需要越多人编程。这就像一个农夫刚刚进入工业社会,担心服装工厂工人招满了怎么办? 他没有想到工业发展后,钢铁厂也需要工人、汽车厂也需要工人。年轻朋友请记住“软件行业发展永无止境,将会整合人类现有所有行业,也会创造很多新的行业”。

·未来30 年必将是软件人才的世界

未来30 年的世界必将是软件人才的世界;除了普通软件的应用,大批的人工智能应用也将出现;未来自动驾驶、自动翻译、机器人保姆甚至机器人女友都会进入我们的生活,甚至计算机编程和基因工程结合,长生不老都能实现;有兴趣的童鞋,推荐大家看《未来简史》
这本书,把握一下未来的脉搏。

请发挥我们年轻人的想象力,尽情的在 IT 的世界中挥洒吧!

1.1 计算机语言发展史以及未来方向相关推荐

  1. 计算机语言发展及未来方向

    计算机已经成为人大脑的延伸...... 计算机已经成为我们这个时代的核心设备,每时每刻都需要它.计算机也不再是大家以前印象中的台式机.服务器,已经演变成了我们身边随处可见的物体.比如:手机.平板电脑. ...

  2. 计算机语言未来方向,计算机语言发展及未来方向

    计算机已经成为人大脑的延伸...... 计算机已经成为我们这个时代的核心设备,每时每刻都需要它.计算机也不再是大家以前印象中的台式机.服务器,已经演变成了我们身边随处可见的物体.比如:手机.平板电脑. ...

  3. 未来计算机语言的发展趋势,编程语言的发展趋势及未来方向 I

    编程语言的发展趋势及未来方向(1):历史回顾及趋势概述 这是Anders Hejlsberg(不用介绍这是谁了吧)在比利时TechDays 2010所做的开场演讲.由于最近我在博客上关于语言的讨论比较 ...

  4. 第二天学习:DOS命令与计算机语言发展史

    第二天学习:DOS命令与计算机语言发展史 1.DOS(Disk Operating System)命令 (1)概念 DOS是英文Disk Operating System的缩写,意思是"磁盘 ...

  5. Interview:算法岗位面试—10.25早上—上海某电公司算法岗位(偏图像算法,国企)技术面试之比赛历程、项目收获(Pytorch和Tensorflow)、未来方向

    Interview:算法岗位面试-10.25早上-上海某电公司算法岗位(偏图像算法,国企)技术面试之比赛历程.项目收获(Pytorch和Tensorflow).未来方向 导读:10.25早上一位博士技 ...

  6. 功能性农业未来方向-农业大健康·徐春晖:农业品牌市场规范

    功能性农业未来方向-农业大健康·徐春晖:农业品牌市场规范 (中国乡村之声<三农中国>中国乡村之声特约评论员徐春晖)新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 国 ...

  7. 深度强化学习探索算法最新综述,近200篇文献揭示挑战和未来方向

    ©作者 | 杨天培.汤宏垚等 来源 | 机器之心 强化学习是在与环境交互过程中不断学习的,⽽交互中获得的数据质量很⼤程度上决定了智能体能够学习到的策略的⽔平.因此,如何引导智能体探索成为强化学习领域研 ...

  8. 综述:编程语言的发展趋势及未来方向

    程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民.国内的计算机教育和工程培训,似乎一直在宣传"语言不重要,重要的是思想","语言一通百通" ...

  9. 教你一招看清编程语言的发展趋势及未来方向

    程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民.国内的计算机教育和工程培训,似乎一直在宣传"语言不重要,重要的是思想","语言一通百通" ...

最新文章

  1. Google Instant 瞬时搜索上手指南
  2. ClickHouse系列教程六:源码分析之Debug编译运行
  3. C++ error LNK2019: 无法解析的外部符号 错误解决方案
  4. Python 实现一个全面的单链表
  5. 结构之美——优先队列基本结构(四)——二叉堆、d堆、左式堆
  6. java calendar字符串显示_Java获取当前时间年月日、时间格式化打印、字符串转日期...
  7. three.js glb 多个_25万的预算,奔驰GLB、宝马X1、奥迪Q3该怎么选
  8. BZOJ 4070 [Apio2015]雅加达的摩天楼 ——分块 SPFA
  9. 如何用c语言实现贪吃蛇登录界面,c语言贪吃蛇UI界面版.docx
  10. Oracle索引或这类索引的分区处于不可用状态 查询
  11. vux 混合式开发
  12. 搜狐视频app如何设置仅自己可看我的关注列表
  13. 【less-11】基于SQLI的POST字符型SQL注入
  14. 2014蓝桥杯:李白打酒;奇怪的分式(枚举,最大公约数)
  15. Web专家周末聚会都会说点啥
  16. MacOS如何修复磁盘权限
  17. 163editor 网页编辑器 获值
  18. rs232与db9接线方式
  19. Easyui之datagrid修改
  20. 数据结构之有效的括号

热门文章

  1. 【JZOJ2109】清兵线【dp】
  2. pure-specifier on function-definition
  3. 计算机没有休眠睡眠状态,电脑没有睡眠模式_电脑怎么没有睡眠模式
  4. 长期坐着不动会得什么病?
  5. Vmware Esxi宿主机及虚拟机网络配置
  6. 初始化mysql5.7.18_MySQL5.7.18,初始化完成登录,提示密码过
  7. 未来避难所:漂浮的诺亚方舟宾馆可抵御洪流
  8. linux中的execl函数使用
  9. 不用PS,也能实现抠图的工具
  10. 我从外包公司离职了(一定要看 防坑指南)!