因为c++被骂惨了
c++曾经有过一段辉煌的时期
那个年代,几乎所有人都在用c++,而且普遍认为c++是c的继承者
结果导致了软件大灾难,引发了第二次软件危机
这里先说一下第一次软件危机,第一次是汇编带来的非人性化开发,汇编说到底就是硬件指令集嘛
压根不是个语言,人要用机器的思维方式去思考问题,就导致开发非常慢,那怎么办呢?
将其封装,用接近人类的语言将其表述出来,执行的时候再将其翻译成指令
c就应运而生了,解决了第一次软件危机
第二次软件危机则是c带来的,因为人们发现,随着软件规模的扩大
复杂度呈级数级别上升,你今天去维护c的大型项目,都是非常困难的一件事
随后发明的c++不仅没有解决c的问题,反而引入了更多问题,它把语法进一步复杂化了,++嘛
就导致到后面千人千面,每个人写的都特么不一样,互相之间很容易引发争吵
你到底要怎么样嘛?当你去维护别人代码的时候,你就开始各种重构
多重构几次,项目还做个屁啊,直接失败了,第二次软件危机期间,项目失败率飙升到90%+
基本上可以说是,只要是大型项目,就会失败,90%基本上跟100%没什么本质上的差别
这一时期的著名著作就是人月神话,没有银弹这些,然后人们开始寻找银弹
有问题要解决问题,于是java应运而生
java最大的意义在于对c做了减法,当然也做了加法,但是更重要的是,它做了减法
java原名c++++--,最后两个符号--就说明了java对c以及c++做的减法
将一些容易错的东西,给封装起来,比如内存管理,并提出了著名的不要重复造轮子的口号
从而大幅降低软件工程失败率,从以前90+降低到50%-,是的,不完美,但是很多项目因此可以运转得起来了
书里把这段历史写得很清楚
并催生了一系列的工程方法,形成了软件工程这个专业,其中最重要的理论就是面向对象oop了
而且oop的理论还拿了一次图灵奖,2001年,图灵奖发给了面向对象它爹alan key
alan key就是smalltalk的发明者,后来sun做java的那批人,包括后来做出了hotspot,v8,dart这些牛逼东西的lars bak早期都是做smalltalk的
所以回答你的问题,c++对比c好不好,看你怎么看这个问题
一般认为是不好的,后期很多语言,之所以提出来,目标都是要解决c++
比如java,go,d,rust……基本上是一个语言的提出,就要先把c++给骂一顿
当年教主选择obj c的时候,也看不上c++
因为这货不解决问题,一个笑话就是,当你面对一个c++写的大型项目该怎么办?
衫裤跑路啊,还做个屁啊,c++根本就不应该做成一个大型项目,尤其是应用的项目
一般就是把c++拿来用一下,封装起来,然后暴露api给ffi或者nfi调用,也就这样了
就是在有限的范围内使用该语言,就像夜壶,里面的东西谁都不想看,赶紧封装起来了事
就像flutter和java的图形引擎skia和prism,这两个的确是c++写的,但是很快就被封装起来了
对于用户来说,这些都是透明的,用的时候谁在乎你用什么写的
当然因为历史的原因,还有一些工程,是用c++写的,比如一些数据库,oracle之类的
去维护这些翔山……嗯,也稳定
就像现在其实也还有用cobol写mainframe的
但是数量大幅减少了,我估计银行里面那些做主机的互相之间都认识,就那么几个人
很多语言都这样,包括以前的delphi,还是有公司在用,但是维护为主,delphi后来就发展成了c#
以前c++对比其他语言最大的优势在于兼容c,但是现在随着各种语言runtime对于nfi(native function api)的成熟,这个优势就越来越不明显了,java和dart都在强化这一领域的工作
9102年了,多睁开眼睛看看这个世界上在发生什么
现在各种语言真的不少,dart/flutter,swift(ui),这两个是最近几年诞生的语言和工具,在设计上都挺像是java++,java和javascript也在逐步靠拢,js最搞笑,越做越像是java,低配版的java,不过从名字上看,js的确是这一个目的,java的script
这两个游戏都有自己的问题。但严重程度完全不一样。
赛博朋克最大的问题是人力不够,没有人手把愿景在限期内做出来,导致后期狂砍。但从已有的成品来看,CDPR是完全有人才有能力把东西做出来的,只不过没时间做。光影效果,已有的垂直城市设计,以及主线和很多支线任务的演出都有毫不输巫师3的气质,尤其是日本城浮空平台那关,无论是游戏流程还是画面还是音乐,都把类似银翼杀手2047的那种气氛和感受做到了极致。有人说CDPR的人才都跑了,或者CDPR傲娇了开始放水,这并不客观。2077确实是个半成品,主机优化的问题尤其严重,但你关注已经完成的部分,用高配置PC玩,其质量并未令人失望,依然是巫师3的水准。
2077就像是一个优等生忘了做背后的几题的考卷,开天窗导致不及格,但已经做了的题目还是正确率极高的。
谈到E3的demo,单从画面上讲你很难说它缩水了。只不过CDPR没告诉你想要E3画面,就得上3080+光线追踪。。。
我猜想没有光追的话,游戏在大多数情况下也是可以达到光追的效果的,只不过人工工作量会很大,有些地方需要离线烘培,而有些地方需要人工设置虚拟光源。CDPR可能发现项目后期工作量太大搂不住了,就上了光追这个大杀器。。。
至于无人深空,现在口碑很好,但我要不客气地讲,这个游戏到了今天依然是垃圾,只配卖$19.95,打折的时候卖2.95的那种。
Hello工作室自始自终都没有把初始愿景实现的技术能力。
你可以看无人深空进入大气层的技术实现。先是一段飞船进入大气层摩擦发红的特效,然后可以看见地形通过一种非常粗糙、视距很近的情况下刷新出来,并且刷出来的地貌和太空中看到的地貌完全不同。所以从头到尾,hello工作室都没有类似精英危险和星际公民的无缝行星登陆技术。
无人深空更新了十几次,并没有触动这个游戏除了机械刷就没有任何深度的本质。这是一个极其无聊的游戏。但它刷了两年的DLC,玩家也就给他点面子,没功劳有苦劳。它每次更新我都会进游戏看看,但玩不了半小时就会放弃。一是实在无聊,二是它美术设计和渲染水平有限,色彩及其刺眼。比如在母船机库里,到处都是亮瞎狗眼的点状光源,但这些光源不会照亮周围的任何东西,看的时间长了有种不带护目镜看焊接的流泪效果。你说更新了那么久,这么简单的问题都不解决,有什么用呢。游戏中随处可见低级设计的痕迹,比如说有很多行星上有一种可以卖钱的球,这种球没有任何贴图,只有亮瞎眼的纯白色材质,在HDR效果下极其刺眼,但它又不是个光源,放在地上不会照亮周围任何东西。这种打开Blender就存盘的建模初手垃圾素材居然也能放在游戏里,真是活久见。
所以无人深空就像是一个学渣冒充学霸,把期望提得无限高,却每题都答错结果接近0分,被骂,然后花了漫长的时间在那里订正,一题一题的改,最后终于接近30分了,然后获得了大家的赞赏,全然忘记了它改了那么久依然是不及格。
无人深空的贴图我就不贴了,首发的时候真是纯垃圾,基本上是2008年魔兽世界首发的那个水准。现在也依然是垃圾,开个HDR看着眼睛都疼。