用程序写程序的可行吗?

论坛 期权论坛 工作     
爱用户   2020-1-8 23:58   5632   3
情景:告诉程序你的需求,条件,程序执行后写出一款适合的程序出来,大概就像你去饭店告诉厨师你需要什么样的饭菜,给出你的需求,条件(不要香菜),厨师在后厨执行后送到你面前,以上问题的可行性是多少?
分享到 :
0 人收藏

3 个回复

倒序浏览
2#
热心回应  16级独孤 | 2020-1-8 23:58:26 发帖IP地址来自
谢邀。类似问题在社区已经问过太多次了。我们暂且把产生程序的程序叫做「元程序」。
各种意义、各种层次的「元程序」一直存在,但是对操作者来说有四个难点:
1、操作者要知道自己的要求是否现实。当然我程序也许可以检测出来。但是他会不会因为无知一直提不现实的需求?
2、他自己的思路是否合理,有没有逻辑问题。是的,这也可以检测出来,但是同样对操作者有素质要求。
3、他知不知道自己没有指定的地方,默认选项是什么?知不知道自己改一个选项,会响应到其他的选项?
4、假如我把所有默认选项都打印出来,他理解有多少?
当他对上面四个问题游刃有余了,想必他已经是个相当专业的工程师了,但是设置越少,得到的程序就越像一个固定模板。而且每次增加设定的时候,还得思考会不会产生副作用,会不会出现意料之外的连锁反应。行了,这不就是写程序一样吗,写程序不是有「约定优于配置」吗?
总的来说,就是没有银弹。你表达的越少,生成的程序就越固化,适合度就越小,反之,你要程序越合适,就要诉诸越多。
要丰富地表达自己的需求,莫过于就是用语言来表达,否则就是填厚厚的表单。语言的好处是,它能帮助你理清思路,理解规则的相关性,减少试错。因此我们就有高级语言、领域语言。所以,不就是跟现在用VisualStudio、XCode写软件差不多?——实际上,这些就是产生程序的程序,没毛病。
如果你还要简单一点,还可以了解一下当年微软的 「LightSwitch」,或者现在虚幻的「蓝图」,点点鼠标,拖拖控件,拉拉线,填填表格。基本可以生成一个可用的程序了,但是适用范围相对要小,我前面说了,没有银弹。需要更合适的产品,就需要提供更多的信息。
你用了饭店来比喻,刚好,我最近在看《东京大饭店》,饭店要让顾客觉得口味满意,不是你要什么菜,就按菜谱给你做,经理会问你偏哪个口味,身体状况,最后判断要怎么调节这道菜的味道,说白了就是要向你收集更多信息。所以这不是可不可行的问题。而是客户满意度他提供的信息量之间的比值能不能再提高的问题。
当然,未来这样生成的程序肯定会越来越接近你真实需求的,尤其是在大数据和人工智能的帮助下。它早就大量采集了你的个人信息,偏好,目前状况,不需要你主动提供,然后通过人工智能就能准确预测你需要什么,就像拉普拉斯妖一样。想想还是觉得恐怖的。如果可以,我不希望它出现,因为表面上你主动提交的信息少了,但是你无意中被收集的信息大大增加了。
个人倾向于使用更高效的语言表达,以及更丰富的语言概念来达到这目的。
3#
热心回应  16级独孤 | 2020-1-8 23:58:27 发帖IP地址来自
程序本身很少是结果,大多数时候它只是完成“需求”所需要的媒介。或者说,程序很少是最终产物,而只是为了生产最终产物(图像、声音、文字、数据,甚至一个判断)而使用的工具。用题主给的“饭店”作比方的话,程序大多数情况下是“菜谱”,很少是“饭菜”本身。
所以,完备地描述“对程序的需求”(而不是“对程序在特定输入下的产物的需求”)需要一些视角转换。未经练习的人常常只能做到后者(或者混淆二者)。
学会视角转换后,具体的描述方法(编程语言)倒是相对不太难上手的。
4#
热心回应  16级独孤 | 2020-1-8 23:58:28 发帖IP地址来自
有专门处理程序的程序
简称编译器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:31799
帖子:6375
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP