- 主题:c++反射提案正式进入标准
有静态反射就足够做很多事情了,以前得用大量时间做meta programming用来映射RPC和数据库之类,技巧一大堆,代码一大坨,就实现了一个别的语言内置的功能。
C++非得纠结那一丢丢可以忽略不计的性能损失,宁可把开发效率降低50%。不可思议。
尤其是抛弃C++,用go、python、Typescript之后,回头再看C++,越看越觉得是屎,当年对C++有多熟悉,现在就有多讨厌这坨屎上雕花的奇技淫巧。
【 在 ylh1969 的大作中提到: 】
: 泛型是必须的,尤其是在高性能数据库操作中,但是静态泛型几乎没啥用,需要的是动态泛型,或者叫运行时泛型。
: 20年前已经搞成了。
: 高性能数据库操作,主要是两个东西:
: ...................
--
FROM 124.127.65.*
简单讲就是为了所谓的优雅,搞出新的规则,如果这些规则带来了新的问题,那就搞更多的规则。问题是还总不搞到重点。
典型的就比如之前的ACE库,就一个网络库而已,哪个牛人写的,BS推荐的,尼玛恨不得每个调用都得包含了三种牛逼哄哄的设计模式,你没个五年功力,不把40个design pattern背得滚瓜烂熟你都看不懂它在干嘛。。。
然后有谁真正用它了?
【 在 butcher 的大作中提到: 】
: c加加一直打补丁一样的增加各种五花八门的新特性,
: 左一个补丁,右一个补丁,
: 想到什么就搞什么,
: ...................
--
FROM 124.127.65.*
你对3A大作如何开发是不是有些误解。。。
游戏是C++所剩不多的应用领域之一,不过这更源于历史惯性而非C++本身的优点。
图形端的Unity开发是用C#,Unreal Engine早期用UnrealScript不过后来改成了C++和BluePrint,而后者不幸成为一堆更大的屎山。总之3D引擎其实一直在寻求不用C++的解决方案。
服务器端除了超过10年的老游戏外,C++也在逐步被各种互联网常用的语言取代。
游戏这种存在无数毫无共同点的规则的使用场景,开发者实际更想要的是开发效率,而不是所谓的执行效率。毕竟对每一帧要渲染1000万个多边形的游戏而言,要用C++抠效率是引擎该干的事情,对游戏团队来说,逻辑开发也用C++,那点效率提升只占1%,实在不够看,把开发效率拖累了50%才是经费在泣血。
【 在 z16166 的大作中提到: 】
: 你能用go、python、Typescript干活,说明你确实不需要C++这种语言或者工具
: 那么你随便把C++喷成啥都行
: 如果在不能用GC的需求前提下,你还能用go、python、Typescript这些吗?
: 比如,你能用py写一个3A大作吗?
--
FROM 124.64.23.*
就是越来越不接地气,脱离时代,只有等老人退休了,新人接替,才能慢慢有所改变。
【 在 nextworld8 的大作中提到: 】
: cpp的问题感觉太技术派 或者设计成最基本和底层的模式显示强大 却忽略应用上要求开发效率的诉求
: 在应用方面 效率提升的价值远远大于追求性能带来的价值大
--
FROM 124.64.23.*
这种都是15年前的思维了,都落后两个时代了。
【 在 ylh1969 的大作中提到: 】
: 静态反射没啥用,在某个struct的编译环境中,直接使用成员不好吗?为啥要脱裤子放屁?
: 看22楼,做个公用程序,或者叫做独立于数据的程序,这个程序与他要处理的struct不在一个编译单元,因此它不认识提交的struct,这时才需要反射。
: 论访问数据库的性能,与JAVA比起来,可不是差一星半点,应该是有数量级的差距,按照27楼的方法。
: 一般人比较JAVA与C访问数据库的性能,用相同的语句比较,那是差不多,但是用上绑定变量和数组操作,性能就不是JAVA可比的了。
: 这两个操作,需要多次的枚举每个列名,类型,位置。
: 如果想做个通用的程序,用于简化编程,就需要动态的反射。
--
FROM 124.64.23.*
说的不就是因为C++没有内建支持,非得要搞一坨屎山才能搞定吗,这不就是C++标准不务正业的证据吗。。。
现在的做法,外面的使用再简洁,不都得写N个宏,用完全非标准的方式定义么。
调试起来编译器报个错,不还是得把人绕晕。
【 在 ylh1969 的大作中提到: 】
: 22楼27楼57楼。
: 动态的反射,把屎山封装在工具库里,外边的使用是非常简洁的。
--
FROM 124.64.23.*