程序的本质是什么?

昨天中午在B站刷到一个视频,视频中讲的使这个程序员十年多来编程体会,讨论的主题正是这篇文章的标题,这篇文章也是因看这个视频颇有体会而写的。

视频作者不是大V,讲的很朴实,感兴趣可以看看,视频链如下:
https://www.bilibili.com/video/BV1J54y1t7WA

下面是视频内容的总结,除了视频中的我也会在最后加入我的观点。

在这个视频中作者主要讨论的主题是:程序的本质是什么?

在硬件角度

程序是建立在硬件上的,程序利用操作系统提供的API实现一系列的功能,实现对硬件设施的控制,最终为用户完成一些工作。除了日常使用的程序,操作系统、驱动程序等都算程序。

我:视频作者这里想强调一点的是程序的界限,建立在硬件之上的是程序。其实程序还可以更贴近底层,在硬件之上的程序就是在线路中流动的输入输出bit流,最底层的程序(逻辑电路,加法器、乘法器)是用电路实现的,到了这层程序和硬件界限已有点模糊。

程序的作用

程序(尤其是操作系统)的本质是控制硬件工作,这是最基本的作用,其次是充分利用硬件,视频作者又站在机器的角度提到了进程、线程、并发,这些都是为了更加充分利用硬件资源。

视频作者表达的一个观点我觉很对:程序的性能要看其对硬件的利用如何。

站在人的角度

程序的本质是帮助人节约时间和消费时间。有时候侧重节约时间,有时两者都需要。侧重节约时间的如一些办公软件,侧重消费时间的如抖音、快手(愿意在这些程序上花费时,能收获一些快乐或知识)。

我:我们开发程序的目的就是要提升工作效率,帮助人们更轻松的完成一件事,另外一个是让人们愿意花费时间的程序,说白了这些就是开发程序的终极目标,它们更像是产品的需求导向,一个产品如何拿这两点对比一下心自然就清楚了。

总结
程序的作用:

  • 控制硬件,充分利用硬件
  • 帮助人们完成工作,提升工作效率,节约时间
  • 让人们娱乐消费时间

在学C语言时我们了解到程序=算法+程序,学面向对象时我们了解到程序由一个又一个的类组成,学组成原理时我们了解到程序是晶体管线路和电子信号。程序已经融入到生活的方方面面,程序无处不在,一百个读者心中有一百个哈姆雷特,站在不同角度看程序就会有不同的样子。

(本文完,于 2020-12-28 晚)

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×