w***g 发帖数: 5958 | 1 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的
程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用
java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的
,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决
历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也
得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。 |
x****u 发帖数: 44466 | 2 这些小东西用C或者任何一种静态语言也一样写的出来,卖点是算法不是程序。
【在 w***g 的大作中提到】 : 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的 : 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用 : java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的 : ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决 : 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也 : 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
|
s***o 发帖数: 2191 | 3 为啥不直接用C?
【在 w***g 的大作中提到】 : 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的 : 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用 : java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的 : ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决 : 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也 : 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
|
l*********s 发帖数: 5409 | 4 type safety, encapsulation, these benefits don't cost performance so why not
using c++?
【在 s***o 的大作中提到】 : 为啥不直接用C?
|
c****3 发帖数: 10787 | 5 还是个习惯问题。C简洁明了,为大多数人喜欢。
不仅开源项目用C的最多,各种操作系统算是大项目,用C一样可以做的很成功。
C++主要是大公司喜欢,还有喜欢面向对象的人在用。 |
g*****g 发帖数: 34805 | 6 你这个虽然整体说得不错,但也太夸张了。不重复跑的东西,那需要极致性能。重复跑
的东西,启动时间基本可以忽略不计。大部分 benchmark C 也不过比 Java快一倍而已
。也就是说同样的算法,明年的机器 Java可以跟 今年的机器跑 C一样快。
算法的时间要求是有限的,机器变快暂时还是继续的,这才是 C++没落的重要原因。
【在 w***g 的大作中提到】 : 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的 : 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用 : java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的 : ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决 : 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也 : 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
|
g*****g 发帖数: 34805 | 7 绝大多数开发追求的是性能足够好的最快途径。而不是性能最好。所以才会从汇编到 C
. 同样的原因 Java在 web不敌各种脚步语言。 |
e********3 发帖数: 18578 | 8 为了追求30%的性能提高,花几倍的时间开发测试和维护,这只有geek当经理才会做这
种决定,这就像挑篮球运动员一样,跳的最高的肯定不是最牛的,而要从多方面考虑,
这就是所谓的大局观,也是区分geek和insightful leader的区别。
C
【在 g*****g 的大作中提到】 : 绝大多数开发追求的是性能足够好的最快途径。而不是性能最好。所以才会从汇编到 C : . 同样的原因 Java在 web不敌各种脚步语言。
|
T********i 发帖数: 2416 | 9 为什么一定是30%性能提高?能不能是5倍10倍?
【在 e********3 的大作中提到】 : 为了追求30%的性能提高,花几倍的时间开发测试和维护,这只有geek当经理才会做这 : 种决定,这就像挑篮球运动员一样,跳的最高的肯定不是最牛的,而要从多方面考虑, : 这就是所谓的大局观,也是区分geek和insightful leader的区别。 : : C
|
l*********s 发帖数: 5409 | 10 there is a caveat though. Although the speed limit of java is only several
folds lower than c/c++, to achieve the potential, it is much much harder in
java than
in c/c++.
【在 g*****g 的大作中提到】 : 你这个虽然整体说得不错,但也太夸张了。不重复跑的东西,那需要极致性能。重复跑 : 的东西,启动时间基本可以忽略不计。大部分 benchmark C 也不过比 Java快一倍而已 : 。也就是说同样的算法,明年的机器 Java可以跟 今年的机器跑 C一样快。 : 算法的时间要求是有限的,机器变快暂时还是继续的,这才是 C++没落的重要原因。
|
|
|
z****e 发帖数: 54598 | 11 这个很容易看
小东西在乎启动时间
越小越在乎
你要是用微波炉上网,那内存得斤斤计较
因为就那点内存
但是如果你随便找个server做点服务
那你跑去算那点启动时间,那就是脑子进水了
必要时候预热一下有啥大不了的
spring启动就不快,google做了一个guice出来
说启动快很多,结果没啥人用
【在 w***g 的大作中提到】 : 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的 : 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用 : java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的 : ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决 : 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也 : 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
|
z****e 发帖数: 54598 | 12 搞得c++里面得对象不会慢一样
干脆指令编程算了,写汇编比较好
还记得清华那个笑话吗?
我今天开始磨,明天磨一个cpu出来
in
【在 l*********s 的大作中提到】 : there is a caveat though. Although the speed limit of java is only several : folds lower than c/c++, to achieve the potential, it is much much harder in : java than : in c/c++.
|
l*********s 发帖数: 5409 | 13 the difference between assembly and c++ is much narrow than c++ and java.
The former is 10~20%, but latter is on the order of magnitude. 2~3 folds
slowness is just an ideal/academic setting, we are lazy, especially java
coders. The bottom is you cannot count on java's speed unless it is really
trivial work.
【在 z****e 的大作中提到】 : 搞得c++里面得对象不会慢一样 : 干脆指令编程算了,写汇编比较好 : 还记得清华那个笑话吗? : 我今天开始磨,明天磨一个cpu出来 : : in
|
z****e 发帖数: 54598 | 14 marginal benefits递减
我没觉得我需要那么快的东西
我现在用java写个游戏都不会有lag
挺好,游戏顺畅是我需要速度的上限
再快对我来说意义实在是很小
我也不认为需要比游戏刷新频率更快的东西有多大的市场
【在 l*********s 的大作中提到】 : the difference between assembly and c++ is much narrow than c++ and java. : The former is 10~20%, but latter is on the order of magnitude. 2~3 folds : slowness is just an ideal/academic setting, we are lazy, especially java : coders. The bottom is you cannot count on java's speed unless it is really : trivial work.
|
T********i 发帖数: 2416 | 15 你觉得你不需要,别人就都不需要了?
真奇怪世界上竟然还有你这种玩意儿。
【在 z****e 的大作中提到】 : marginal benefits递减 : 我没觉得我需要那么快的东西 : 我现在用java写个游戏都不会有lag : 挺好,游戏顺畅是我需要速度的上限 : 再快对我来说意义实在是很小 : 我也不认为需要比游戏刷新频率更快的东西有多大的市场
|
z****e 发帖数: 54598 | 16 哈哈,那是,你们五年硕士需要
五年我可以part time下三个硕士
这就是水平的差距,垃圾,就你这种水平还敢搞人肉
也不撒尿照照自己啥水平
【在 T********i 的大作中提到】 : 你觉得你不需要,别人就都不需要了? : 真奇怪世界上竟然还有你这种玩意儿。
|
g*********e 发帖数: 14401 | 17 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做
虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个
demand。没有最好只有更好。
做做biz logic么啥语言都不是问题 |
z****e 发帖数: 54598 | 18 这种东西,要把计算负载给分流掉
现在主要是科学计算比较耗时间
一般的应用,都有办法分流
比较难搞的是3d图像,其它都还好
2d只要找个ui线程负责欺骗眼睛就好了
别打断这个线程,剩下都好办
理论上没有最好只有更好
但是对于服务业来说,人的感官有一个极限
比如2d游戏,90帧其实足够了,你把图像刷新做到900帧
吊不吊?很吊
但是问题是,人感觉不出来差异,市场价值就没有多少了
纯粹民用的东西,很多时候是直接以人的感官为主要参考
要做
【在 g*********e 的大作中提到】 : 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做 : 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个 : demand。没有最好只有更好。 : 做做biz logic么啥语言都不是问题
|
w***g 发帖数: 5958 | 19 C++用模板类处理一般情况,然后specialize特殊可以优化的特例,这个C无论如何也做
不到吧。
【在 c****3 的大作中提到】 : 还是个习惯问题。C简洁明了,为大多数人喜欢。 : 不仅开源项目用C的最多,各种操作系统算是大项目,用C一样可以做的很成功。 : C++主要是大公司喜欢,还有喜欢面向对象的人在用。
|
z****e 发帖数: 54598 | 20 赚钱跟搞科研是两回事
赚钱的话一定要贴近客户需求
客户要什么,你就做什么,当然这个客户包括你自己
我的哲学就是,我喜欢玩的东西,我相信别人也喜欢
所以我做我喜欢的东西,以满足我自身需要为主要目标
然后再推而广之
这就是那个啥mitbbsmj说的
纯技术创业,其实风险最大
满足客户需求为主要目标的创业,其实最容易赚钱
这就是为什么我认为超过人感官极限的东西
其市场价值相对小的原因
当然这只是民用市场,你要搞什么军工那些,那是另外一回事
一般人也接触不到军工这些
要做
【在 g*********e 的大作中提到】 : 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做 : 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个 : demand。没有最好只有更好。 : 做做biz logic么啥语言都不是问题
|
|
|
g*****g 发帖数: 34805 | 21 On the contrary, it's much harder to achieve the potential on C++ side.
JIT does a lot of optimization not achievable by average C++ programmers.
in
【在 l*********s 的大作中提到】 : there is a caveat though. Although the speed limit of java is only several : folds lower than c/c++, to achieve the potential, it is much much harder in : java than : in c/c++.
|
g*****g 发帖数: 34805 | 22 我们做的项目都是24×7跑的。要减少时间,单机能挖掘的有效,看看能不能机群并行
有效得多。
要做
【在 g*********e 的大作中提到】 : 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做 : 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个 : demand。没有最好只有更好。 : 做做biz logic么啥语言都不是问题
|
W********1 发帖数: 246 | 23 牛
【在 z****e 的大作中提到】 : 这种东西,要把计算负载给分流掉 : 现在主要是科学计算比较耗时间 : 一般的应用,都有办法分流 : 比较难搞的是3d图像,其它都还好 : 2d只要找个ui线程负责欺骗眼睛就好了 : 别打断这个线程,剩下都好办 : 理论上没有最好只有更好 : 但是对于服务业来说,人的感官有一个极限 : 比如2d游戏,90帧其实足够了,你把图像刷新做到900帧 : 吊不吊?很吊
|
g*********e 发帖数: 14401 | 24
你又扯到集群并行上去了。哪有那么容易集群。
【在 g*****g 的大作中提到】 : 我们做的项目都是24×7跑的。要减少时间,单机能挖掘的有效,看看能不能机群并行 : 有效得多。 : : 要做
|
c****3 发帖数: 10787 | 25 写程序是为了解决实际问题。语言特性,这个你做得到,它做不到,对解决实际问题没
有意义。
C++的好处是封装,面向对象设计。但是缺点是可以用的适合C++的库太少。基本操作系
统底层的库都是C的接口,C++用还得封装,工作量也不少。不封装直接用,和直接用C
写程序也差不多了。
举个例子,SSH是常用功能,C++封装SSH的库很难找到。加密库最常用的openssl也是用
C写的,要用还得自己封装。或者找个C++的库Crypto++,因为用的人少,SSL的兼容性
也不让人放心。
所以很多情况还是用C写程序最方便,因为适合C的库到处都有。
【在 w***g 的大作中提到】 : C++用模板类处理一般情况,然后specialize特殊可以优化的特例,这个C无论如何也做 : 不到吧。
|
b*******s 发帖数: 5216 | 26 所有c库c++都能用
C
【在 c****3 的大作中提到】 : 写程序是为了解决实际问题。语言特性,这个你做得到,它做不到,对解决实际问题没 : 有意义。 : C++的好处是封装,面向对象设计。但是缺点是可以用的适合C++的库太少。基本操作系 : 统底层的库都是C的接口,C++用还得封装,工作量也不少。不封装直接用,和直接用C : 写程序也差不多了。 : 举个例子,SSH是常用功能,C++封装SSH的库很难找到。加密库最常用的openssl也是用 : C写的,要用还得自己封装。或者找个C++的库Crypto++,因为用的人少,SSL的兼容性 : 也不让人放心。 : 所以很多情况还是用C写程序最方便,因为适合C的库到处都有。
|
T********i 发帖数: 2416 | 27 看你写啥了。除非你要做开源大项目。引出的接口简单,very well defined。这种当
然是用C。
终端应用。甚至像我这种特殊的应用库,当然选C++。项目组织管理都简单。而且代码
量显著减少。不用C++才有问题。
C
【在 c****3 的大作中提到】 : 写程序是为了解决实际问题。语言特性,这个你做得到,它做不到,对解决实际问题没 : 有意义。 : C++的好处是封装,面向对象设计。但是缺点是可以用的适合C++的库太少。基本操作系 : 统底层的库都是C的接口,C++用还得封装,工作量也不少。不封装直接用,和直接用C : 写程序也差不多了。 : 举个例子,SSH是常用功能,C++封装SSH的库很难找到。加密库最常用的openssl也是用 : C写的,要用还得自己封装。或者找个C++的库Crypto++,因为用的人少,SSL的兼容性 : 也不让人放心。 : 所以很多情况还是用C写程序最方便,因为适合C的库到处都有。
|
c****3 发帖数: 10787 | 28 C++里当然可以用C的API,但是变成混杂模式了,一部分代码是面向对象,一部分不是。
还不如直接用C写,看着清晰明了。
【在 b*******s 的大作中提到】 : 所有c库c++都能用 : : C
|
b*******s 发帖数: 5216 | 29 c++为什么要纯oo?
又不是java
再说套个namespace有多难,几行代码
是。
【在 c****3 的大作中提到】 : C++里当然可以用C的API,但是变成混杂模式了,一部分代码是面向对象,一部分不是。 : 还不如直接用C写,看着清晰明了。
|
n****l 发帖数: 1739 | 30 like linus said, you do not need a whole new language to solve those issues.
they can be implemented relatively cleanly in c.
if you want to solve the biggest issues in c, you need to invent
java/c# kind of run time.
not
【在 l*********s 的大作中提到】 : type safety, encapsulation, these benefits don't cost performance so why not : using c++?
|
|
|
c****3 发帖数: 10787 | 31 所以很多C++代码,都是轻量级的OO,看着和C代码差不多。
那为什么要用C++,不直接用C,完全是个人喜好了。
【在 b*******s 的大作中提到】 : c++为什么要纯oo? : 又不是java : 再说套个namespace有多难,几行代码 : : 是。
|
T********i 发帖数: 2416 | 32 如果用C++代码量减一半,你用不用?
【在 c****3 的大作中提到】 : 所以很多C++代码,都是轻量级的OO,看着和C代码差不多。 : 那为什么要用C++,不直接用C,完全是个人喜好了。
|
b*******s 发帖数: 5216 | 33 现在其实oo不是c++的重点了
两种主要的风格,一个是带类的c
另一个就是模版编程
前者一直是和c混合的系统编程方式
后者是高性能计算的主要方式
其实更近似于函数式编程
【在 c****3 的大作中提到】 : 所以很多C++代码,都是轻量级的OO,看着和C代码差不多。 : 那为什么要用C++,不直接用C,完全是个人喜好了。
|
b*******s 发帖数: 5216 | 34 新标准下有时能省八九成代码
生产率比c高一大截子
性能上在很多情况下也高于c
【在 T********i 的大作中提到】 : 如果用C++代码量减一半,你用不用?
|
w***g 发帖数: 5958 | 35 关键是我觉得C++的代码量比java还少,甚至有时候比python都少。
【在 b*******s 的大作中提到】 : 新标准下有时能省八九成代码 : 生产率比c高一大截子 : 性能上在很多情况下也高于c
|
b*******s 发帖数: 5216 | 36 主要是学习曲线长,比python少的情况不多,一般的我们还是喜欢用python写
不过这版上大多数批评c++的,其实基本上不知道什么现代c++的东西
就是在胡说八道
【在 w***g 的大作中提到】 : 关键是我觉得C++的代码量比java还少,甚至有时候比python都少。
|
f*******5 发帖数: 10321 | 37 有的crypto实现要用了全局变量,多线程时就不能直接使
【在 b*******s 的大作中提到】 : c++为什么要纯oo? : 又不是java : 再说套个namespace有多难,几行代码 : : 是。
|
T********i 发帖数: 2416 | 38 C支持宏。C++的模板灵活性Java根本不能比。代码量比Java少没啥奇怪的。
【在 w***g 的大作中提到】 : 关键是我觉得C++的代码量比java还少,甚至有时候比python都少。
|
b*******s 发帖数: 5216 | 39 这是这个库的问题,不能重入算什么设计
【在 f*******5 的大作中提到】 : 有的crypto实现要用了全局变量,多线程时就不能直接使
|
c****3 发帖数: 10787 | 40 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了
问题,你还得追到这些库里,去看库的代码。
【在 b*******s 的大作中提到】 : 新标准下有时能省八九成代码 : 生产率比c高一大截子 : 性能上在很多情况下也高于c
|
|
|
t****t 发帖数: 6806 | 41 我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架
的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框
架, 用得很爽, 但是我也能理解为什么有人不喜欢.
【在 b*******s 的大作中提到】 : 主要是学习曲线长,比python少的情况不多,一般的我们还是喜欢用python写 : 不过这版上大多数批评c++的,其实基本上不知道什么现代c++的东西 : 就是在胡说八道
|
w***g 发帖数: 5958 | 42 不用指针想出memory leak都难吧。现在写C++程序除了函数传引用以外已经很少需要指
针了。其实传引用用指针也只是为了看的清楚,不然传引用也只要传引用就可以了。
【在 c****3 的大作中提到】 : 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了 : 问题,你还得追到这些库里,去看库的代码。
|
T********i 发帖数: 2416 | 43 一般有stack trace就差不多了。
迄今我靠stack trace都搞定了。
其实,如果实现对头。一个大系统,new和delete的数量板手指都数出来。至少我的系
统是这样。
【在 c****3 的大作中提到】 : 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了 : 问题,你还得追到这些库里,去看库的代码。
|
f*******5 发帖数: 10321 | 44 这是c的一现实。而且简单oo封装了就能使,不需要考虑设计。
【在 b*******s 的大作中提到】 : 这是这个库的问题,不能重入算什么设计
|
t****t 发帖数: 6806 | 45 从滥用来说, C++并不比C更容易被滥用. 如果稍微强制一些编译开关或者代码要求, 很
多东西在编译期就能发现.
【在 c****3 的大作中提到】 : 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了 : 问题,你还得追到这些库里,去看库的代码。
|
z****e 发帖数: 54598 | 46 话说只要是自己写的库,有用得不爽的么?
不管什么语言
【在 t****t 的大作中提到】 : 我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架 : 的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框 : 架, 用得很爽, 但是我也能理解为什么有人不喜欢.
|
T********i 发帖数: 2416 | 47 你的框架也是基本自用吧?
通用框架,除了boost以外,基本也做不大。
其实,我现在一直纠结要不要把boost依赖性也去掉。
【在 t****t 的大作中提到】 : 我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架 : 的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框 : 架, 用得很爽, 但是我也能理解为什么有人不喜欢.
|
b*******s 发帖数: 5216 | 48 保持好的coding convention
而且新标准的资源管理,大幅度简化了这方面的要求,
另外就是吸收一些unix的好的思想,现在soa也是,就是一个功能只做一件事
另外要习惯写单元测试
关于调试,在logging方面,新标准也有帮助,比如c11过来的宏
以前在某个医疗企业时我们都是自己做内存池
带上一些调试功能,有问题也一下就发现了
【在 c****3 的大作中提到】 : 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了 : 问题,你还得追到这些库里,去看库的代码。
|
w***g 发帖数: 5958 | 49 虽然boost里已经有了,但还是要说C++11的thread支持很好用啊, 里面async, future
那些东西用起来非常干净,手工开thread都省了。可惜现在gcc还有问题,只能先用
boost里的同名对象先顶着,然后说服自己这个是C++11。
【在 t****t 的大作中提到】 : 我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架 : 的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框 : 架, 用得很爽, 但是我也能理解为什么有人不喜欢.
|
t****t 发帖数: 6806 | 50 不能算完全自用, 很多模块是同事写的. 问题是做EE的不太会写代码, 我得把很多东西
包装好, 所以框架里的东西越来越多了.
【在 T********i 的大作中提到】 : 你的框架也是基本自用吧? : 通用框架,除了boost以外,基本也做不大。 : 其实,我现在一直纠结要不要把boost依赖性也去掉。
|
|
|
c****3 发帖数: 10787 | 51 C和C++的程序,memory leak啥时候都是家常便饭。
其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了,
stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象
和封装,就更费劲了。
【在 w***g 的大作中提到】 : 不用指针想出memory leak都难吧。现在写C++程序除了函数传引用以外已经很少需要指 : 针了。其实传引用用指针也只是为了看的清楚,不然传引用也只要传引用就可以了。
|
b*******s 发帖数: 5216 | 52 一些情况下强制比如把warning当error,在用模版时可能会有些麻烦
尤其是用别人的库
【在 t****t 的大作中提到】 : 从滥用来说, C++并不比C更容易被滥用. 如果稍微强制一些编译开关或者代码要求, 很 : 多东西在编译期就能发现.
|
b*******s 发帖数: 5216 | 53 boost就是stl unstable
留着问题也不大,将来porting也不难
【在 T********i 的大作中提到】 : 你的框架也是基本自用吧? : 通用框架,除了boost以外,基本也做不大。 : 其实,我现在一直纠结要不要把boost依赖性也去掉。
|
t****t 发帖数: 6806 | 54 memory leak算是最好调试的一个东西了, 不知道有啥可抱怨的. 又不是没有工具.
【在 c****3 的大作中提到】 : C和C++的程序,memory leak啥时候都是家常便饭。 : 其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了, : stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象 : 和封装,就更费劲了。
|
T********i 发帖数: 2416 | 55 我就是这个意思。是公司内部用。
其实还应该算终端系统。
这种情况下应该无脑上C++。
【在 t****t 的大作中提到】 : 不能算完全自用, 很多模块是同事写的. 问题是做EE的不太会写代码, 我得把很多东西 : 包装好, 所以框架里的东西越来越多了.
|
t****t 发帖数: 6806 | 56 用"系统"include的时候忽略warning不是很容易的事情么?
【在 b*******s 的大作中提到】 : 一些情况下强制比如把warning当error,在用模版时可能会有些麻烦 : 尤其是用别人的库
|
b*******s 发帖数: 5216 | 57 你用shared_ptr包一下很难吗?
我们现在基本不用native pointer了
正在讨论要不要作为编码规范
【在 c****3 的大作中提到】 : C和C++的程序,memory leak啥时候都是家常便饭。 : 其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了, : stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象 : 和封装,就更费劲了。
|
b*******s 发帖数: 5216 | 58 对,是这样
【在 t****t 的大作中提到】 : 用"系统"include的时候忽略warning不是很容易的事情么?
|
t****t 发帖数: 6806 | 59 我们也是没办法. 用C难度太大, 用别的效率太低, 一个模拟跑几天改改参数又跑几天,
能省一半时间也是好的. 这种iterative的东西还没法并行做.
【在 T********i 的大作中提到】 : 我就是这个意思。是公司内部用。 : 其实还应该算终端系统。 : 这种情况下应该无脑上C++。
|
T********i 发帖数: 2416 | 60 其实如果只是模拟,建议你试试.Net。
理论上,.Net runtime的效率Java VM没法比。实际上也是这样。
天,
【在 t****t 的大作中提到】 : 我们也是没办法. 用C难度太大, 用别的效率太低, 一个模拟跑几天改改参数又跑几天, : 能省一半时间也是好的. 这种iterative的东西还没法并行做.
|
|
|
t****t 发帖数: 6806 | 61 有windows才行.
【在 T********i 的大作中提到】 : 其实如果只是模拟,建议你试试.Net。 : 理论上,.Net runtime的效率Java VM没法比。实际上也是这样。 : : 天,
|
T********i 发帖数: 2416 | 62 有Windows很困难吗?
反正我这人是technology whore。谁的方案针对这个具体项目最优,我就跟谁走。
【在 t****t 的大作中提到】 : 有windows才行.
|
g*****g 发帖数: 34805 | 63 这是不可能的,java随便找个轮子,代码量就下来了。
【在 w***g 的大作中提到】 : 关键是我觉得C++的代码量比java还少,甚至有时候比python都少。
|
b*******s 发帖数: 5216 | 64 就找个给list 赋值的吧
c++代码还是
for (auto & e : lst)
{
e = 10;
}
【在 g*****g 的大作中提到】 : 这是不可能的,java随便找个轮子,代码量就下来了。
|
g*****g 发帖数: 34805 | 65 这么简单的东西,没人去造轮子。当然如果你有需要可以自己写一个static function。
【在 b*******s 的大作中提到】 : 就找个给list 赋值的吧 : c++代码还是 : for (auto & e : lst) : { : e = 10; : }
|
b*******s 发帖数: 5216 | 66 那我给个复杂一点的
要不就实现个ping remote host怎么样?
function。
【在 g*****g 的大作中提到】 : 这么简单的东西,没人去造轮子。当然如果你有需要可以自己写一个static function。
|
g*****g 发帖数: 34805 | 67 就举前面提过的例子,ssh远程登录。jsch就可以,功能很强大。实现个SFTP就是几十
行的事情。
【在 b*******s 的大作中提到】 : 那我给个复杂一点的 : 要不就实现个ping remote host怎么样? : : function。
|
b*******s 发帖数: 5216 | 68 我不认为逻辑上行得通
我们要证明的是c++不可能比java代码短
而不是c++总是比java代码短
是不是?
【在 g*****g 的大作中提到】 : 就举前面提过的例子,ssh远程登录。jsch就可以,功能很强大。实现个SFTP就是几十 : 行的事情。
|
b*******s 发帖数: 5216 | 69 或者再来个终极复杂的
实现个jvm?
【在 g*****g 的大作中提到】 : 就举前面提过的例子,ssh远程登录。jsch就可以,功能很强大。实现个SFTP就是几十 : 行的事情。
|
g*****g 发帖数: 34805 | 70 就你举的这个例子,也没看出比java短呀,不就一样长吗。
【在 b*******s 的大作中提到】 : 我不认为逻辑上行得通 : 我们要证明的是c++不可能比java代码短 : 而不是c++总是比java代码短 : 是不是?
|
|
|
b*******s 发帖数: 5216 | 71 你贴个java的?
【在 g*****g 的大作中提到】 : 就你举的这个例子,也没看出比java短呀,不就一样长吗。
|
g*****g 发帖数: 34805 | 72 for(int i = 0; i< l.size(); i++){
l.set(i, 10);
}
【在 b*******s 的大作中提到】 : 你贴个java的?
|
t****t 发帖数: 6806 | 73 当然很困难, 公司的机器都是linux的, 不可能说为了这个再买一批机器. 用.net也没
有什么显而易见的好处, 做EE的你要招个会写C的容易, 会写C++的也不太难, 会写.net
的就少了.
【在 T********i 的大作中提到】 : 有Windows很困难吗? : 反正我这人是technology whore。谁的方案针对这个具体项目最优,我就跟谁走。
|
b*******s 发帖数: 5216 | 74 这叫一样?
呵呵,要不我们数数字数?
另外,你第一行可以拿掉
【在 g*****g 的大作中提到】 : for(int i = 0; i< l.size(); i++){ : l.set(i, 10); : }
|
b*******s 发帖数: 5216 | 75 vm
net
【在 t****t 的大作中提到】 : 当然很困难, 公司的机器都是linux的, 不可能说为了这个再买一批机器. 用.net也没 : 有什么显而易见的好处, 做EE的你要招个会写C的容易, 会写C++的也不太难, 会写.net : 的就少了.
|
g*****g 发帖数: 34805 | 76 一般也就数个行数,这货java不要括号了也就一行,你还想怎样?
【在 b*******s 的大作中提到】 : 这叫一样? : 呵呵,要不我们数数字数? : 另外,你第一行可以拿掉
|
b*******s 发帖数: 5216 | 77 或者这个就算一样,我们来做个最大堆排序如何
【在 g*****g 的大作中提到】 : for(int i = 0; i< l.size(); i++){ : l.set(i, 10); : }
|
g*****g 发帖数: 34805 | 78 这东西都是现成类库,你真要比?
【在 b*******s 的大作中提到】 : 或者这个就算一样,我们来做个最大堆排序如何
|
T********i 发帖数: 2416 | 79 你跟这个连缓冲都不懂的烂人纠缠啥?
还号称谁的系统带缓冲都是抄袭丫的架构。
没有OS和网卡的缓冲,丫的C*连一个操作都做不了。
【在 b*******s 的大作中提到】 : 或者这个就算一样,我们来做个最大堆排序如何
|
z****e 发帖数: 54598 | 80 比你这种五年才混一个烂校的硕士那是要强到不知道哪里去le
切记,去fbi告我诽谤你,我等着
【在 T********i 的大作中提到】 : 你跟这个连缓冲都不懂的烂人纠缠啥? : 还号称谁的系统带缓冲都是抄袭丫的架构。 : 没有OS和网卡的缓冲,丫的C*连一个操作都做不了。
|
|
|
g*****g 发帖数: 34805 | 81 口口声声前端 cache机,一打脸就是网卡缓存。无敌了。
【在 z****e 的大作中提到】 : 比你这种五年才混一个烂校的硕士那是要强到不知道哪里去le : 切记,去fbi告我诽谤你,我等着
|
b*******s 发帖数: 5216 | 82 好啊,非priority heap如何?
【在 g*****g 的大作中提到】 : 这东西都是现成类库,你真要比?
|
T********i 发帖数: 2416 | 83 hoho。原来你以为我用网卡缓存存应用层消息?
你老板要知道了一定会表扬你。
【在 g*****g 的大作中提到】 : 口口声声前端 cache机,一打脸就是网卡缓存。无敌了。
|
g*****g 发帖数: 34805 | 84 你也知道丢人了,跟着我屁股后面抄。一打脸 cache机变成网卡自带了?你丫真有脸。
【在 T********i 的大作中提到】 : hoho。原来你以为我用网卡缓存存应用层消息? : 你老板要知道了一定会表扬你。
|
z****e 发帖数: 54598 | |
T********i 发帖数: 2416 | 86 哈哈。你丫要是真认为自己发明了缓存,也要读读书,把缓存先学明白。
【在 g*****g 的大作中提到】 : 你也知道丢人了,跟着我屁股后面抄。一打脸 cache机变成网卡自带了?你丫真有脸。
|
z****e 发帖数: 54598 | 87 location
阿三对cpp的兴趣已经超过天朝了 |
g*****g 发帖数: 34805 | 88 我可没发明,前后分离的架构遍地都是,只不过傻逼不懂罢了。
【在 T********i 的大作中提到】 : 哈哈。你丫要是真认为自己发明了缓存,也要读读书,把缓存先学明白。
|
T********i 发帖数: 2416 | 89 啊?现在承认我的架构好了么?怎么又变成抄袭你的了?
你能做出我1/10的性能么?
就这还好意思开牙?你这样的估计得打一辈子光棍,那个女人跟了你这个无耻之徒算是
倒了八辈子霉。
【在 g*****g 的大作中提到】 : 我可没发明,前后分离的架构遍地都是,只不过傻逼不懂罢了。
|
g*****g 发帖数: 34805 | 90 你就一个太监计数器,有个破架构。
活该一辈子做太监。
【在 T********i 的大作中提到】 : 啊?现在承认我的架构好了么?怎么又变成抄袭你的了? : 你能做出我1/10的性能么? : 就这还好意思开牙?你这样的估计得打一辈子光棍,那个女人跟了你这个无耻之徒算是 : 倒了八辈子霉。
|
|
|
T********i 发帖数: 2416 | 91 你给俺们说说,你这样的有女人没有?
我严重怀疑你没女人,因为你丫实在太猥琐了。
【在 g*****g 的大作中提到】 : 你就一个太监计数器,有个破架构。 : 活该一辈子做太监。
|
g*****g 发帖数: 34805 | 92 问你妈就知道了,当年真该把你射墙上。
【在 T********i 的大作中提到】 : 你给俺们说说,你这样的有女人没有? : 我严重怀疑你没女人,因为你丫实在太猥琐了。
|
l*********s 发帖数: 5409 | 93 http://programmers.stackexchange.com/questions/29344/jit-compil
【在 g*****g 的大作中提到】 : On the contrary, it's much harder to achieve the potential on C++ side. : JIT does a lot of optimization not achievable by average C++ programmers. : : in
|
T********i 发帖数: 2416 | 94 别回避问题了。这么简单的问题还需要PA么?
有就是有,没有就是没有。
我老人家认为你没有。
【在 g*****g 的大作中提到】 : 问你妈就知道了,当年真该把你射墙上。
|
g*****g 发帖数: 34805 | 95 Why don't you look at this paper? And you see without deep optimization,
Java beats C++ easily. 134 sec vs. 197 in Java's favor.
https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf
"We find that in regards to performance, C++ wins out by a large
margin. However, it also required the most extensive tuning efforts, many of
which were done at a level of sophistication that would not be available to
the average programmer."
【在 l*********s 的大作中提到】 : http://programmers.stackexchange.com/questions/29344/jit-compil
|
c*********e 发帖数: 16335 | 96 php,java,c#的framework太多了,一个项目,骨架马上就搭好了。现在的framework,不
管是php,java,c#,都是mvc架构,一个project里面能同时把web application和web
api都写成了。然后你不管是用手机来连上这个api,还是其它,反正就很容易了。
framework帮着搞了security方面,真是太容易了。
程序员,说白了就是干copy,paste的活。
【在 w***g 的大作中提到】 : 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的 : 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用 : java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的 : ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决 : 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也 : 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
|
z****e 发帖数: 54598 | 97 妹子,去这里点评一下
http://www.mitbbs.com/article_t/Military/41148263.html
【在 c*********e 的大作中提到】 : php,java,c#的framework太多了,一个项目,骨架马上就搭好了。现在的framework,不 : 管是php,java,c#,都是mvc架构,一个project里面能同时把web application和web : api都写成了。然后你不管是用手机来连上这个api,还是其它,反正就很容易了。 : framework帮着搞了security方面,真是太容易了。 : 程序员,说白了就是干copy,paste的活。
|
l*********s 发帖数: 5409 | 98 yes you can, but in a very ugly way and no appreciable gains in performance.
so why bother?
issues.
【在 n****l 的大作中提到】 : like linus said, you do not need a whole new language to solve those issues. : they can be implemented relatively cleanly in c. : if you want to solve the biggest issues in c, you need to invent : java/c# kind of run time. : : not
|
l*********s 发帖数: 5409 | 99 You are talking about theory, the post I referenced is talking about reality.
I am sorry that I am much more interested in reality than in theory. : -)
by the way, it is not bashing against java, since I am very
interested in learning java (for increasing my marketability).
===================================================================
"From a theoretical viewpoint, there's honestly not as much real controversy
as it might look like. What's actually happened is pretty simple: Java
advocates (it seems to be mostly Java advocates, anyway) spent years trying
to come up with benchmarks that would show Java beating C and/or C++. In a
few cases, they doctored benchmarks in pretty obvious ways to get the
results they wanted, but they had to manipulate the benchmarks in pretty
obvious ways to accomplish that. Since they couldn't get the results they
wanted from real code, they started to follow an alternate route: writing
about the possibility that a JIT could give performance benefits under at
least some circumstances.
In doing this, however, they generally ignored one crucial point: the
majority of optimization is independent of the target processor --
especially the most important (and, unfortunately, the most expensive)
optimizations. This means JIT compilers have relatively little benefit
compared to up-front compilers (even in theory), and they have a fairly high
cost compared to up-front compilers, because the user has to wait while any
expensive optimization happens. Because of that, most JIT compilers are
pretty much forced to skip doing the most expensive optimizations, because
in nearly every case they cost more than they (even hope to) gain. In the
case of an up-front compiler, you can amortize the cost of that expensive
optimization across many executions, but with a JIT compiler you have to
repeat it at (essentially) every execution instead. As a result
optimizations that are entirely practical for an up-front compiler become
completely useless for a JIT compiler."
of
to
【在 g*****g 的大作中提到】 : Why don't you look at this paper? And you see without deep optimization, : Java beats C++ easily. 134 sec vs. 197 in Java's favor. : https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf : "We find that in regards to performance, C++ wins out by a large : margin. However, it also required the most extensive tuning efforts, many of : which were done at a level of sophistication that would not be available to : the average programmer."
|
c*********e 发帖数: 16335 | |
|
|
c*********e 发帖数: 16335 | |
g*****g 发帖数: 34805 | 102 No, your reference is talking about theory, no performance benchmark to back
it up. The benchmark I showed from Google wasn't a pro-java paper, in fact
the developers know C++ better than Java.
The more complicated your system is, the less likely you can achieve any
meaningful optimization over Java by code tuning. A simple benchmark like
this is favoring C++, not the other way around.
reality.
controversy
trying
【在 l*********s 的大作中提到】 : You are talking about theory, the post I referenced is talking about reality. : I am sorry that I am much more interested in reality than in theory. : -) : by the way, it is not bashing against java, since I am very : interested in learning java (for increasing my marketability). : =================================================================== : "From a theoretical viewpoint, there's honestly not as much real controversy : as it might look like. What's actually happened is pretty simple: Java : advocates (it seems to be mostly Java advocates, anyway) spent years trying : to come up with benchmarks that would show Java beating C and/or C++. In a : few cases, they doctored benchmarks in pretty obvious ways to get the
|
z****e 发帖数: 54598 | 103 咳,这年头哪里有一定住在哪里的道理
去哪不都正常么?
【在 c*********e 的大作中提到】 : 记得你好像在日本还是袋鼠国吧?
|
l*********s 发帖数: 5409 | 104 Simple code is easy to tune, not much effort and usually solution is obvious
. That is why benchmark in java benefits more form such effort; which is
seldom realized in real world complicated system .
back
fact
【在 g*****g 的大作中提到】 : No, your reference is talking about theory, no performance benchmark to back : it up. The benchmark I showed from Google wasn't a pro-java paper, in fact : the developers know C++ better than Java. : The more complicated your system is, the less likely you can achieve any : meaningful optimization over Java by code tuning. A simple benchmark like : this is favoring C++, not the other way around. : : reality. : controversy : trying
|
N********n 发帖数: 8363 | 105
TEMPLATE一来更乱了。以前用过开源的TEMPLATE库,说是开源的, 出错了调
试起来巨费劲,基本跟闭源没区别。吃过几次螃蟹当就知道了,只要不是你
自己的代码再怎么开源也是折腾。
【在 c****3 的大作中提到】 : C和C++的程序,memory leak啥时候都是家常便饭。 : 其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了, : stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象 : 和封装,就更费劲了。
|
g*****g 发帖数: 34805 | 106 In real world complicated system, simple tuning is possible. Deep tuning is
impossible.
Without deep tuning, C++ can underperform Java, that's what this paper shows
. This is not a religion debate, it's common sense these days.
People are using C++ over Java for real time requirement, lower footprint
etc. Rarely performance these days.
obvious
【在 l*********s 的大作中提到】 : Simple code is easy to tune, not much effort and usually solution is obvious : . That is why benchmark in java benefits more form such effort; which is : seldom realized in real world complicated system . : : back : fact
|
l*********s 发帖数: 5409 | 107 以后肯定有很大改观,大家拭目以待好了。
【在 N********n 的大作中提到】 : : TEMPLATE一来更乱了。以前用过开源的TEMPLATE库,说是开源的, 出错了调 : 试起来巨费劲,基本跟闭源没区别。吃过几次螃蟹当就知道了,只要不是你 : 自己的代码再怎么开源也是折腾。
|
l*********s 发帖数: 5409 | 108 Forget about tuning, c++ is by design to be fast. 3d games are not written
in java, are you suggesting it is because games are simple?
back
fact
【在 g*****g 的大作中提到】 : No, your reference is talking about theory, no performance benchmark to back : it up. The benchmark I showed from Google wasn't a pro-java paper, in fact : the developers know C++ better than Java. : The more complicated your system is, the less likely you can achieve any : meaningful optimization over Java by code tuning. A simple benchmark like : this is favoring C++, not the other way around. : : reality. : controversy : trying
|
q*c 发帖数: 9453 | 109 在微软的时候有个 memory leak bug 我搞了一个月。 c++
10 年, 无数人, 好多 senior, principle, 2 次被当作windows 系统memory leak,
2 次被打回来。各种工具。 partner 损失 5mm.
最后我搞定了,就是内存池的问题。
【在 t****t 的大作中提到】 : memory leak算是最好调试的一个东西了, 不知道有啥可抱怨的. 又不是没有工具.
|
q*c 发帖数: 9453 | 110 当然我得同意, c++ 有的是更难缠得问题。
基本上 看到 java bug 心里就是放松, c++ 就是没谱。
【在 t****t 的大作中提到】 : memory leak算是最好调试的一个东西了, 不知道有啥可抱怨的. 又不是没有工具.
|
|
|
g*****g 发帖数: 34805 | 111 It's because legacy game engines are written in C++ and game companies don't
want to rewrite them.
Library support obviously is a big reason you'd choose one language over
another.
Still, scripting are now used on top of game engines, you can see the trend.
【在 l*********s 的大作中提到】 : Forget about tuning, c++ is by design to be fast. 3d games are not written : in java, are you suggesting it is because games are simple? : : : back : fact
|
z****e 发帖数: 54598 | 112 牛银
【在 q*c 的大作中提到】 : 当然我得同意, c++ 有的是更难缠得问题。 : 基本上 看到 java bug 心里就是放松, c++ 就是没谱。
|
x****u 发帖数: 44466 | 113 靠工具找leak就是找死
【在 q*c 的大作中提到】 : 当然我得同意, c++ 有的是更难缠得问题。 : 基本上 看到 java bug 心里就是放松, c++ 就是没谱。
|
c*********e 发帖数: 16335 | 114 指针确实是把双刃剑,还是java,c#容易些。
,
【在 q*c 的大作中提到】 : 在微软的时候有个 memory leak bug 我搞了一个月。 c++ : 10 年, 无数人, 好多 senior, principle, 2 次被当作windows 系统memory leak, : 2 次被打回来。各种工具。 partner 损失 5mm. : 最后我搞定了,就是内存池的问题。
|
c****3 发帖数: 10787 | 115 复杂项目,程序不crash,不出memory leak是不可能的。就算用smart pointer,你难
道能不用其他库,不使用其他资源,资源也有释放问题。其他系统或库里资源leak,一
样带来memory leak。
Crash的时候,拿着core dump文件debug最费劲,尤其多线程,内存越界这些情况。最
后不可避免要追进其他开源库里去。用C的开源库,还是相对容易看懂,而且大部分情
况,只要看懂出问题的一小块代码是做什么的就行了,这是C直截了当的好处。用C++的
库,实在太费劲,期望想只看一小块代码就够了,很多情况不可能,太抽象的坏处这时
候就暴露出来了。
最后就是劳民伤财,用C++的大项目,想搞得和C做的项目一样稳定,必须上大量QA,化
大量时间。
所以大项目要稳定,如果对性能要求高,最好还是拿C写代码。看那些开源项目就知道
了,用C做的服务器比用C++的服务器要好,并且数量多,稳定性上很容易有差别。
【在 N********n 的大作中提到】 : : TEMPLATE一来更乱了。以前用过开源的TEMPLATE库,说是开源的, 出错了调 : 试起来巨费劲,基本跟闭源没区别。吃过几次螃蟹当就知道了,只要不是你 : 自己的代码再怎么开源也是折腾。
|
z****e 发帖数: 54598 | 116 也不是没有
比如小姜玩的minecraft就是3d的
而且是大量人同时在线的3d游戏哦
【在 l*********s 的大作中提到】 : Forget about tuning, c++ is by design to be fast. 3d games are not written : in java, are you suggesting it is because games are simple? : : : back : fact
|
b*******s 发帖数: 5216 | 117 c++不适合做大项目,早就是定论,没必要反复说了
【在 c****3 的大作中提到】 : 复杂项目,程序不crash,不出memory leak是不可能的。就算用smart pointer,你难 : 道能不用其他库,不使用其他资源,资源也有释放问题。其他系统或库里资源leak,一 : 样带来memory leak。 : Crash的时候,拿着core dump文件debug最费劲,尤其多线程,内存越界这些情况。最 : 后不可避免要追进其他开源库里去。用C的开源库,还是相对容易看懂,而且大部分情 : 况,只要看懂出问题的一小块代码是做什么的就行了,这是C直截了当的好处。用C++的 : 库,实在太费劲,期望想只看一小块代码就够了,很多情况不可能,太抽象的坏处这时 : 候就暴露出来了。 : 最后就是劳民伤财,用C++的大项目,想搞得和C做的项目一样稳定,必须上大量QA,化 : 大量时间。
|
x****u 发帖数: 44466 | 118 大项目都有自己的类似JAVA的对象实现,然后用工具全局扫描代码抓违反规定的,一个
罚20美元。
【在 c****3 的大作中提到】 : 复杂项目,程序不crash,不出memory leak是不可能的。就算用smart pointer,你难 : 道能不用其他库,不使用其他资源,资源也有释放问题。其他系统或库里资源leak,一 : 样带来memory leak。 : Crash的时候,拿着core dump文件debug最费劲,尤其多线程,内存越界这些情况。最 : 后不可避免要追进其他开源库里去。用C的开源库,还是相对容易看懂,而且大部分情 : 况,只要看懂出问题的一小块代码是做什么的就行了,这是C直截了当的好处。用C++的 : 库,实在太费劲,期望想只看一小块代码就够了,很多情况不可能,太抽象的坏处这时 : 候就暴露出来了。 : 最后就是劳民伤财,用C++的大项目,想搞得和C做的项目一样稳定,必须上大量QA,化 : 大量时间。
|
l*********s 发帖数: 5409 | 119 there are many of new c++ game engines, but only 1 in java I am aware of(and
it sucks).
you see, benchmark is nice, but claiming java outperforms c++ does not enjoy
factual support. Until I see a java application in action I would not
accept it just because you say so. :-)
't
trend.
【在 g*****g 的大作中提到】 : It's because legacy game engines are written in C++ and game companies don't : want to rewrite them. : Library support obviously is a big reason you'd choose one language over : another. : Still, scripting are now used on top of game engines, you can see the trend.
|
l*********s 发帖数: 5409 | 120 这个牛在创意,没有几个游戏能画面这么差还能流行。
【在 z****e 的大作中提到】 : 也不是没有 : 比如小姜玩的minecraft就是3d的 : 而且是大量人同时在线的3d游戏哦
|
|
|
T********i 发帖数: 2416 | 121 这个多大项目算大项目?
Unlike previous aircraft, such as the F-22, all software for the F-35 is
written in C++ for faster code development. The Integrity DO-178B real-time
operating system (RTOS) from Green Hills Software runs on COTS Freescale
PowerPC processors.[115] The final Block 3 software for the F-35 is planned
to have 8.6 million lines of software code.[116]
wiki确实提到了crisis。
问题是,上Java就行吗?
【在 b*******s 的大作中提到】 : c++不适合做大项目,早就是定论,没必要反复说了
|
c****3 发帖数: 10787 | 122 有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned
int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有
检查。
出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的,
memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在
memcpy的地方。
这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现,
用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一
行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到
那天去了。
【在 x****u 的大作中提到】 : 大项目都有自己的类似JAVA的对象实现,然后用工具全局扫描代码抓违反规定的,一个 : 罚20美元。
|
z****e 发帖数: 54598 | 123 3d api跟语言什么关系
底层不都是opengl或者directx
directx据说还是opengl一个子集,没怎么搞过不太懂
而opengl你用什么语言调还不是一样的
java就是jogl了,引擎也有不少阿,jmonkey之类的
你是担心3d游戏的gc的停顿会打断游戏进程吗?
and
enjoy
accept
【在 l*********s 的大作中提到】 : there are many of new c++ game engines, but only 1 in java I am aware of(and : it sucks). : you see, benchmark is nice, but claiming java outperforms c++ does not enjoy : factual support. Until I see a java application in action I would not : accept it just because you say so. :-) : : 't : trend.
|
N********n 发帖数: 8363 | 124
小众而已。真追求用户体验还是NATIVE,看看MOBILE平台就知道,各家都不
得不为游戏提供NATIVE借口。否则这里那里卡一下玩家一怒一颗星打上去你
的GAME就别卖了。
【在 z****e 的大作中提到】 : 也不是没有 : 比如小姜玩的minecraft就是3d的 : 而且是大量人同时在线的3d游戏哦
|
z****e 发帖数: 54598 | 125 单独追求画面好的话,3d游戏没有任何优势
2d可以精确到每一个像素,3d行么?
你用3d引擎写一个胧村正我看看
目前水平还达不到,还差得很远
【在 l*********s 的大作中提到】 : 这个牛在创意,没有几个游戏能画面这么差还能流行。
|
g*****g 发帖数: 34805 | 126 I didn't say Java outperforms C++, I said they are in the same ballpark on
application level.
How many Java games run on Android these days and how many need NDK, 3D or
not?
and
enjoy
【在 l*********s 的大作中提到】 : there are many of new c++ game engines, but only 1 in java I am aware of(and : it sucks). : you see, benchmark is nice, but claiming java outperforms c++ does not enjoy : factual support. Until I see a java application in action I would not : accept it just because you say so. :-) : : 't : trend.
|
N********n 发帖数: 8363 | 127
所以说不做类型检查害死人吗。要不我怎么总看不起JS之类的动态语言呢。
【在 c****3 的大作中提到】 : 有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned : int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有 : 检查。 : 出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的, : memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在 : memcpy的地方。 : 这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现, : 用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一 : 行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到 : 那天去了。
|
z****e 发帖数: 54598 | 128 你是担心gc停顿吗?
这个其实用软控制
也就是你在你可以接受gc的时候调用一下system.gc就好了
虽然系统不能保证一定会执行,但是绝大多数时候都会执行
而且你愿意的话,很多时候不释放内存也没啥大不了的
我所有的图片资源就全部不释放,反正也不大
然后等reload时候再加载,虽然说我不喜欢控制内存
但是不得不做时候,还是得做,desktop上就不管了
gc停顿pc机上远不如server上那么严重
而最大的内存块一般都是图片,程序的gc其实小得太多太多
【在 N********n 的大作中提到】 : : 所以说不做类型检查害死人吗。要不我怎么总看不起JS之类的动态语言呢。
|
x****u 发帖数: 44466 | 129 所以说坠机了
time
planned
【在 T********i 的大作中提到】 : 这个多大项目算大项目? : Unlike previous aircraft, such as the F-22, all software for the F-35 is : written in C++ for faster code development. The Integrity DO-178B real-time : operating system (RTOS) from Green Hills Software runs on COTS Freescale : PowerPC processors.[115] The final Block 3 software for the F-35 is planned : to have 8.6 million lines of software code.[116] : wiki确实提到了crisis。 : 问题是,上Java就行吗?
|
x****u 发帖数: 44466 | 130 MS把memcpy在头文件里面就加了警告。
【在 c****3 的大作中提到】 : 有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned : int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有 : 检查。 : 出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的, : memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在 : memcpy的地方。 : 这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现, : 用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一 : 行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到 : 那天去了。
|
|
|
z****e 发帖数: 54598 | 131 问你一个问题
unity3d虽然core engine是c++的
但是接口暴露出来是c#
那用户产生的garbage用什么来collect?
【在 N********n 的大作中提到】 : : 所以说不做类型检查害死人吗。要不我怎么总看不起JS之类的动态语言呢。
|
z****e 发帖数: 54598 | 132 看了下unity,底层也是opengl这些api,如果unity能用c#,那用java也没啥本质区别
,javafx底层也用了opengl,在8版本里面,所以殊途同归,最后都是那些api
The graphics engine uses Direct3D (Windows, Xbox 360), OpenGL (Mac, Windows,
Linux), OpenGL ES (Android, iOS), and proprietary APIs (consoles). |
N********n 发帖数: 8363 | 133
在哪个MODULE产生就由哪个MODULE负责呗。这种跨语言的程序要小心,否则
C++那边丢一个NATIVE EXCEPTION出来没人管到了C#这边也不管程序马上崩。
【在 z****e 的大作中提到】 : 问你一个问题 : unity3d虽然core engine是c++的 : 但是接口暴露出来是c# : 那用户产生的garbage用什么来collect?
|
z****e 发帖数: 54598 | 134 那还是会有gc的停顿
现在这些引擎都往c#上去搞
多少也说明了littlebird的说法有些问题
c#和java在gc这一点上说是同样的东西
【在 N********n 的大作中提到】 : : 在哪个MODULE产生就由哪个MODULE负责呗。这种跨语言的程序要小心,否则 : C++那边丢一个NATIVE EXCEPTION出来没人管到了C#这边也不管程序马上崩。
|
N********n 发帖数: 8363 | 135
GC是原因之一。MANAGE CODE还有一个问题是稍微干点事就生成一大串OBJECT
吃内存,在PC上不是问题到了SERVER和MOBILE上就比较敏感了。
【在 z****e 的大作中提到】 : 你是担心gc停顿吗? : 这个其实用软控制 : 也就是你在你可以接受gc的时候调用一下system.gc就好了 : 虽然系统不能保证一定会执行,但是绝大多数时候都会执行 : 而且你愿意的话,很多时候不释放内存也没啥大不了的 : 我所有的图片资源就全部不释放,反正也不大 : 然后等reload时候再加载,虽然说我不喜欢控制内存 : 但是不得不做时候,还是得做,desktop上就不管了 : gc停顿pc机上远不如server上那么严重 : 而最大的内存块一般都是图片,程序的gc其实小得太多太多
|
b*******s 发帖数: 5216 | 136 这个应该是code review能发现的吧。这错误也太蠢了
【在 c****3 的大作中提到】 : 有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned : int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有 : 检查。 : 出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的, : memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在 : memcpy的地方。 : 这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现, : 用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一 : 行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到 : 那天去了。
|
c****3 发帖数: 10787 | 137 这种code review绝对看不出。
size是根据其他几个变量算的,只是在某些特定情况,才会出现0-1的情况,代码看着
很正常,就是没有考虑会出现0-1这种特定情况。在一个7x24小时运行的服务器程序上
,上面有大量用户,但是发生概率是每隔几天才会出一次,有时几个星期也不发生。所
以基本没法用valgrind找越界。
【在 b*******s 的大作中提到】 : 这个应该是code review能发现的吧。这错误也太蠢了
|
T*********g 发帖数: 496 | 138 不同领域本身对编程语言有不同的要求,我们不用费尽去证明JAVA可以适用于所有的编
程情况。而且现在的趋势是JVM变成平台,动态语言在其上百花齐放,我们可以利用我
们对JVM的了解来进一步丰富我们的编程手段,让程序员的生活变得更容易一点。我个
人看好scala。也许有一天它可以取代JAVA。
't
trend.
【在 g*****g 的大作中提到】 : It's because legacy game engines are written in C++ and game companies don't : want to rewrite them. : Library support obviously is a big reason you'd choose one language over : another. : Still, scripting are now used on top of game engines, you can see the trend.
|
b*******s 发帖数: 5216 | 139 这种常见低级错误,很容易发现,如果真读了代码
【在 c****3 的大作中提到】 : 这种code review绝对看不出。 : size是根据其他几个变量算的,只是在某些特定情况,才会出现0-1的情况,代码看着 : 很正常,就是没有考虑会出现0-1这种特定情况。在一个7x24小时运行的服务器程序上 : ,上面有大量用户,但是发生概率是每隔几天才会出一次,有时几个星期也不发生。所 : 以基本没法用valgrind找越界。
|
T*********g 发帖数: 496 | 140 Java在这种场景的确是不行的。银行交易中高频交易,利用收市时毫秒来套利的场景,
JAVA也不行。其实就和FB底层有很多服务是C++通过Thrift开放出来给其他语言调用一
样,C++在内存效率和速度上还不是JAVA能比的。JAVA的特长是时间和资源不那么敏感
的大规模软件开发,比如淘宝,AMAZON这种。术业有专攻吧,Java目前在BIG DATA还有
云上的火热和这些应用场景还是有关系。
time
planned
【在 T********i 的大作中提到】 : 这个多大项目算大项目? : Unlike previous aircraft, such as the F-22, all software for the F-35 is : written in C++ for faster code development. The Integrity DO-178B real-time : operating system (RTOS) from Green Hills Software runs on COTS Freescale : PowerPC processors.[115] The final Block 3 software for the F-35 is planned : to have 8.6 million lines of software code.[116] : wiki确实提到了crisis。 : 问题是,上Java就行吗?
|
|
|
T*********g 发帖数: 496 | 141 顺便说下SPARK,一个非常好的BIG DATA处理工具使用SCALA写的。STORM,是用JAVA和
CLOSURE写的。如果你对BIG DATA感兴趣,JAVA是绕不开的.
【在 T*********g 的大作中提到】 : 不同领域本身对编程语言有不同的要求,我们不用费尽去证明JAVA可以适用于所有的编 : 程情况。而且现在的趋势是JVM变成平台,动态语言在其上百花齐放,我们可以利用我 : 们对JVM的了解来进一步丰富我们的编程手段,让程序员的生活变得更容易一点。我个 : 人看好scala。也许有一天它可以取代JAVA。 : : 't : trend.
|
v******n 发帖数: 421 | 142 C++的创始人说了,如果你和硬件打交道,或者追求performance,那就用C++,否则
其他语言会适合 |
c****3 发帖数: 10787 | 143 发现不了。计算memcpy 的size是要几个变量做四则运算的,包括减。问题是谁写代码
,每次减之前都要比较一下,是不是会出现减数比被减数大的情况,尤其是四则运算的
。太多这种检查,代码看着很难看。
大家都是assume某个逻辑,减数比被减数大的情况,在这个逻辑里不会发生,所以就不
用在代码里到处检查了。
我说的这个情况,逻辑是根据收到的数据包尺寸,计算UDP里面的某个应用数据的尺寸
,然后复制。正常情况计算都是对的,问题是网络里有时有变形或者corrupt的数据包
,报头尺寸和里面的不一致,逻辑就出问题了。
除非这些极端情况在开始都考虑到,或者不用memcpy,用比较安全不会越界的内存复制
函数。
【在 b*******s 的大作中提到】 : 这种常见低级错误,很容易发现,如果真读了代码
|
z****e 发帖数: 54598 | 144 这根本不是软件的领域
没有硬件的配合,软件怎么写都没用
既然开始倒腾了硬件,直接对硬件下指令显然比包来包去快不少
为什么不?不是追求快么?
【在 T*********g 的大作中提到】 : Java在这种场景的确是不行的。银行交易中高频交易,利用收市时毫秒来套利的场景, : JAVA也不行。其实就和FB底层有很多服务是C++通过Thrift开放出来给其他语言调用一 : 样,C++在内存效率和速度上还不是JAVA能比的。JAVA的特长是时间和资源不那么敏感 : 的大规模软件开发,比如淘宝,AMAZON这种。术业有专攻吧,Java目前在BIG DATA还有 : 云上的火热和这些应用场景还是有关系。 : : time : planned
|
p***o 发帖数: 1252 | 145 数据包不验证就直接用? Assume的东西也不assert一下? 那确实是java比较安全一些 .
..
【在 c****3 的大作中提到】 : 发现不了。计算memcpy 的size是要几个变量做四则运算的,包括减。问题是谁写代码 : ,每次减之前都要比较一下,是不是会出现减数比被减数大的情况,尤其是四则运算的 : 。太多这种检查,代码看着很难看。 : 大家都是assume某个逻辑,减数比被减数大的情况,在这个逻辑里不会发生,所以就不 : 用在代码里到处检查了。 : 我说的这个情况,逻辑是根据收到的数据包尺寸,计算UDP里面的某个应用数据的尺寸 : ,然后复制。正常情况计算都是对的,问题是网络里有时有变形或者corrupt的数据包 : ,报头尺寸和里面的不一致,逻辑就出问题了。 : 除非这些极端情况在开始都考虑到,或者不用memcpy,用比较安全不会越界的内存复制 : 函数。
|
n******t 发帖数: 4406 | 146 windows很多时候,就把使用别的库和方案的可能给弄没了。。
【在 T********i 的大作中提到】 : 有Windows很困难吗? : 反正我这人是technology whore。谁的方案针对这个具体项目最优,我就跟谁走。
|
T*********g 发帖数: 496 | 147 ?看不懂你说啥?你做过high freq trading? 套利模型用硬件实现?
【在 z****e 的大作中提到】 : 这根本不是软件的领域 : 没有硬件的配合,软件怎么写都没用 : 既然开始倒腾了硬件,直接对硬件下指令显然比包来包去快不少 : 为什么不?不是追求快么?
|
z****e 发帖数: 54598 | 148 没有做过,但是精确到ms的时候
很多os撑不住,你怎么办?
你得绕开os去操作你要操作的硬件
比如显卡,就直接操作opengl那些api了
甚至还申请一下硬件加速,以达到更快的刷新频率的目的
这个时候你用什么语言其实都不重要,直接指令式编程
对机器下指令,这个其实不是软件的问题
主要都是硬件的性能问题
【在 T*********g 的大作中提到】 : ?看不懂你说啥?你做过high freq trading? 套利模型用硬件实现?
|
z****e 发帖数: 54598 | 149 前面说的那个unity就是很好的例子
最关键的部分,其实是opengl的那些api
他们用c++给封装起来,然后做成mono可用的c#接口,给客户用
其实这一块都用c的话,我觉得更好
效率有10%提升也很好,为什么不?剩下的部分用c#去写了
其实android也差不多,剩下的逻辑部分
比如你说的模型,这个其实用了jit之后,都是纯内存操作
c++和其它语言执行效率差距很小
在这时候注意规避gc,剩下也没啥了
其实这两个步骤可以分离,找一个硅工做显卡
然后找一个码农实现模型,剩下对接下就好了
这里面显然有两层,用c++有一个比较合适的理由就是
这两层都是一个人在做的话,那就用c++,这样不用使用两个语言
否则,硅工用c,码农用java,搞定
不过现在也有人用python来做,但是python一般没有jit
要pypy才有,所以这个还是会慢
【在 T*********g 的大作中提到】 : ?看不懂你说啥?你做过high freq trading? 套利模型用硬件实现?
|
q*c 发帖数: 9453 | 150 这话说的,当年 so big 病毒也就是 两行这样的问题每行微软花了五亿美元嘛。
要是人永远不犯错,那的却是不一样。问题是人不但犯错,还经常犯。
.
【在 p***o 的大作中提到】 : 数据包不验证就直接用? Assume的东西也不assert一下? 那确实是java比较安全一些 . : ..
|
|
|
h*****a 发帖数: 1718 | 151 赞大牛,SB发了你几个M的bonus? :)
,
【在 q*c 的大作中提到】 : 在微软的时候有个 memory leak bug 我搞了一个月。 c++ : 10 年, 无数人, 好多 senior, principle, 2 次被当作windows 系统memory leak, : 2 次被打回来。各种工具。 partner 损失 5mm. : 最后我搞定了,就是内存池的问题。
|
T*********g 发帖数: 496 | 152 您这是胡说八道,不懂别瞎说。
【在 z****e 的大作中提到】 : 没有做过,但是精确到ms的时候 : 很多os撑不住,你怎么办? : 你得绕开os去操作你要操作的硬件 : 比如显卡,就直接操作opengl那些api了 : 甚至还申请一下硬件加速,以达到更快的刷新频率的目的 : 这个时候你用什么语言其实都不重要,直接指令式编程 : 对机器下指令,这个其实不是软件的问题 : 主要都是硬件的性能问题
|
z****e 发帖数: 54598 | 153 re这个
所以c++最大的问题其实是paradigm太多
c++可以象c一样pp,也可以象java一样oop,还打算象lisp一样fp
这种多种paradigm冲突的语言没有一个有前途的
scala也有类似的问题,oop和fp各占一半,冲突得厉害
上次说的google那个用python失败的例子也是类似原因
这些说白了,就是人的思维方式的差异,不同人有不同的偏好
如果不确定下来,构架上都能吵死,就算别人听了,标准定下来了
也不代表会遵照执行,指望code review也不靠谱
凡是人,都会有自己的一点小算盘,就会出现猴屁股当年说的
用c++的项目,基本上都以吵架收尾
反观成功的语言,c,java都能很清晰地判断出是什么paradigm
至少可以指出是什么paradigm为主,一个语言的paradigm,越纯粹越好
越容易fit in某一个特定的领域,任何paradigm都有明显的优缺点
paradigms越平均的语言越糟糕,貌似什么都能做,结果什么都不能做
最好的方式就是从机器执行上予以限制
只要是java,你就不可能不oop,象c一样写java,很容易精分
同样,用oop去写lisp,也很容易精分
现代社会,公司里面流动性太强,铁打的营盘流水的兵
过几个月就换一播人,很正常
最近在看晓说,说对越自卫反击战期间,天朝军队居然没有军衔
结果导致战争期间,不同部队的人凑到一起了,居然不知道听谁的
军衔设立很重要一个原因就是在战争期间,经常不同组织的人凑到一起
然后遇到了,第一句话就是,你们谁是负责人?然后走出一个军衔最高的
然后两边比一下军衔,一般就决定了听谁的,指挥集中,虽然互相不认识
但是也不会吵,但是文革期间,天朝军队的军衔结构被破坏了
导致战争期间被包围了,连个指挥官都选不出来,只好各自突围,结局可想而知了
人这个动物,是最不靠谱的,相信什么都不要轻信人,尤其不要相信人不会犯错
只要是个错误,人就能犯出来
【在 q*c 的大作中提到】 : 这话说的,当年 so big 病毒也就是 两行这样的问题每行微软花了五亿美元嘛。 : 要是人永远不犯错,那的却是不一样。问题是人不但犯错,还经常犯。 : : .
|
z****e 发帖数: 54598 | 154 顺便说一下
lips里面clojure可能可以用来搞skynet
但是最先有可能发迹的,还是统计等领域的那些languages
比如r什么的,毕竟ai要发飙,还没看到多少曙光
r这种早被证明过的语言,赶紧搬到jvm上去才是正经事
不管怎样,这些都是jvm上的东西,而jvm是java的一部分
无论将来怎么发展,java是绕不开的 |
l*****c 发帖数: 1153 | 155 沒啥好爭的,大家需求不一樣,本來就是orange and apple
要做
【在 g*********e 的大作中提到】 : 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做 : 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个 : demand。没有最好只有更好。 : 做做biz logic么啥语言都不是问题
|
w***g 发帖数: 5958 | 156 终于扯到AI上来了。现在的AI就matlab和C++。
【在 z****e 的大作中提到】 : 顺便说一下 : lips里面clojure可能可以用来搞skynet : 但是最先有可能发迹的,还是统计等领域的那些languages : 比如r什么的,毕竟ai要发飙,还没看到多少曙光 : r这种早被证明过的语言,赶紧搬到jvm上去才是正经事 : 不管怎样,这些都是jvm上的东西,而jvm是java的一部分 : 无论将来怎么发展,java是绕不开的
|
s******y 发帖数: 416 | 157 多大算大?^_^
【在 w***g 的大作中提到】 : 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的 : 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用 : java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的 : ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决 : 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也 : 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
|
b*******s 发帖数: 5216 | 158 他基本什么都不知道,就是乱说
【在 w***g 的大作中提到】 : 终于扯到AI上来了。现在的AI就matlab和C++。
|
l*********s 发帖数: 5409 | 159 exactly.
【在 T*********g 的大作中提到】 : 不同领域本身对编程语言有不同的要求,我们不用费尽去证明JAVA可以适用于所有的编 : 程情况。而且现在的趋势是JVM变成平台,动态语言在其上百花齐放,我们可以利用我 : 们对JVM的了解来进一步丰富我们的编程手段,让程序员的生活变得更容易一点。我个 : 人看好scala。也许有一天它可以取代JAVA。 : : 't : trend.
|
i**p 发帖数: 902 | 160 如果你和硬件打交道, C is enough and simple. C++ is just a wrapper to C code
so that other C++ code can call it simply.
【在 v******n 的大作中提到】 : C++的创始人说了,如果你和硬件打交道,或者追求performance,那就用C++,否则 : 其他语言会适合
|
|
|
p*u 发帖数: 2454 | 161
code
like someone said earlier, using C++ properly can make ur code base much
smaller and much easier 2 understand.
【在 i**p 的大作中提到】 : 如果你和硬件打交道, C is enough and simple. C++ is just a wrapper to C code : so that other C++ code can call it simply.
|
d********f 发帖数: 43471 | 162 C写出来那就是你一个人的程序,公司不能把你扫地出门
【在 s***o 的大作中提到】 : 为啥不直接用C?
|
i**p 发帖数: 902 | 163 Do you read every line of code when you review other people's code?
【在 b*******s 的大作中提到】 : 这种常见低级错误,很容易发现,如果真读了代码
|
b*******s 发帖数: 5216 | 164 上次给你的问题的解释,你看懂了没有
【在 i**p 的大作中提到】 : Do you read every line of code when you review other people's code?
|
z****e 发帖数: 54598 | 165 ml只是一个分支而已
而且将来也是朝着r等为代表的统计领域进军
matlab只是一个过路货
【在 w***g 的大作中提到】 : 终于扯到AI上来了。现在的AI就matlab和C++。
|
z****e 发帖数: 54598 | 166 老样子,对于你这种太监的行径,老办法
我如果知道,你全家死光
【在 b*******s 的大作中提到】 : 他基本什么都不知道,就是乱说
|
w********r 发帖数: 1971 | 167 主要是能正确练葵花宝典的人少,而不是该宝典不适合练绝世武功。等你写过20w
line+的大程序再来喷 |
N******K 发帖数: 10202 | 168 你这个爪哇程序员 懂个p的AI
matlab你写过几行?各种算法你听过名字的有几个?
【在 z****e 的大作中提到】 : ml只是一个分支而已 : 而且将来也是朝着r等为代表的统计领域进军 : matlab只是一个过路货
|
z****e 发帖数: 54598 | 169 哈哈,搞图形的你什么时候上法庭?
丫别下面没有了
【在 N******K 的大作中提到】 : 你这个爪哇程序员 懂个p的AI : matlab你写过几行?各种算法你听过名字的有几个?
|
q*c 发帖数: 9453 | 170 the very reason java or csharp languages got invented, is bcause many, many
people, even some good programmers, can not use c++ "properly".
so we end up big ugly unmaintainable c++ code everywhere. lol
【在 p*u 的大作中提到】 : : code : like someone said earlier, using C++ properly can make ur code base much : smaller and much easier 2 understand.
|
|
|
N******K 发帖数: 10202 | 171 你什么时候把你妈献来?
【在 z****e 的大作中提到】 : 哈哈,搞图形的你什么时候上法庭? : 丫别下面没有了
|
z****e 发帖数: 54598 | 172 你妈在我这里,你过来见吧
【在 N******K 的大作中提到】 : 你什么时候把你妈献来?
|
b*******s 发帖数: 5216 | 173 你真不知道自己多少水平吗?
【在 z****e 的大作中提到】 : 老样子,对于你这种太监的行径,老办法 : 我如果知道,你全家死光
|
z****e 发帖数: 54598 | 174 你知道你的水平?
泥马做个破医疗器材的又来装逼
你连你自己做什么都不敢承认
装毛
【在 b*******s 的大作中提到】 : 你真不知道自己多少水平吗?
|
w********r 发帖数: 1971 | 175 java 是为烙印发明的,是为c++写不好的马工而生
为从来不为design和编程思想 而费心思的人而生 |
z****e 发帖数: 54598 | 176 没有用,说这个也改变不了江河日下的事实
做鸵鸟有啥搞头?
【在 w********r 的大作中提到】 : java 是为烙印发明的,是为c++写不好的马工而生 : 为从来不为design和编程思想 而费心思的人而生
|
y***k 发帖数: 1078 | 177 C++不适合做大项目? 这个观点很新颖啊。大家都做过多大的项目啊?凡是做backend
的,web server, media server, mail server, whatever servers, 我看到的c++的层
出不穷啊。不会c++来做server?是用java吗?讲讲java的大项目有哪些?
大家有没有用过c++11?这个好象整合了很多新功能。Interface方面,越来越
scripting化了。不过这个还是太新。
【在 w***g 的大作中提到】 : 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的 : 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用 : java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的 : ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决 : 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也 : 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
|
t*******y 发帖数: 1289 | 178 为什么不能做大项目?
我觉得这个主要是架构设计的问题吧。还是需要一个高高手领导的。
如果架构可以,就看生成的任务了,能够细化,逻辑清晰的话也没问题吧。
我觉得在这个web 和 mobile的时代,C++的落伍主要是 Framework 太少了。而且 C++
对于代码的质量要求确实比 C#,python 这些高(不会Java)。这个也就让开发速度无
法和其他的相比了。
但是说不能做大项目,这个就有点不合适了。 |
d********f 发帖数: 43471 | 179 因为大部分工资10来万的马宫只有赵策同学的水平,作大项目你做不起啊
+
【在 t*******y 的大作中提到】 : 为什么不能做大项目? : 我觉得这个主要是架构设计的问题吧。还是需要一个高高手领导的。 : 如果架构可以,就看生成的任务了,能够细化,逻辑清晰的话也没问题吧。 : 我觉得在这个web 和 mobile的时代,C++的落伍主要是 Framework 太少了。而且 C++ : 对于代码的质量要求确实比 C#,python 这些高(不会Java)。这个也就让开发速度无 : 法和其他的相比了。 : 但是说不能做大项目,这个就有点不合适了。
|
t*******y 发帖数: 1289 | 180 不讨论具体个人问题,因为我不了解这里的任何一个人。
就事论事。每个公司,或者说leader都要面临手下的人水平不能满足的问题。我觉得这
个应该是在架构设计的时候要考虑到的,而且应该强调 code style 的重要性,这个是
一个项目组成部分。
对手下人的能力有认识,分工的时候有区别,多review code,带领大家提高,其实也
就是1,2个月,大家写code的样子就差不多了。当然,我这个是指在10个人左右的小组
中的事情。但是,无论多大的项目,也是一个组一个组的在做。统一思想,项目是没有
问题的。
当然了,现在用 C++ 的开发web 和 mobile 的速度是远远无法与其他相比的,毕竟
Framework 在那里摆着呢。
【在 d********f 的大作中提到】 : 因为大部分工资10来万的马宫只有赵策同学的水平,作大项目你做不起啊 : : +
|
|
|
d********f 发帖数: 43471 | 181 我实事求是,我必须承认我的C++水平根本做不了大项目,就以我的经验来说,C++你能
开放像样的项目,没有3年以上hand-on经验是不可能的。能做framework的都需要10年
左右的经验。就从c++普及的历史来看,这样的马宫几乎没有30,50w根本找不到,就算
你有钱,你也没有这么长的开发周期。所以从项目管理的角度来说,我同意c++作不了
现在流行的web,mobile之类的应用,成本是一切
【在 t*******y 的大作中提到】 : 不讨论具体个人问题,因为我不了解这里的任何一个人。 : 就事论事。每个公司,或者说leader都要面临手下的人水平不能满足的问题。我觉得这 : 个应该是在架构设计的时候要考虑到的,而且应该强调 code style 的重要性,这个是 : 一个项目组成部分。 : 对手下人的能力有认识,分工的时候有区别,多review code,带领大家提高,其实也 : 就是1,2个月,大家写code的样子就差不多了。当然,我这个是指在10个人左右的小组 : 中的事情。但是,无论多大的项目,也是一个组一个组的在做。统一思想,项目是没有 : 问题的。 : 当然了,现在用 C++ 的开发web 和 mobile 的速度是远远无法与其他相比的,毕竟 : Framework 在那里摆着呢。
|
t*******y 发帖数: 1289 | 182 我同意你说的开发周期长,相对成本高,所以用的越来越少。
“没有3年以上hand-on经验是不可能的”这个不一定的。
选好领头人,年轻人的学习能力真的非常强。上手很快的。而且不会需要他们做架构的
,只是完成功能,这个好说。
【在 d********f 的大作中提到】 : 我实事求是,我必须承认我的C++水平根本做不了大项目,就以我的经验来说,C++你能 : 开放像样的项目,没有3年以上hand-on经验是不可能的。能做framework的都需要10年 : 左右的经验。就从c++普及的历史来看,这样的马宫几乎没有30,50w根本找不到,就算 : 你有钱,你也没有这么长的开发周期。所以从项目管理的角度来说,我同意c++作不了 : 现在流行的web,mobile之类的应用,成本是一切
|
d********f 发帖数: 43471 | 183 不是相对高,是非常高。没有足够经验的马宫开发的c++ code都非常buggy.一般大家都
知道,维护成本比开发成本还要高的多,所以c++的项目最理想的开放状态就是找牛人
,宁可请一个1M的牛人也绝对不要10个100K的
【在 t*******y 的大作中提到】 : 我同意你说的开发周期长,相对成本高,所以用的越来越少。 : “没有3年以上hand-on经验是不可能的”这个不一定的。 : 选好领头人,年轻人的学习能力真的非常强。上手很快的。而且不会需要他们做架构的 : ,只是完成功能,这个好说。
|