`
yanlijun250
  • 浏览: 783686 次
文章分类
社区版块
存档分类
最新评论

无法确定的未来

 
阅读更多

时至两年之前,我尤然对C++在游戏开发中的绝对地位感到深信不疑,然而,这两年来,突然感觉到一股寒意……或者我还能保持自信,告诉自己那是冬天带来的寒冷,但潜意识中,却开始相信,传统C++的地位已经开始受到挑战,或者用一种乐观的语调说:

有更多的空间,可以让我们放开去探索了!

带来这个疑问的第一个因素是.net平台。.net是一个更好的COM(野猪语),COM是一个更好的C++(Don Box语),那么,按照传递原则,其实.net是一个更好的C++。

既然如此,为何要那么排斥.net呢?这是去年开始接触.net后的唯一感受。.net比C++好的地方并不简单是因为GC,而是因为编译期可以做更多的事情,这比起写一堆C++宏的可读性要好很多。本来嘛,编译期明明就知道的事情,为什么一定要让我们用宏和模板去偷取?这让人很~不爽!.net由于其特点,因此也可以在编译期做更多的事情了,这样对于一些特殊的要求(譬如自解析的Property Grid),就很容易了。

带来这个疑问的第二个因素就是C++0X自身,添加GC的方式是多种关键字的引入,这个首先就有点让人望而却步,因为这引入了一个跨版本的问题。其次,跨平台的硬伤还是没有解决,CWrapper还是得做,C++Wrapper还是浮云,再次,新C++究竟能在多大程度上,引入相当于.net或者Java的类库,这还是一个问题,Boost再强大,也还不过是一个Boost,而.net的扩展性也开始慢慢显现出来,那么,传统C++的优势还能够体现在哪里?

另外的,最近所作的几个工程,全部都是使用了多语言相互配合编程,纯C++ 配合CLI,纯C++配合CLI配合C#配合Python,这些都很有趣,而且只需要经过很短的培训,就能确实地提高编码效率。

C++并非没有优势,她的优势是效率,C++并非没有劣势,她的劣势在于标准和库,这是C++之父无数次提到的悲剧。在效率可以不那么作为第一因素的前提下,很多事情确实可以绕个近路办理。

当然,如往常一样,本文并不想引起什么纷争,C/C++还是我最为钟爱的语言,因为她纯粹。甚至我自己如果写程序,首先考虑到的决不会是CLI Wrapper和COM Wrapper,而一定是把我自己的程序做成C Wrapper,因为这样能支持更多的语言(理论上)。

但是,这并不意味着一切就可以就此止步,引擎中20%的代码是为了效率,但还有80%的代码是为了方便,这20%的致命一层,目前仍然必须借助C/C++进行呵护,而那80%的工具、编辑器、框架,或许我们更应该为用户考虑,用户方便,那就是方便,用户痛苦,那就是痛苦。有时候,在这个层次上,C++的表现确实是一场灾难。那么,如果有更灵活的语言,为什么不去尝试呢?

灵活的空间大了,或许是好事,或许是坏事,但总而言之还是好事——对于历史的前进而言。

生于语言范式的征途,死于语言范式的沙场,谁让这就是程序员的宿命呢?而谁会没有自己的宿命呢?更多的空间,也有更多的责任。

期待着一个最终解决方案的来临,然在那之前,还需要继续前进。

分享到:
评论

相关推荐

    技术、市场不确定性对本土企业合作、自主创新模式的影响

    而当市场不确定性较高,企业无法确定未来市场需求时,可能会选择与合作伙伴共同创新,利用合作的力量共同探索和适应市场。 文章通过分析183家本土制造企业的数据,提出了若干假设,并验证了这些假设。实证研究显示...

    未来网络白皮书:确定性网络技术体系.pdf

    未来网络白皮书《确定性网络技术体系》深入探讨了如何...综上,确定性网络技术是未来网络发展的重要方向,它不仅能够满足现有互联网无法解决的特殊需求,也将催生新的经济和社会价值,引领新一轮的科技革命和产业变革。

    【记叙文】生活的改变-关于新冠疫情的作文450字.pdf

    新的病毒可能随时袭来,我们无法确定未来会如何,但这种不确定性确实令人焦虑。 在情绪上,我们也经历了起伏。有兴奋,因为疫情让我们的生活节奏暂时放缓;有紧张,因为疫情的不确定性和潜在威胁;也有讨厌,因为...

    房地产评估之假设开发法.doc

    - **无法确定未来用途的房产**:对于未来用途不明朗的房产,采用此法可能会导致结果不准确。 #### 三、假设开发法的适用条件 ##### 1. 关键预测 - **正确判断最有效的开发方式**:必须根据合法原则和最高最佳使用...

    网上作业_运营管理.doc

    8. 非确定型决策:当决策者无法确定未来情况,只能凭借经验或估计决策时,是属于非确定型决策(选项A)。 9. 程序化决策:日常管理中以相同或基本相同的形式重复出现的决策是程序化决策(选项A),例如生产方案决策...

    第三讲风险与不确定性PPT课件

    确定性是指未来的状态可以被准确预见,而不确定性则意味着未来的可能性无法预知,甚至其发生的概率也无法估计。理解这两个概念有助于我们更好地理解和应对现实世界中的经济活动。 不确定性通常出现在经济决策中面临...

    未来函数检测器+颜色代码生成器

    这些信息可能包括未来的交易价格、成交量等,使得回测结果过于理想化,无法真实反映实际交易中的表现。在股票软件中,如大智慧,若指标中含有未来函数,可能会误导投资者,因此对这类函数的检测至关重要。 "未来...

    深度学习的不确定性估计和鲁棒性

    例如,Ovadia 等人在2019年的研究指出,神经网络在特征分布变化下无法泛化,并且其不确定性质量会随偏移而退化,表明模型无法识别自己在不熟悉的数据上的无知。 综上所述,深度学习的不确定性估计和鲁棒性是深度...

    不确定度研究计算方法

    ### 不确定度研究计算方法——继电保护及自动化设备检验中的应用 #### 一、引言 在继电保护及自动化设备检验过程中,测量...在未来的工作中,应该持续关注测量不确定度的相关研究进展,不断提高不确定度评估的能力。

    整周模糊度的确定方法

    然而,在利用载波相位进行定位的过程中,会遇到一个名为“整周模糊度”的概念,它是指由于载波相位信号本身不携带周期标识信息,导致在接收端无法直接确定信号中包含的完整周期数。因此,快速准确地解决整周模糊度...

    2023年NOC加码未来编程(小码王赛道)初赛-Scratch(小学高年级组-卷2).pdf

    2. 脚本内容未给出,无法确定小猫说出的内容。 3. 变量“和”的值取决于具体脚本,无法确定其显示的值。 4. 正常显示的变量可以用积木块来控制变化,滑杆显示方式可以通过拖动滑块快速调整,但其变化范围不一定是0...

    超越不确定性-多种不确定性分析技术比较

    自古以来,人们一直在尝试理解和控制未来的不确定性。从早期的机会游戏到现代复杂的风险管理模型,人类对于不确定性的认知经历了漫长的发展过程。本书《超越不确定性》通过历史背景引入了风险与不确定性的概念,并...

    大学物理实验绪论课 不确定度讲稿

    通过对不确定度的理解和分析,学生可以培养起解决复杂问题的能力,这是作为未来科研工作者不可或缺的素质。同时,它也帮助学生建立起正确的科学观,认识到任何科学结论都有其不确定性和局限性。这种科学的认识态度有...

    与未来同行

    而《与未来同行》这本书,正是李开复博士为我们准备的一张详尽的地图和航海手册,帮助我们在这条不确定的航线上找到方向。 李开复,作为科技领域内的佼佼者,不仅在科技上有着非凡的成就,更有着丰富的人生经历和...

Global site tag (gtag.js) - Google Analytics