游戏开发者抱怨代码过份膨胀引致浪费 怒批:99%内容都是垃圾


作为一名从事独立游戏设计和程序业务的开发者,克里夫斯基(Cliffski)在一篇文章中吐槽道——这年头的“代码膨胀”,已经到了令人发指的地步。


他以自己常使用的一个云端备份服务为例来说明,这个由某个大公司提供的云端备份工具,基本上提供的服务就是指向本地端硬盘上的一个文件夹,然后把内容复制到一个远端服务器上。而上传到服务器时,大公司可能需要做一些与数据库管理有关的事情,例如给这一堆上传的档案分配一个名称,并验证谁下载了它。


“这是一家大公司,所以他们有大的程序,而且可能经常被黑客攻击,所以需要一些安全保障,也需要一些验证,以确保在我上传和他们接收档之间没有被篡改过。我明白这一点。”他表示。“但基本上这个程度的目的就是列举一些文件,读取它们,上传它们,然后关闭连接,并提供一个日志档,说明是否成功,如果不成功,出了什么问题。事实上,我自己也从头开始写过这样的程式码,使用wininet API和服务器上的php与MySQL数据库对话。与企业级的东西相比,我的东西可能没有那么强大,但它确实可以做到。”


不过他表示,今天他所使用的这个大公司提供的上传工具,档案大小共有230MB,里头有2700个不同的档案,就为了管理这个过程。


他表示这说明了现在的应用程序,已经超越了“臃肿”可以形容的程度,程序档案的膨胀已经变成“完全的、彻底的、明显的荒谬和疯狂”。


一个普通的程序员都可以编写一个同样功能的程序,它的代码量小到只有这个应用程序的1/20,足以将文件安全、快速地上传到服务器。甚至可以是一个单独的.exe可执行文件,无需成百上千的动态链接库(DLL)。


不仅可行,而且简单、可靠、高效、易于调试。只需稍微努力那么一下,它就会起到切实的作用。


那么,现在的代码为什么会变得这么大而臃肿呢?


“我见过不少程序员在干这种烂活,我知晓这种情况是怎么发生的。”他表示,越来越多程序员不去研究通过底层的高效代码来完成工作,且许多人甚至从未写过所谓的好代码。很多人往往就是引用DLL函式库,需要什么就去找什么。


“我可以断言,在你的电脑中许多应用程序,99.9%的代码是绝对无用的,甚至从来没有被执行过。它只是在那里,在一套多达65个档案的DLL函式库中,这只是因为某个程序员想做一些微不足道的事情,比如保存一个位图,但他们不想从底层来写这个程序,所以他们导入了一整桶臃肿的垃圾来实现它。”


举个例子,当年一个仅64Kb的《Elite》游戏,就包含了庞大的星系、3D太空战斗、职业发展系统、交易、以及数千颗可供探索的行星。


诚然,现如今电脑速度已经快到可以忽略程序的臃肿。但是在你使用电脑时,正在怀疑自己到底有没有点下去按钮的这半秒钟时间里,频率动辄数GHz的处理器世界里,早已过去了数十亿年。我们浪费了个人计算机99%的算力和能耗,就为了这些垃圾程序。


想像一下,在你急着想要在档案总管中快速搜寻某个档案的时候,工作管理员却在那搞一堆废话,如果你查一下后台,竟有102个程序在忙碌着,天知道他们在干什么!


或许正因如此,我们才在几乎没有干任何事情的情况下,你发现你去年才买的机器,今年就“老了”。


你甚至需要每年都换一部新手机、新电视,以执行那些臃肿不堪的串流媒体App——只因为它们依赖执行的代码是如此糟糕!


他表示他非常怀念过去程序的黄金时代,程序员们对內存和CPU的限制了如指掌。如今,我们已经被迫生活在了一个效率极其低下、但浪费又如此夸张的泥潭里。


标签: