Re: [闲聊]游戏开发者抱怨现在程式码夸张膨胀“可能有99%的内容都是

楼主: wei115 (ㄎㄎ)   2022-07-03 21:00:39
※ 引述《pl132 (pl132)》之铭言:
: 游戏开发者Cliffski抱怨现在程式码夸张膨胀“可能有99%的内容都是垃圾”
: https://tinyurl.com/229o8zbm
: 作为一名从事独立游戏设计和程式业务的开发者,克里夫斯基(Cliffski)在一篇文章中
: 吐槽道 —— 这年头的“程式码膨胀”,已经到了令人发指的地步。
: 他以自己常使用的一个云端备份服务为例来说明,这个由某个大公司提供的云端备份工具
: ,基本上提供的服务就是指向本地端硬盘上的一个资料夹,然后把内容复制到一个远端伺
: 服器上。而上传到服务器时,大公司可能需要做一些与数据库管理有关的事情,例如给这
: 一堆上传的档案分配一个名称,并验证谁下载了它。
: “这是一家大公司,所以他们有大的程式,而且可能经常被骇客攻击,所以需要一些安全
: 保障,也需要一些验证,以确保在我上传和他们接收档之间没有被篡改过。我明白这一点
: 。”他表示。“但基本上这个程度的目的就是列举一些文件,读取它们,上传它们,然后
: 关闭连接,并提供一个日志档,说明是否成功,如果不成功,出了什么问题。事实上,我
: 自己也从头开始写过这样的程式码,使用wininet API和服务器上的php与MySQL数据库对
: 话。与企业级的东西相比,我的东西可能没有那么强大,但它确实可以做到。”
: 不过他表示,今天他所使用的这个大公司提供的上传工具,档案大小共有230MB,里头有
: 2700个不同的档案,就为了管理这个过程。
: 他表示这说明了现在的应用程式,已经超越了“臃肿”可以形容的程度,程式档案的膨胀
: 已经变成“完全的、彻底的、明显的荒谬和疯狂”。
: 一个普通的程式设计师都可以编写一个同样功能的程式,它的程式码量小到只有这个应用
: 程式的 1/20,足以将文件安全、快速地上传到服务器。甚至可以是一个单独的 .exe 可
: 执行文件,无需成百上千的动态链接库(DLL)。
: 不仅可行,而且简单、可靠、高效、易于调试。只需稍微努力那么一下,它就会起到切实
: 的作用。
: 那么,现在的程式码为什么会变得这么大而臃肿呢?
: “我见过不少程式员在干这种烂活,我知晓这种情况是怎么发生的。”他表示,越来越多
: 程式设计师不去研究通过底层的高效程式码来完成工作,且许多人甚至从未写过所谓的好
: 程式码。很多人往往就是引用DLL函示库,需要什么就去找什么。
: “我可以断言,在你的电脑中许多应用程式,99.9%的程式码是绝对无用的,甚至从来没
: 有被执行过。它只是在那里,在一套多达65个档案的DLL函示库中,这只是因为某个程式
: 设计师想做一些微不足道的事情,比如保存一个位图,但他们不想从底层来写这个程式
: ,所以他们导入了一整桶臃肿的垃圾来实现它。”
: 举个例子,当年一个仅 64Kb 的《Elite》游戏,就包含了庞大的星系、3D 太空战斗、职
: 业发展系统、交易、以及数千颗可供探索的行星。
: 诚然,现如今电脑速度已经快到可以忽略程式的臃肿。但是在你使用电脑时,正在怀疑自
: 己到底有没有点下去按钮的这半秒钟时间里,频率动辄数 GHz 的处理器世界里,早已过
: 去了数十亿年。我们浪费了个人计算机 99% 的算力和能耗,就为了这些垃圾程式。
: 想像一下,在你急着想要在档案总管中快速搜寻某个档案的时候,工作管理员却在那搞一
: 堆废话,如果你查一下后台,竟有102 个程序在忙碌著,天知道他们在干什么!
: 或许正因如此,我们才在几乎没有干任何事情的情况下,你发现你去年才买的机器,今年
: 就“老了”。
: 你甚至需要每年都换一部新手机、新电视,以执行那些臃肿不堪的串流媒体 App —— 只
: 因为它们依赖执行的程式码是如此糟糕!
: 他表示他非常怀唸过去程式的黄金时代,程式员们对内存和 CPU 的限制了如指掌。如
: 今,我们已经被迫生活在了一个效率极其低下、但浪费又如此夸张的泥潭里。
没办法
摩尔定律告诉我们,每18个月电晶体数量增加一倍
而电晶体数量和电脑性能有一定关联
程式写再好有什么用?开发周期一长,你节省的性能马上就被摩尔定律干过去
反而快速开发不管性能的,已经抢占了市场,然后性能问题也随着设备更新被解决
不过最近几年,随着制程越来越接近物理极限 摩尔定律有失效的趋势
还有提升CPU IPC的技巧都用的差不多了
现在程式越来越不能乱写了,至少最基本的多执行绪要用上,还有GPU加速之类的
作者: orze04 (orz)   2022-07-03 21:08:00
除非像GTA5那种智障加载的错误https://tinyurl.com/4yakxude

Links booklink

Contact Us: admin [ a t ] ucptt.com