警告:大量无聊的编程语言观点即将出现。
我需要什么样的编程语言?
有些条件是不容谈判的。
首先,语言必须可靠。 我不能花时间修复不是我的错的错误。
我的许多游戏都是为 Flash 开发的,而 Flash 现在正在消亡。 我不想花时间将旧游戏移植到新平台,我想制作新游戏。 我需要一个可以暂时信任的平台。
同样,我想避免将自己束缚在特定的操作系统上,理想情况下我希望可以选择为控制台进行开发。 因此,编程语言的可移植性以及具有良好的可移植库支持非常重要。
我理想的编程语言
在我的愿望清单中,最重要的是简单性,但不是要求。 我发现查找语言特性和各种奇怪的“聪明”API 很烦人。 我想精通一门理想的语言,然后再也不用查找任何东西。
处理错误会消耗大量精力。 我希望错误尽可能少地发生,因此我需要严格的类型检查、强大的警告消息和静态代码分析。 我希望 bug 更容易被发现,所以我需要一个好的调试器和动态分析。
我对高清现实不感兴趣c语言 游戏开发,但我仍然担心性能。 拥有更多可用周期可以扩大工作范围。 如果你不保持忠诚,探索现代强大的计算机可能产生的影响是特别有趣的。
此外,我更关心编译器速度。 我不是禅师,等待超过 10 秒就浪费了。 更重要的是,等待打断了我的工作流程,滚动浏览 Twitter,突然发现 5 分钟或更长时间已经过去了。
我不是一个虔诚的 OOP 用户,尽管我职业生涯的大部分时间都在处理类和对象,但我花的时间越多,我就越不明白为什么代码和数据如此紧密地耦合。 我需要将数据作为数据进行处理,并编写最适合特定情况的代码。
替代计划
C++ 仍然是开发游戏最常用的语言,这并非没有原因。 我仍然在几乎所有合同项目中使用它,但我真的不喜欢它。
C++ 满足了我的需求,但严重阻碍了我真正想要的。 这非常复杂。 尽管有好的工具可用c语言 游戏开发,但仍然很容易产生各种隐藏错误。 它的编译速度也比 C 语言慢。 它性能良好,并提供了 C 语言中没有的功能。但这些功能并不是我真正想要的,而且它们的成本很高。
C#和Java也有类似的问题。 它们是冗长而复杂的野兽,但我需要一个简洁而简单的替代方案。 他们都做了很多工作,使程序员能够发展成为我强烈反对的 OOP 风格。 大多数高级语言的设计方式往往会隐藏复杂性,但实际上并没有阻止其造成混乱。
我非常喜欢Go语言。 从很多方面来说,它都是 C 语言的重生。 我很想使用它技能特效,但有很多障碍阻碍我。 停止世界的垃圾收集是游戏中的一大痛苦,而停滞是一件不可接受的事情。 游戏的库支持也很差。 虽然打包C语言库并不麻烦,但是这样做还是会增加很多工作量。
为 Web 开发添加功能固然很棒,但快速变化的开发环境可能会令人恐惧。 弗莱士的死尤其让我害怕。 我真的不喜欢 JavaScript,它太松散了,我对人们用它开发的代码之多感到惊讶。 但我没有兴趣去尝试。
Haxe 看起来比大多数竞争对手更有前途。 如果我再次进行 Web 开发,我可能会更深入地研究它。 它有一些很棒的库支持。 我有点担心它相对年轻,它会持续下去吗? 我现在没什么可说的,我只是触及了表面。
有人会说,不如自己造一个轮子,写自己的语言,自己真正想用的语言。 我很欣赏这个想法,有时我也想这么做。 但放弃所有现有的库支持并为未来的兼容性承担全部责任太具有挑战性。 当谈到现实时游戏角色,我宁愿制作游戏,也不愿实现编程语言。
为什么 C 仍然是我的最佳选择
C语言是危险的,但是可靠的。 一把非常锋利的刀对于割伤手指和切菜一样有用,但它非常简单,所以学会小心使用它并不难。
它很快,我想不出有什么比编译时更快的了。
它几乎可以在任何东西上运行,这通常更容易。 很难想象它无法处理的情况。
库和工具支持是强大且持续的。
我说这话时有些悲伤,但这仍然是我的语言。
我绝对不是想说“你也应该使用 C”。 我真的很欣赏这里的偏好非常具体和不寻常。 我比大多数人编写了更多“纯”C 代码,这当然是我舒适度的一部分。
对,就是那样 :-)