人类第一个可编程的产品,居然是1801年的一台织布机!

图片
图片
估计老差友们都知道,“ 纸带 ” 这个词儿在差评不是什么褒义词。
做新媒体,最重要的是啥?当然是消息灵通啊!只有能拿出一手消息的人才会赢得大家的尊重,这是心照不宣的对局。被大家冠以“ 纸带 ” 的人,在差评是没有地位的。
图片
可能这时候,有些差友会奇怪,为啥 “ 纸带 ” 成了我们评价一个人是不是消息闭塞的代名词了呢?
这事儿还得从 1801 年说起。。。
那时候工业革命初兴,机器浪潮席卷欧洲大陆,人们总是在想办法让生产效率提高。
图片
为了能让纺织机器能够自动编制出复杂花纹的图案,法国发明家Joseph-Marie Jacquard 在 1799 年发明出了雅卡尔织布机,这种机器能通过判断卡片上是否有孔洞来操纵线团的高低位置。
图片
只要根据图案设计好每条线的走线,做好对应的打孔,纸卡连成长条,形成连续指令,便能不用人工调整不同颜色的线团的走线了。
此机器一经推出,立刻风靡欧洲,极大提高了生产力水平。可以说,它是人类最早的可编程系统。
再之后,纸带再次大放光彩,就是有电子计算机之后的事情了。
图片
大家都知道,计算机运行时使用的是二进制。纸带上如果有孔,可以对应二进制的 1,若没有孔,则对应二进制的 0。
所以,人们把编写好的程序制作成相应的纸带,通过读纸带机来将相应的 0|1 码传达给计算机,这样计算机就能知道我们的指令是啥了。
然而,这种打孔纸带实在是效率太低了。20 世纪 50 年代,美国制造了最先进的空军 SAGE 防空系统,雇佣了当时美国一半多的程序猿,用62500 卷穿孔纸带写了 5M 的数据,花费了将近 10 年时间才完善。
图片
图片
所以,在我们差评,“ 纸带 ” 妥妥是滞后的代名词。
好在,后来 ACSII 码出现了,人们终于可以用 0|1 来代表英文字母和数字。工程师们给当时出现的小型计算机加上了 “ 电传打印机 ”,只需要用键盘敲击指令,计算机就会把相应的结果打印出来,人们终于摆脱了打孔纸带。
图片
有了 “ 电传打印机 ” 之后,人类才在编程的道路上开始发足狂奔。
1964 年,Dartmouth BASIC ( BASIC 语言的前身)成为第一个拥有 IDE 的编程语言。
IDE 的中文是 “ 集成开发环境 ”,可以理解为一种方便程序员进行开发的工具集合。
Dartmouth BASIC 的 IDE 非常简单,程序员输入一段指令,电脑就会返回相应的结果,它可是现在命令行编辑器的鼻祖。
图片
这个 IDE 集成了编辑、文件管理、编译、调试、运行等功能,让人们开发效率迅速增加。
图片
后来,因为屏幕的出现,开发程序的环境有了一点人机交互的样子。。。
图片
再后来,图形化界面开始兴起,高级编程语言兴起,IDE 也在创新发展,这些都让编程的门槛一再降低。
1998 年微软公司开发了真正的程序员必备利器 —— “ Microsoft Visual C++ 6.0 ” 。
提起 VC++6.0,估计不少人要会心一笑了。大学时期的 C 语言设计,多少人第一次在屏幕敲打下 “ Hello World! ”,从此走上了程序开发强(tu)者(tou)之路。
图片
此时的 IDE 已经可以支持编译多种程序语言,通过插件可以实时查看变量的数值。
后来,各种各样的 IDE 推陈出新,支持的功能也越来越多:关键字高亮、自动补全、代码框架生成、版本控制、甚至是自动重构等等,程序员的工作效率和便捷度像乘了火箭一样上升。
图片
但是,功能越多,IDE 也就更繁杂。越来越臃肿的 IDE 却没有讨好程序员,高阶程序员们甚至宁愿在 Linux 的编辑器里用最简单的 vim 编程。
图片
后来微软推出了 VS Code,轻量化,按需装插件,才终于挽回了颓势。
最近两年在开发界,提的多的就是 “ 上云 ”,服务器部署云端,数据存储在云端,于是,大家就在试探,是不是开发也能在云端完成呢?
不懂的差友不要误解,这里的 “ 云 ” 并不是指在天上,而是 “ 远程 ” 的意思。就像有的人会将文件保存在本地电脑,有的人会将文件备份到网上 —— 这个就叫 “ 云端备份 ”。
图片
以前人们开发程序必须要在一台性能比较好的电脑上,所以大家应该会经常看到程序员去哪儿都要背着一个电脑,这就是 “ 本地开发 ”。
而 “ 云端开发 ” 则可以让人们摆脱对电脑的硬性需求,程序在云上,开发环境也在云上,你只要一个能连上网络的屏幕就可以了。
图片
华为云今天在华为开发者大会 2020(Cloud)上介绍的 CloudIDE 就是这么一个工具,你可以随时随地,用任何终端(电脑、手机、平板、甚至某些电视 )都可以查看编写代码。。。
图片
虽然 CloudIDE 部署在云端,但它使用起来该有的功能一个不少(自动补全、版本控制等),同样,其他定制化需求可以通过插件来解决。
而且,如果你使用 CloudIDE 来开发代码,它还会贴心为你准备各种模板,不仅有主流的各种编程语言,还包括小众的量子计算开发和区块链开发。
图片
而且,使用CloudIDE 开发,可以根据自己的需求来决定云端性能。最厉害的是它还支持在华为的鲲鹏架构下进行开发。。。
图片
据统计,现在世界上的云端算力由 ARM 构架提供的占比已经超过了 80%,而鲲鹏正是基于 ARM 来运作的。
图片
以前程序员经常会遇到在 X86 平台上编译 ARM 程序的情况,总是出现各种各样的问题。如果用 CloudIDE 的话,用鲲鹏的 ARM 环境编译 ARM 程序,问题将迎刃而解。
而且,CloudIDE 还提供了一键验证的功能,直接将实例对接云端资源,瞬时搭起整个服务框架,在容器中随意调试,是一个真正面向未来开发的工具。
在今天华为开发者大会 2020(Cloud)上,华为 DevCloud 研发技术总监王亚伟现场给大家演示,在 CloudIDE 上用 10 分钟进行一个小游戏的开发与验证,编程时自动生成框架,强大毫无迟滞的自动联想,都让编程事半功倍。
从 GitHub 上直接拉代码仓▼
图片
自动联想▼
图片
如果差友们还是不过瘾,还可以到华为开发者大会 2020(Cloud)的 Codelabs 上去瞅瞅,那里有各种示例公开给大家。
有利用华为云一站式 AI 开发与管理平台 ModelArts 智能识别手势的例子,也有将 X86 代码迁移到鲲鹏平台的示范。。。
图片
无论是你想尝试大数据的魅力,还是想体验 loT 的魅力,都可以在 Codelabs 找到相应的项目。
图片
大家可以通过 CloudIDE 来看相应的代码,直接看解题思路,也可以自己试着动手修修改改,享受开发的乐趣。
像我就比较好奇之前 CloudIDE 中的量子计算,在 Codelabs 里就正好有相应的编程教程和详细代码,于是。。。
满足好奇心了▼
图片
假如你是个学生或者开发者,没准儿会有大收获。只可惜,明天是 Codelabs 华为开发者畅玩周免费开放的最后一天,想尝试的人一定不要错过这个机会!
不过还是有个好消息的,华为云公布,如果开发者使用 CloudIDE ,并选用鲲鹏平台的话,整个 2020 年都将免费使用。
图片
现在一条龙服务都准备好了,感兴趣的差友们赶紧戳“ 阅读原文 ”去体验一下吧。
图片、资料来源:
wikipdia,Dartmouth BASIC、Command-line interface
《Crash Course Computer Science》
图片
(广告)
图片