为什么程序员写的第一个程序是“Hello World!”
Posted 嵌入式软件实战派
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么程序员写的第一个程序是“Hello World!”相关的知识,希望对你有一定的参考价值。
《三体》小说中有很多让人“虎躯一震”的概念,例如这个“降维打击”的概念。小说里面讲的,歌者向太阳系扔了一个“二向箔”,接着三维的太阳系瞬间变成了二维世界……
这是小说里面的情节,而现实生活中,我们有很多类似“降维打击”的事。
我说“程序员写代码”是一件“降维打击”的事,或者更应该说是“降维创造”的事,你信么?
你有没有想过,为什么程序员写的第一个程序绝大多是输出:
“Hello, World!”
而不是“Hello, Kitty!”,也不是“Hello, Program!”?
看起来好像是“祖上的传统”,然而我觉得有特殊含义。
我们写代码,是在创造一个世界。
程序员接触这个世界,第一件事就是向这个世界Say Hello。
也许你觉得我是在吹水,甚至是胡说八道。
如果你是从事嵌入式软件的工程师,你就会知道,芯片里面的基本上所有内容都有个地址,一维的。
装载的运行程序,在于Flash或ROM中,是一段线性空间,每个字节都有唯一地址;动态变量所在RAM也是有地址的;甚至MCU内部的寄存器,也是有地址的。
不仅仅是MCU里面的空间是一维的,你写程序也是一维的,每个运行的函数,每个代码行,甚至每个byte都是有唯一地址的。
好多做应用软件开发的工程师,是不知道可以直接操作地址的,例如以下代码,看得他们是一愣一愣的:
#define MPU_CTRL 0xE002ED94
*(uint32_t*)MPU_CTRL |= 0x00002000;
以上我想说的是,这是一个一维的世界。
你写代码就是建造这个一维世界,也可以理解,这是一个“降维创造”。
这样想想,程序员真是一个牛逼而高尚的职业。
你忍着,先别喷,我知道你自从干了程序员,内心奔腾着万千草泥马,分分钟想删库跑路。
别!“删库跑路”是一件“降维打击”的事,我们现在讲“降维创造”!
想想,你当初因为什么而做程序员的?我想,大多数也许是对软件的好奇吧,是个很好玩的东西,可以做很多很神奇的事。
所以,不忘初心,要继续着这伟大的事业!
回过头来,继续说嵌入式软件这个一维世界。
上面提到,嵌入式软件里所有的目标对象,几乎都有地址,都像是生存在一个一维世界中。
程序运行的每一步,都像推动着那个世界在运转。
一步一步的,这个世界挺安稳的,听随你的每一个指令。
一开始,你小心翼翼地让它一步一步走,感受其神奇的开始;
后来,你尝试着多步多步地跳,体验其带来的快感;
再后来,你大胆尝试让它飞起来,无比刺激!
然后,你发现它迈的步伐太大了,容易扯到蛋。
指针,让你欢喜让你忧!
这时,你体验到了C语言的指针,是个神奇的东西,C语言没指针会黯然失色,有指针,又让这个你创造的世界充满无数的坎坷——bug!
其实,这不是你吐槽的原因。而那些满身铜臭味的“老板们”,对你趾高气扬的说这说那,时不时又用“大跃进”的想法来冲刺着项目的进度,让你不爽。
于是,时间长了,内心开始畜养“草泥马”。这是后话了,本文不讨论这个。
现在,你相信我说“程序员写代码”是一件“降维创造”的事了吧,有人不爽老板,就分分钟想“删库跑路”这种降维打击的事,可那一维世界是无辜的。
有人不爽,他在歪曲他创造的那个一维世界,写一堆屎山一样的代码。
以至于后来很多人,不喜欢“祖传”的代码,呵呵!
低维创造世界这个事,来的太快了,以显得创造世界的规则来的很慢。
甚至,程序员还产生了鄙视链。
很多人通常无视编码规则,也不喜欢那些条条框框的设计方法。
自我的程序员,创造的世界通常是很平庸的,思想也是停滞不前的。
程序员是需要不断学习的。停滞不前的程序员很容易被淘汰的。
好了,也许你会问,为啥程序员创造的世界是“一维”的,不是二维的,三维的,甚至四维的。
我说的是,程序运行和基础硬件空间这些基础,本身是一维的,但可以抽象出二维,三维甚至四维的世界,例如平面显示,三维动画等,这些应该算是人体感官认为的吧,不过从这个角度想,也没毛病。
再想想哈!很多人很担心,我们人类世界会不会被人工智能占领甚至统治了。
说不定哦,一旦人工智能拥有思想,那是一件很可怕的事。
我们辛辛苦苦创造的软件世界,说不定哪天对我们人类的世界进行“降维打击”了。
谷歌的AlphaGo,通过“深度学习”,已经打败围棋冠军了。
前些天,谷歌员工说,AI已具备人格。
细思极恐啊。
总觉得这些离我们很远。
但是你的手机,你的电脑,一刻不停地收集你的个人行为,分析你的喜好,给你推荐你可能喜欢的产品。
另一方面,你常常点开的阅读,通常是某一方面的内容,好像已经被困在“信息茧房”里面了。
这一切,不管好的还是不好的,都在潜移默化地影响着我们的生活,改变着这个世界。
从我们输出“Hello, World!”起,人类让其不断进步,不断进化,渗透着人类世界的每个角落,也每分每秒在改变我们的世界。
这些,是程序员的杰作。
程序员真真实实地在改变着这世界。
可能你离不开你的手机了吧;
没有电脑,你的工作好像干不下去了吧;
现代社会,没有软件好像要崩塌一般。
程序员将很多现实世界的观念融入了程序世界。这些,你在编写代码的时候你就会体会到,就连这个“地址”的概念,都是来源于人类世界的地址。在深入一点,观察者模式、工厂模式等这些设计模式的概念,都是来源于人类生活。
而这些,优秀的思想或者观点,不断迭代,让这个软件世界丰富多彩。
如果你创造的MCU小程序是一个世界,我创造的软件程序也是一个小世界,他写的软件也是一个小世界,那么将这些小世界连接起来,互通有无,这会形成一个大世界,正所谓“万物互联”就这样诞生了。
好了,丰富多彩的世界,是程序员创造的功劳。
看着我这个文章的读者,如果你刚刚高考完,填报志愿的时候,是否考虑下这么崇高的专业?
哈哈哈!
以上是关于为什么程序员写的第一个程序是“Hello World!”的主要内容,如果未能解决你的问题,请参考以下文章