当前位置: 华文问答 > 数码

编程那么难,为什么不弄一个大众一学就会的计算机语言呢?

2021-11-20数码

软件里没有模糊的空间。

每一种行为,均需定义;每一种情况,均需处理。没有大概如此,没有差不多就行。高屋建瓴式的意见,领导艺术般的发言,皆无效果。每一个指令,都要落在实处,没有模糊的空间。

一个用户眼中的软件,只是他常走的那几条路,而对于系统构建者,他要写出整个城市,要造出所有人可能要走的所有的路,且并行不悖,没有冲突。哪怕只有一个人走这里,也要写出所有的可能。这其中的复杂度远超普通用户的想象,也常超出专业人士的预期。

此复杂度是系统的固有属性,与语言无关。

做个实验,不考虑编程语言,就用中文,你能不能说出你想要的软件?去想每一个页面,每一个流程,你会发现大量的思维空白。普通人只能说出几个痛点,说不出整个软件系统。

这毫不奇怪,写功能文档对于专业人士来说也是极痛苦的事。即便是个登陆页,对用户来说,密码能填对已是非常给系统面子了;而作为系统的构建者,你要考虑忘密码,重设,发邮件,还要防恶意重设,要有效期,要验证码,要发短信,还要防恶意发短信,要考虑外国手机发短信,要新用户注册,用户名要唯一,密码必须包含各种符号,好麻烦!算了,只支持电话号码注册,你要处理用户换号,要处理各种邮箱好友验证...

这些都与技术无关,不论什么语言,都要说清楚该怎么处理。以前会有人换个新号码,打开微信,发现还附赠了一堆好友,也是这个原因。

这还没到软件里面,单单是注册登陆,绝大多数的人,包括我,都不能轻易描述出模块的功能,更不必说整个系统,这与语言无关,亦不可通过语言解决。

系统固有的复杂度不可消除,用户也不知道自己想要什么,这两点为软件系统的构建定下了基调。这么多年的软件工程,无非是在隔离复杂性和加快用户反馈上做文章。

现在却被滥用在 app 上,各种莫名其妙的功能堆在一起,互不干扰,也没有联系,想想也是让人啼笑皆非。