avatar
m*S
2
熟读这180句古典名句,出口成章很轻松!
《诗经》
1.言者无罪,闻者足戒。
2.他山之石,可以攻玉。
3.高山仰止,景行行止。
4.如切如磋,如琢如磨。
5.昔我往矣,杨柳依依;今我来思,雨雪霏霏。
6.战战兢兢,如临深渊,如履薄冰。
《易经》
7.天行健,君子以自强不息;地势坤,君子以厚德载物。
8.穷则变,变则通,通则久
《老子》
9.祸兮,福之所倚;福兮,祸之所伏。
10.天网恢恢,疏而不漏。
11.知人者智,自知者明。
12.合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。
13.大直若屈,大巧若拙,大辩若讷。
14.信言不美,美言不信。善者不辩,辩者不善。
《尚书》
15.星星之火,可以燎原。
16.为山九仞,功亏一篑。
17.满招损,谦受益。
《左传》
18.言之无文,行而不远。
19.皮之不存,毛将焉附?
20.辅车相依,唇亡齿寒。
21.俭,德之共也;侈,恶之大也。
22.居安思危,思则有备,有备无患。
23.人非圣贤,孰能无过?过而能改,善莫大焉。
《国语》
24.从善如登,从恶如崩。
25.防民之口,甚于防川。
《论语》
26.发愤忘食,乐以忘忧,不知老之将至。
27.巧言乱德,小不忍则乱大谋。
28.名不正,则言不顺;言不顺,则事不成。
29.博学而笃志,切问而近思,仁在其中矣。
30.岁寒,然后知松柏之后凋也。
31.逝者如斯夫,不舍昼夜。
32.工欲善其事,必先利其器。
33.君子坦荡荡,小人长戚戚。
34.往者不可谏,来者犹可追。
35.三军可夺帅也,匹夫不可夺志也。
36.见贤思齐焉,见不贤而内自省也。
37.士不可不弘毅,任重而道远。
38.欲速则不达,见小利则大事不成。
39.言必行,行必果,果必信。
40.知之者不如好之者,好之者不如乐之者。
41.其身正,不令而行;其身不正,虽令不从。
42.已所不欲,勿施于人。
43.仰之弥高,钻之弥坚;瞻之在前,忽焉在后。
44.有则改之,无则加勉。
45.仁者见仁,智者见智。
46.不患贫而患不均,不患寡而患不安。
47.均无贫,和无寡,安无倾。
48.君子和而不同,小人同而不和。
49.欲治其国者,先齐其家;欲齐其家者,先修其身。
《礼记》
50.一张一弛,文武之道也。
51.学然后知不足,教然后知困。
52.玉不琢,不成器;人不学,不知道。
53.独学而无友,则孤陋而寡闻。
54.凡事豫(预)则立,不豫(预)则废。
55.博学之,审问之,慎思之,明辨之,笃行之。
《孟子》
56.民为贵,社稷次之,君为轻。
57.老吾老,以及人之老;幼吾幼,以及人之幼。
58.穷则独善其身,达则兼济天下。
59.富贵不能淫,贫贱不能移,威武不能屈。
60.天时不如地利,地利不如人和。
61.生,亦我所欲也;义,亦我所欲也;二者不可得兼,舍生而取义者也。
62.一叶障目,不见泰山。两耳塞豆,不闻雷霆。
63.志士仁人,无求生以害仁,有杀身以成仁。
64.权,然后知轻重;度,然后知长短。
65.爱人者,人恒爱之;敬人者,人恒敬之。
《荀子》
66.蓬生麻中,不扶自直;白沙在涅,与之俱黑。
《庄子》
67.君子之交淡如水,小人之交甘若醴。
68.吾生也有涯,而知也无涯。
《管子》
69.一年之计,莫如树谷;十年之计,莫如树木;终身之计,莫如树人。
70.仓廪实而知礼节,衣食足而知荣辱。
《韩非子》
71.千里之堤,溃于蚁穴。
《离骚》
72.长太息以掩涕兮,哀民生之多艰。
73.亦余心之所善兮,虽九死其犹未悔。
74.路曼曼其修远兮,吾将上下而求索。
《战国策》
75.风萧萧兮易水寒,壮士一去兮不复还。
76.士为知己者死,女为悦己者容。
《吕氏春秋》
77.流水不腐,户枢不蠹。
78.察己则可以知人,察今则可以知古。
秦汉魏晋南北朝
79.泰山不让土壤,故能成其大;河海不择细流,故能就其深。(李斯《谏逐客书》)
司马迁《史记》
80.人固有一死,或重于太山,或轻于鸿毛,用之所趋异也。
81.以欲以究天人之际,通古今之变,成一家之言。
82.失之毫厘,谬以千里。
83.桃李不言,下自成蹊。
84.智者千虑,必有一失;愚者千虑,必有一得。
85.水滴石穿,绳锯木断。
86.众口铄金,积毁销骨。
87.大行不顾细谨,大礼不辞小让。
88.运筹帷幄之中,决胜千里之外。(运筹帷幄之中,制胜于无形)
89.此鸟不飞则已,一飞冲天;不鸣则已,一鸣惊人。
90.良药苦口利于病,忠言逆耳利于行。
91.飞鸟尽,良弓藏;狡兔死,走狗烹。
92.耳闻之不如目见之,目见之不如足践之。(刘向《说苑》)
93.与善人居,如入芝兰之室,久而不闻其香;与恶人居,如入鲍鱼之肆,久而不闻其臭
。(刘向《说苑》)
94.水至清则无鱼,人至察则无徒(东方朔《答客难》)
95.塞翁失马,焉知非福?(《淮南子》)
96.正其义不谋其利,明其道不计其功。(班固《汉书》)
97.临渊羡鱼,不如退而结网。(班固《汉书?董仲舒传》)
98.前车之覆,后车之鉴。(班固《汉书》)
99.文章,经国之大业,不朽之盛事。(曹丕《典论。论文》)
100.山不厌高,海不厌深。周公吐哺,天下归心。(曹操《短歌行》)
101.老骥伏枥,志在千里;烈士暮年,壮心不已。(曹操《龟虽寿》)
102.捐躯赴国难,视死忽如归。(曹植《白马篇》)
103.静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。夫学须静也,才须学也
。非学无以广才,非志无以成学。(诸葛亮《诫子书》)
104.鞠躬尽瘁,死而后已。(诸葛亮《后出师表》)
105.勿以恶小而为之,勿以善小而不为。(陈寿《三国志》)
106.士别三日,即更刮目相待。(陈寿《三国志》)
107.读书百遍,其义自见。(陈寿《三国志》)
108.国以民为本,民以食为天。(陈寿《三国志》)
109.一年之计在于春,一日之计在于晨。(萧绎《纂要》)
110.暮春三月,江南草长,杂花生树,群莺乱飞。(丘迟《与陈伯之书》)
111.精骛八极,心游万仞。(陆机《文赋》)
112.失之东隅,收之桑榆。(范晔《后汉书》)
113.精诚所至,金石为开。(范晔《后汉书》)
114.不入虎穴,焉得虎子?(范晔《后汉书》)
115.阳春之曲,和者必寡;盛名之下,其实难副。(范晔《后汉书》)
116.百川东到海,何时复西归?少壮不努力,老大徒伤悲。(汉乐府《长歌行》)
117.采菊东篱下,悠然见南山。(陶渊明《饮酒》)
118.奇文共欣赏,疑义相与析。(陶渊明《移居》)
119.羁鸟恋旧林,池鱼思故渊。(陶渊明《归园田居》)
120.操千曲而后晓声,观千剑而后识器。(刘勰《文心雕龙》)
121.登山则情满于山,观海则意溢于海。(刘勰《文心雕龙》)
122.大丈夫宁可玉碎,不能瓦全。(《北齐书》)
123.蝉噪林逾静,鸟鸣山更幽。(王籍《入若耶溪》)
唐代
124.云销雨霁,彩彻区明。落霞与孤鹜齐飞,秋水共长天一色。(王勃《滕王阁序》)
125.老当益壮,宁移白首之心;穷且益坚,不坠青云之志。(王勃《滕王阁序》)
126.求木之长者,必固其根本;欲流之远者,必浚其泉源;思国之安者,必积其德义。(
魏徵《谏太宗十思疏》)
127.前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。(陈子昂《登幽州台歌
》)
128.春潮带雨晚来急,野渡无人舟自横。(韦应物《滁州西涧》)
129.海上生明月,天涯共此时。(张九龄《望月怀远》)
130.不知细叶谁裁出,二月春风似剪刀。(贺知章《咏柳》)
131.莫愁前路无知己,天下谁人不识君。(高适《别董大》)
132.疾风知劲草,板荡识诚臣。(李世民《赠萧瑀》)
133.空山新雨后,天气晚来秋。明月松间照,清泉石上流。竹喧归浣女,莲动下渔舟。
随意春芳歇,王孙自可留。(王维《山居秋暝》)
134.独在异乡为异客,每逢佳节倍思亲。遥知兄弟登高处,遍插茱萸少一人。(王维《
九月九日忆山东兄弟》)
135.渭城朝雨浥轻尘,客舍青青柳色新。劝君更尽一杯酒,西出阳关无故人。(王维《
送元二使安西》)
136.白日依山尽,黄河入海流。欲穷千里目,更上一层楼。(王之涣《登鹳鹊楼》)
137.洛阳亲友如相问,一片冰心在玉壶。(王昌龄《芙蓉楼送辛渐》)
138.黄沙百战穿金甲,不破楼兰终不还。(王昌龄《从军行》)
139.忽如一夜春风来,千树万树梨花开。(岑参《白雪歌送武判官归京》)
140.山光悦鸟性,潭影空人心。(常建《题破山寺后禅院》)
141.孤帆远影碧空尽,惟见长江天际流。(李白《送孟浩然之广陵》)
142.清水出芙蓉,天然去雕饰。(李白《诗论》)
143.天生我材必有用,千金散尽还复来。(李白《将进酒》)
144.安能摧眉折腰事权贵,使我不得开心颜!(李白《梦游天姥吟留别》)
145.抽刀断水水更流,举杯销愁愁更愁。(李白《宣州谢朓楼饯别校书叔云》)
146.随风潜入夜,润物细无声。(杜甫《春夜喜雨》)
147.正是江南好风景,落花时节又逢君。(杜甫《江南逢李龟年》)
148.读书破万卷,下笔如有神。(杜甫《奉赠韦左丞丈二十二韵》)
149.为人性僻耽佳句,语不惊人死不休。(杜甫《江上值水如海势聊短述》)
150.朱门酒肉臭,路有冻死骨。(杜甫《自京赴奉先县咏怀五百字》)
151.国破山河在,城春草木深。感时花溅泪,恨别鸟惊心。烽火连三月,家书抵万金。
(杜甫《春望》)
152.露从今夜白,月是故乡明。(杜甫《月夜忆舍弟》)
153.笔落惊风雨,诗成泣鬼神。(杜甫《寄李白。二十韵》)
154.文章千古事,得失寸心知。(杜甫《偶题》)
155.三顾频烦天下计,两朝开济老臣心。出师未捷身先死,长使英雄泪满襟。(杜甫《
蜀相》)
156.尔曹身与名俱灭,不废江河万古流。(杜甫《戏为六绝句》)
157.星垂平野阔,月涌大江流。(杜甫《旅夜书怀》
158.昔闻洞庭水,今上岳阳楼。吴楚东南坼,乾坤日夜浮。亲朋无一字,老病有孤舟。
戎马关山北,凭轩涕泗流。(杜甫《登岳阳楼》)
159.谁言寸草心,报得三春晖。(孟郊《游子吟》)
160.晴川历历汉阳树,芳草萋萋鹦鹉洲。日暮乡关何处是?烟波江上使人愁。(崔颢《黄
鹤楼》)
161.潮平两岸阔,风正一帆悬。(王湾《次北固山下》)
162.蚍蜉撼大树,可笑不自量。(韩愈《调张籍》)
163.业精于勤荒于嬉,行成于思毁于随。(韩愈《进学解》)
164.天街小雨润如酥,草色遥看近却无。(韩愈《早春呈水部张十八员外》)
165.曾经沧海难为水,除却巫山不是云。(元稹《离思》)
166.衰兰送客咸阳道,天若有情天亦老。(李贺《金铜仙人辞汉歌》)
167.黑云压城城欲摧,甲光向日金鳞开。(李贺《雁门太守行》)
168.沉舟侧畔千帆过,病树前头万木春。(刘禹锡《酬乐天扬州初逢席上见赠》)
169.东边日出西边雨,道是无晴却有晴。(刘禹锡《竹枝词》)
170.朱雀桥边野草花,乌衣巷口夕阳斜。旧时王谢堂前燕,飞入寻常百姓家。(刘禹锡
《乌衣巷》)
171.千淘万漉虽辛苦,吹尽狂沙始到金。(刘禹锡《浪淘沙》)
172.自古逢秋悲寂寥,我言秋日胜春朝。晴空一鹤排云上,便引诗情到碧霄。(刘禹锡
《秋词》)
173.文章合为时而著,歌诗合为事而作。(白居易《与元九书》)
174.野火烧不尽,春风吹又生。(白居易《赋得古原草送别》)
175.试玉要烧三日满,辨材须待七年期。(白居易《放言》)
176.日出江花红胜火,春来江水绿如蓝。(白居易《忆江南》)
177.远上寒山石径斜,白云生处有人家。停车坐爱枫林晚,霜叶红于二月花。(杜牧《
山行》).
178身无彩凤双飞翼,心有灵犀一点通。(李商隐《无题》)
179.历览前贤国也家,成由勤俭败由奢。(李商隐《咏史》)
180.天意怜幽草,人间重晚晴。(李商隐《晚晴》)
181.君问归期未有期,巴山夜雨涨秋池。何当共剪西窗烛,却话巴山夜雨时。(李商隐
《夜雨寄北》)
182.月落乌啼霜满天,江枫渔火对愁眠。姑苏城外寒山寺,夜半钟声到客船。(张继《
枫桥夜泊》)
183.溪云初起日沉阁,山雨欲来风满楼。(许浑《咸阳城东楼晚眺》)
avatar
w*g
3
但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的
程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用
java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的
,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决
历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也
得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。
avatar
P*i
4
还好,木莫成舟
avatar
x*u
5
这些小东西用C或者任何一种静态语言也一样写的出来,卖点是算法不是程序。

【在 w***g 的大作中提到】
: 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的
: 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用
: java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的
: ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决
: 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也
: 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。

avatar
P*i
6
谢谢支持我的童鞋们啦,我心早不在这里。尽管对心版有感情,它依旧或更替还是都由
它去吧。
avatar
s*o
7
为啥不直接用C?

【在 w***g 的大作中提到】
: 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的
: 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用
: java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的
: ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决
: 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也
: 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。

avatar
S*K
8
@@
说走就走。。。。

【在 P*******i 的大作中提到】
: 撤。。。
avatar
l*s
9
type safety, encapsulation, these benefits don't cost performance so why not
using c++?

【在 s***o 的大作中提到】
: 为啥不直接用C?
avatar
c*o
10
bless lz
avatar
c*3
11
还是个习惯问题。C简洁明了,为大多数人喜欢。
不仅开源项目用C的最多,各种操作系统算是大项目,用C一样可以做的很成功。
C++主要是大公司喜欢,还有喜欢面向对象的人在用。
avatar
a*y
12

那就由它去吧

【在 P*******i 的大作中提到】
: 谢谢支持我的童鞋们啦,我心早不在这里。尽管对心版有感情,它依旧或更替还是都由
: 它去吧。

avatar
g*g
13
你这个虽然整体说得不错,但也太夸张了。不重复跑的东西,那需要极致性能。重复跑
的东西,启动时间基本可以忽略不计。大部分 benchmark C 也不过比 Java快一倍而已
。也就是说同样的算法,明年的机器 Java可以跟 今年的机器跑 C一样快。
算法的时间要求是有限的,机器变快暂时还是继续的,这才是 C++没落的重要原因。

【在 w***g 的大作中提到】
: 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的
: 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用
: java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的
: ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决
: 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也
: 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。

avatar
P*o
14
嗯嗯
现在更需要的是detachment

【在 a********y 的大作中提到】
: 嗯
: 那就由它去吧

avatar
g*g
15
绝大多数开发追求的是性能足够好的最快途径。而不是性能最好。所以才会从汇编到 C
. 同样的原因 Java在 web不敌各种脚步语言。
avatar
e*3
16
为了追求30%的性能提高,花几倍的时间开发测试和维护,这只有geek当经理才会做这
种决定,这就像挑篮球运动员一样,跳的最高的肯定不是最牛的,而要从多方面考虑,
这就是所谓的大局观,也是区分geek和insightful leader的区别。

C

【在 g*****g 的大作中提到】
: 绝大多数开发追求的是性能足够好的最快途径。而不是性能最好。所以才会从汇编到 C
: . 同样的原因 Java在 web不敌各种脚步语言。

avatar
T*i
17
为什么一定是30%性能提高?能不能是5倍10倍?

【在 e********3 的大作中提到】
: 为了追求30%的性能提高,花几倍的时间开发测试和维护,这只有geek当经理才会做这
: 种决定,这就像挑篮球运动员一样,跳的最高的肯定不是最牛的,而要从多方面考虑,
: 这就是所谓的大局观,也是区分geek和insightful leader的区别。
:
: C

avatar
l*s
18
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++没落的重要原因。

avatar
z*e
19
这个很容易看
小东西在乎启动时间
越小越在乎
你要是用微波炉上网,那内存得斤斤计较
因为就那点内存
但是如果你随便找个server做点服务
那你跑去算那点启动时间,那就是脑子进水了
必要时候预热一下有啥大不了的
spring启动就不快,google做了一个guice出来
说启动快很多,结果没啥人用

【在 w***g 的大作中提到】
: 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的
: 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用
: java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的
: ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决
: 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也
: 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。

avatar
z*e
20
搞得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++.

avatar
l*s
21
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

avatar
z*e
22
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.

avatar
T*i
23
你觉得你不需要,别人就都不需要了?
真奇怪世界上竟然还有你这种玩意儿。

【在 z****e 的大作中提到】
: marginal benefits递减
: 我没觉得我需要那么快的东西
: 我现在用java写个游戏都不会有lag
: 挺好,游戏顺畅是我需要速度的上限
: 再快对我来说意义实在是很小
: 我也不认为需要比游戏刷新频率更快的东西有多大的市场

avatar
z*e
24
哈哈,那是,你们五年硕士需要
五年我可以part time下三个硕士
这就是水平的差距,垃圾,就你这种水平还敢搞人肉
也不撒尿照照自己啥水平

【在 T********i 的大作中提到】
: 你觉得你不需要,别人就都不需要了?
: 真奇怪世界上竟然还有你这种玩意儿。

avatar
g*e
25
你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做
虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个
demand。没有最好只有更好。
做做biz logic么啥语言都不是问题
avatar
z*e
26
这种东西,要把计算负载给分流掉
现在主要是科学计算比较耗时间
一般的应用,都有办法分流
比较难搞的是3d图像,其它都还好
2d只要找个ui线程负责欺骗眼睛就好了
别打断这个线程,剩下都好办
理论上没有最好只有更好
但是对于服务业来说,人的感官有一个极限
比如2d游戏,90帧其实足够了,你把图像刷新做到900帧
吊不吊?很吊
但是问题是,人感觉不出来差异,市场价值就没有多少了
纯粹民用的东西,很多时候是直接以人的感官为主要参考

要做

【在 g*********e 的大作中提到】
: 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做
: 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个
: demand。没有最好只有更好。
: 做做biz logic么啥语言都不是问题

avatar
w*g
27
C++用模板类处理一般情况,然后specialize特殊可以优化的特例,这个C无论如何也做
不到吧。

【在 c****3 的大作中提到】
: 还是个习惯问题。C简洁明了,为大多数人喜欢。
: 不仅开源项目用C的最多,各种操作系统算是大项目,用C一样可以做的很成功。
: C++主要是大公司喜欢,还有喜欢面向对象的人在用。

avatar
z*e
28
赚钱跟搞科研是两回事
赚钱的话一定要贴近客户需求
客户要什么,你就做什么,当然这个客户包括你自己
我的哲学就是,我喜欢玩的东西,我相信别人也喜欢
所以我做我喜欢的东西,以满足我自身需要为主要目标
然后再推而广之
这就是那个啥mitbbsmj说的
纯技术创业,其实风险最大
满足客户需求为主要目标的创业,其实最容易赚钱
这就是为什么我认为超过人感官极限的东西
其市场价值相对小的原因
当然这只是民用市场,你要搞什么军工那些,那是另外一回事
一般人也接触不到军工这些

要做

【在 g*********e 的大作中提到】
: 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做
: 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个
: demand。没有最好只有更好。
: 做做biz logic么啥语言都不是问题

avatar
g*g
29
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++.

avatar
g*g
30
我们做的项目都是24×7跑的。要减少时间,单机能挖掘的有效,看看能不能机群并行
有效得多。

要做

【在 g*********e 的大作中提到】
: 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做
: 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个
: demand。没有最好只有更好。
: 做做biz logic么啥语言都不是问题

avatar
W*1
31


【在 z****e 的大作中提到】
: 这种东西,要把计算负载给分流掉
: 现在主要是科学计算比较耗时间
: 一般的应用,都有办法分流
: 比较难搞的是3d图像,其它都还好
: 2d只要找个ui线程负责欺骗眼睛就好了
: 别打断这个线程,剩下都好办
: 理论上没有最好只有更好
: 但是对于服务业来说,人的感官有一个极限
: 比如2d游戏,90帧其实足够了,你把图像刷新做到900帧
: 吊不吊?很吊

avatar
g*e
32

你又扯到集群并行上去了。哪有那么容易集群。

【在 g*****g 的大作中提到】
: 我们做的项目都是24×7跑的。要减少时间,单机能挖掘的有效,看看能不能机群并行
: 有效得多。
:
: 要做

avatar
c*3
33
写程序是为了解决实际问题。语言特性,这个你做得到,它做不到,对解决实际问题没
有意义。
C++的好处是封装,面向对象设计。但是缺点是可以用的适合C++的库太少。基本操作系
统底层的库都是C的接口,C++用还得封装,工作量也不少。不封装直接用,和直接用C
写程序也差不多了。
举个例子,SSH是常用功能,C++封装SSH的库很难找到。加密库最常用的openssl也是用
C写的,要用还得自己封装。或者找个C++的库Crypto++,因为用的人少,SSL的兼容性
也不让人放心。
所以很多情况还是用C写程序最方便,因为适合C的库到处都有。

【在 w***g 的大作中提到】
: C++用模板类处理一般情况,然后specialize特殊可以优化的特例,这个C无论如何也做
: 不到吧。

avatar
b*s
34
所有c库c++都能用

C

【在 c****3 的大作中提到】
: 写程序是为了解决实际问题。语言特性,这个你做得到,它做不到,对解决实际问题没
: 有意义。
: C++的好处是封装,面向对象设计。但是缺点是可以用的适合C++的库太少。基本操作系
: 统底层的库都是C的接口,C++用还得封装,工作量也不少。不封装直接用,和直接用C
: 写程序也差不多了。
: 举个例子,SSH是常用功能,C++封装SSH的库很难找到。加密库最常用的openssl也是用
: C写的,要用还得自己封装。或者找个C++的库Crypto++,因为用的人少,SSL的兼容性
: 也不让人放心。
: 所以很多情况还是用C写程序最方便,因为适合C的库到处都有。

avatar
T*i
35
看你写啥了。除非你要做开源大项目。引出的接口简单,very well defined。这种当
然是用C。
终端应用。甚至像我这种特殊的应用库,当然选C++。项目组织管理都简单。而且代码
量显著减少。不用C++才有问题。

C

【在 c****3 的大作中提到】
: 写程序是为了解决实际问题。语言特性,这个你做得到,它做不到,对解决实际问题没
: 有意义。
: C++的好处是封装,面向对象设计。但是缺点是可以用的适合C++的库太少。基本操作系
: 统底层的库都是C的接口,C++用还得封装,工作量也不少。不封装直接用,和直接用C
: 写程序也差不多了。
: 举个例子,SSH是常用功能,C++封装SSH的库很难找到。加密库最常用的openssl也是用
: C写的,要用还得自己封装。或者找个C++的库Crypto++,因为用的人少,SSL的兼容性
: 也不让人放心。
: 所以很多情况还是用C写程序最方便,因为适合C的库到处都有。

avatar
c*3
36
C++里当然可以用C的API,但是变成混杂模式了,一部分代码是面向对象,一部分不是。
还不如直接用C写,看着清晰明了。

【在 b*******s 的大作中提到】
: 所有c库c++都能用
:
: C

avatar
b*s
37
c++为什么要纯oo?
又不是java
再说套个namespace有多难,几行代码

是。

【在 c****3 的大作中提到】
: C++里当然可以用C的API,但是变成混杂模式了,一部分代码是面向对象,一部分不是。
: 还不如直接用C写,看着清晰明了。

avatar
n*l
38
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++?

avatar
c*3
39
所以很多C++代码,都是轻量级的OO,看着和C代码差不多。
那为什么要用C++,不直接用C,完全是个人喜好了。

【在 b*******s 的大作中提到】
: c++为什么要纯oo?
: 又不是java
: 再说套个namespace有多难,几行代码
:
: 是。

avatar
T*i
40
如果用C++代码量减一半,你用不用?

【在 c****3 的大作中提到】
: 所以很多C++代码,都是轻量级的OO,看着和C代码差不多。
: 那为什么要用C++,不直接用C,完全是个人喜好了。

avatar
b*s
41
现在其实oo不是c++的重点了
两种主要的风格,一个是带类的c
另一个就是模版编程
前者一直是和c混合的系统编程方式
后者是高性能计算的主要方式
其实更近似于函数式编程

【在 c****3 的大作中提到】
: 所以很多C++代码,都是轻量级的OO,看着和C代码差不多。
: 那为什么要用C++,不直接用C,完全是个人喜好了。

avatar
b*s
42
新标准下有时能省八九成代码
生产率比c高一大截子
性能上在很多情况下也高于c

【在 T********i 的大作中提到】
: 如果用C++代码量减一半,你用不用?
avatar
w*g
43
关键是我觉得C++的代码量比java还少,甚至有时候比python都少。

【在 b*******s 的大作中提到】
: 新标准下有时能省八九成代码
: 生产率比c高一大截子
: 性能上在很多情况下也高于c

avatar
b*s
44
主要是学习曲线长,比python少的情况不多,一般的我们还是喜欢用python写
不过这版上大多数批评c++的,其实基本上不知道什么现代c++的东西
就是在胡说八道

【在 w***g 的大作中提到】
: 关键是我觉得C++的代码量比java还少,甚至有时候比python都少。
avatar
f*5
45
有的crypto实现要用了全局变量,多线程时就不能直接使

【在 b*******s 的大作中提到】
: c++为什么要纯oo?
: 又不是java
: 再说套个namespace有多难,几行代码
:
: 是。

avatar
T*i
46
C支持宏。C++的模板灵活性Java根本不能比。代码量比Java少没啥奇怪的。

【在 w***g 的大作中提到】
: 关键是我觉得C++的代码量比java还少,甚至有时候比python都少。
avatar
b*s
47
这是这个库的问题,不能重入算什么设计

【在 f*******5 的大作中提到】
: 有的crypto实现要用了全局变量,多线程时就不能直接使
avatar
c*3
48
等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了
问题,你还得追到这些库里,去看库的代码。

【在 b*******s 的大作中提到】
: 新标准下有时能省八九成代码
: 生产率比c高一大截子
: 性能上在很多情况下也高于c

avatar
t*t
49
我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架
的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框
架, 用得很爽, 但是我也能理解为什么有人不喜欢.

【在 b*******s 的大作中提到】
: 主要是学习曲线长,比python少的情况不多,一般的我们还是喜欢用python写
: 不过这版上大多数批评c++的,其实基本上不知道什么现代c++的东西
: 就是在胡说八道

avatar
w*g
50
不用指针想出memory leak都难吧。现在写C++程序除了函数传引用以外已经很少需要指
针了。其实传引用用指针也只是为了看的清楚,不然传引用也只要传引用就可以了。

【在 c****3 的大作中提到】
: 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了
: 问题,你还得追到这些库里,去看库的代码。

avatar
T*i
51
一般有stack trace就差不多了。
迄今我靠stack trace都搞定了。
其实,如果实现对头。一个大系统,new和delete的数量板手指都数出来。至少我的系
统是这样。

【在 c****3 的大作中提到】
: 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了
: 问题,你还得追到这些库里,去看库的代码。

avatar
f*5
52
这是c的一现实。而且简单oo封装了就能使,不需要考虑设计。

【在 b*******s 的大作中提到】
: 这是这个库的问题,不能重入算什么设计
avatar
t*t
53
从滥用来说, C++并不比C更容易被滥用. 如果稍微强制一些编译开关或者代码要求, 很
多东西在编译期就能发现.

【在 c****3 的大作中提到】
: 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了
: 问题,你还得追到这些库里,去看库的代码。

avatar
z*e
54
话说只要是自己写的库,有用得不爽的么?
不管什么语言

【在 t****t 的大作中提到】
: 我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架
: 的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框
: 架, 用得很爽, 但是我也能理解为什么有人不喜欢.

avatar
T*i
55
你的框架也是基本自用吧?
通用框架,除了boost以外,基本也做不大。
其实,我现在一直纠结要不要把boost依赖性也去掉。

【在 t****t 的大作中提到】
: 我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架
: 的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框
: 架, 用得很爽, 但是我也能理解为什么有人不喜欢.

avatar
b*s
56
保持好的coding convention
而且新标准的资源管理,大幅度简化了这方面的要求,
另外就是吸收一些unix的好的思想,现在soa也是,就是一个功能只做一件事
另外要习惯写单元测试
关于调试,在logging方面,新标准也有帮助,比如c11过来的宏
以前在某个医疗企业时我们都是自己做内存池
带上一些调试功能,有问题也一下就发现了

【在 c****3 的大作中提到】
: 等你的程序出了memory leak和crash了,你就知道苦了。C++程序debug更加费劲,出了
: 问题,你还得追到这些库里,去看库的代码。

avatar
w*g
57
虽然boost里已经有了,但还是要说C++11的thread支持很好用啊, 里面async, future
那些东西用起来非常干净,手工开thread都省了。可惜现在gcc还有问题,只能先用
boost里的同名对象先顶着,然后说服自己这个是C++11。

【在 t****t 的大作中提到】
: 我C++11一直在用, 说实话, 很多特性不是给application level用的, 而是写库写框架
: 的人用的. 这个版上application level的人比较多, 看不上是正常的. 我自己也写框
: 架, 用得很爽, 但是我也能理解为什么有人不喜欢.

avatar
t*t
58
不能算完全自用, 很多模块是同事写的. 问题是做EE的不太会写代码, 我得把很多东西
包装好, 所以框架里的东西越来越多了.

【在 T********i 的大作中提到】
: 你的框架也是基本自用吧?
: 通用框架,除了boost以外,基本也做不大。
: 其实,我现在一直纠结要不要把boost依赖性也去掉。

avatar
c*3
59
C和C++的程序,memory leak啥时候都是家常便饭。
其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了,
stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象
和封装,就更费劲了。

【在 w***g 的大作中提到】
: 不用指针想出memory leak都难吧。现在写C++程序除了函数传引用以外已经很少需要指
: 针了。其实传引用用指针也只是为了看的清楚,不然传引用也只要传引用就可以了。

avatar
b*s
60
一些情况下强制比如把warning当error,在用模版时可能会有些麻烦
尤其是用别人的库

【在 t****t 的大作中提到】
: 从滥用来说, C++并不比C更容易被滥用. 如果稍微强制一些编译开关或者代码要求, 很
: 多东西在编译期就能发现.

avatar
b*s
61
boost就是stl unstable
留着问题也不大,将来porting也不难

【在 T********i 的大作中提到】
: 你的框架也是基本自用吧?
: 通用框架,除了boost以外,基本也做不大。
: 其实,我现在一直纠结要不要把boost依赖性也去掉。

avatar
t*t
62
memory leak算是最好调试的一个东西了, 不知道有啥可抱怨的. 又不是没有工具.

【在 c****3 的大作中提到】
: C和C++的程序,memory leak啥时候都是家常便饭。
: 其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了,
: stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象
: 和封装,就更费劲了。

avatar
T*i
63
我就是这个意思。是公司内部用。
其实还应该算终端系统。
这种情况下应该无脑上C++。

【在 t****t 的大作中提到】
: 不能算完全自用, 很多模块是同事写的. 问题是做EE的不太会写代码, 我得把很多东西
: 包装好, 所以框架里的东西越来越多了.

avatar
t*t
64
用"系统"include的时候忽略warning不是很容易的事情么?

【在 b*******s 的大作中提到】
: 一些情况下强制比如把warning当error,在用模版时可能会有些麻烦
: 尤其是用别人的库

avatar
b*s
65
你用shared_ptr包一下很难吗?
我们现在基本不用native pointer了
正在讨论要不要作为编码规范

【在 c****3 的大作中提到】
: C和C++的程序,memory leak啥时候都是家常便饭。
: 其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了,
: stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象
: 和封装,就更费劲了。

avatar
b*s
66
对,是这样

【在 t****t 的大作中提到】
: 用"系统"include的时候忽略warning不是很容易的事情么?
avatar
t*t
67
我们也是没办法. 用C难度太大, 用别的效率太低, 一个模拟跑几天改改参数又跑几天,
能省一半时间也是好的. 这种iterative的东西还没法并行做.

【在 T********i 的大作中提到】
: 我就是这个意思。是公司内部用。
: 其实还应该算终端系统。
: 这种情况下应该无脑上C++。

avatar
T*i
68
其实如果只是模拟,建议你试试.Net。
理论上,.Net runtime的效率Java VM没法比。实际上也是这样。

天,

【在 t****t 的大作中提到】
: 我们也是没办法. 用C难度太大, 用别的效率太低, 一个模拟跑几天改改参数又跑几天,
: 能省一半时间也是好的. 这种iterative的东西还没法并行做.

avatar
t*t
69
有windows才行.

【在 T********i 的大作中提到】
: 其实如果只是模拟,建议你试试.Net。
: 理论上,.Net runtime的效率Java VM没法比。实际上也是这样。
:
: 天,

avatar
T*i
70
有Windows很困难吗?
反正我这人是technology whore。谁的方案针对这个具体项目最优,我就跟谁走。

【在 t****t 的大作中提到】
: 有windows才行.
avatar
g*g
71
这是不可能的,java随便找个轮子,代码量就下来了。

【在 w***g 的大作中提到】
: 关键是我觉得C++的代码量比java还少,甚至有时候比python都少。
avatar
b*s
72
就找个给list 赋值的吧
c++代码还是
for (auto & e : lst)
{
e = 10;
}

【在 g*****g 的大作中提到】
: 这是不可能的,java随便找个轮子,代码量就下来了。
avatar
g*g
73
这么简单的东西,没人去造轮子。当然如果你有需要可以自己写一个static function。

【在 b*******s 的大作中提到】
: 就找个给list 赋值的吧
: c++代码还是
: for (auto & e : lst)
: {
: e = 10;
: }

avatar
b*s
74
那我给个复杂一点的
要不就实现个ping remote host怎么样?

function。

【在 g*****g 的大作中提到】
: 这么简单的东西,没人去造轮子。当然如果你有需要可以自己写一个static function。
avatar
g*g
75
就举前面提过的例子,ssh远程登录。jsch就可以,功能很强大。实现个SFTP就是几十
行的事情。

【在 b*******s 的大作中提到】
: 那我给个复杂一点的
: 要不就实现个ping remote host怎么样?
:
: function。

avatar
b*s
76
我不认为逻辑上行得通
我们要证明的是c++不可能比java代码短
而不是c++总是比java代码短
是不是?

【在 g*****g 的大作中提到】
: 就举前面提过的例子,ssh远程登录。jsch就可以,功能很强大。实现个SFTP就是几十
: 行的事情。

avatar
b*s
77
或者再来个终极复杂的
实现个jvm?

【在 g*****g 的大作中提到】
: 就举前面提过的例子,ssh远程登录。jsch就可以,功能很强大。实现个SFTP就是几十
: 行的事情。

avatar
g*g
78
就你举的这个例子,也没看出比java短呀,不就一样长吗。

【在 b*******s 的大作中提到】
: 我不认为逻辑上行得通
: 我们要证明的是c++不可能比java代码短
: 而不是c++总是比java代码短
: 是不是?

avatar
b*s
79
你贴个java的?

【在 g*****g 的大作中提到】
: 就你举的这个例子,也没看出比java短呀,不就一样长吗。
avatar
g*g
80
for(int i = 0; i< l.size(); i++){
l.set(i, 10);
}

【在 b*******s 的大作中提到】
: 你贴个java的?
avatar
t*t
81
当然很困难, 公司的机器都是linux的, 不可能说为了这个再买一批机器. 用.net也没
有什么显而易见的好处, 做EE的你要招个会写C的容易, 会写C++的也不太难, 会写.net
的就少了.

【在 T********i 的大作中提到】
: 有Windows很困难吗?
: 反正我这人是technology whore。谁的方案针对这个具体项目最优,我就跟谁走。

avatar
b*s
82
这叫一样?
呵呵,要不我们数数字数?
另外,你第一行可以拿掉

【在 g*****g 的大作中提到】
: for(int i = 0; i< l.size(); i++){
: l.set(i, 10);
: }

avatar
b*s
83
vm

net

【在 t****t 的大作中提到】
: 当然很困难, 公司的机器都是linux的, 不可能说为了这个再买一批机器. 用.net也没
: 有什么显而易见的好处, 做EE的你要招个会写C的容易, 会写C++的也不太难, 会写.net
: 的就少了.

avatar
g*g
84
一般也就数个行数,这货java不要括号了也就一行,你还想怎样?

【在 b*******s 的大作中提到】
: 这叫一样?
: 呵呵,要不我们数数字数?
: 另外,你第一行可以拿掉

avatar
b*s
85
或者这个就算一样,我们来做个最大堆排序如何

【在 g*****g 的大作中提到】
: for(int i = 0; i< l.size(); i++){
: l.set(i, 10);
: }

avatar
g*g
86
这东西都是现成类库,你真要比?

【在 b*******s 的大作中提到】
: 或者这个就算一样,我们来做个最大堆排序如何
avatar
T*i
87
你跟这个连缓冲都不懂的烂人纠缠啥?
还号称谁的系统带缓冲都是抄袭丫的架构。
没有OS和网卡的缓冲,丫的C*连一个操作都做不了。

【在 b*******s 的大作中提到】
: 或者这个就算一样,我们来做个最大堆排序如何
avatar
z*e
88
比你这种五年才混一个烂校的硕士那是要强到不知道哪里去le
切记,去fbi告我诽谤你,我等着

【在 T********i 的大作中提到】
: 你跟这个连缓冲都不懂的烂人纠缠啥?
: 还号称谁的系统带缓冲都是抄袭丫的架构。
: 没有OS和网卡的缓冲,丫的C*连一个操作都做不了。

avatar
g*g
89
口口声声前端 cache机,一打脸就是网卡缓存。无敌了。

【在 z****e 的大作中提到】
: 比你这种五年才混一个烂校的硕士那是要强到不知道哪里去le
: 切记,去fbi告我诽谤你,我等着

avatar
b*s
90
好啊,非priority heap如何?

【在 g*****g 的大作中提到】
: 这东西都是现成类库,你真要比?
avatar
T*i
91
hoho。原来你以为我用网卡缓存存应用层消息?
你老板要知道了一定会表扬你。

【在 g*****g 的大作中提到】
: 口口声声前端 cache机,一打脸就是网卡缓存。无敌了。
avatar
g*g
92
你也知道丢人了,跟着我屁股后面抄。一打脸 cache机变成网卡自带了?你丫真有脸。

【在 T********i 的大作中提到】
: hoho。原来你以为我用网卡缓存存应用层消息?
: 你老板要知道了一定会表扬你。

avatar
z*e
93
有些东西看看市场不就知道了
瞎子摸象还很起劲
avatar
T*i
94
哈哈。你丫要是真认为自己发明了缓存,也要读读书,把缓存先学明白。

【在 g*****g 的大作中提到】
: 你也知道丢人了,跟着我屁股后面抄。一打脸 cache机变成网卡自带了?你丫真有脸。
avatar
z*e
95
location
阿三对cpp的兴趣已经超过天朝了
avatar
g*g
96
我可没发明,前后分离的架构遍地都是,只不过傻逼不懂罢了。

【在 T********i 的大作中提到】
: 哈哈。你丫要是真认为自己发明了缓存,也要读读书,把缓存先学明白。
avatar
T*i
97
啊?现在承认我的架构好了么?怎么又变成抄袭你的了?
你能做出我1/10的性能么?
就这还好意思开牙?你这样的估计得打一辈子光棍,那个女人跟了你这个无耻之徒算是
倒了八辈子霉。

【在 g*****g 的大作中提到】
: 我可没发明,前后分离的架构遍地都是,只不过傻逼不懂罢了。
avatar
g*g
98
你就一个太监计数器,有个破架构。
活该一辈子做太监。

【在 T********i 的大作中提到】
: 啊?现在承认我的架构好了么?怎么又变成抄袭你的了?
: 你能做出我1/10的性能么?
: 就这还好意思开牙?你这样的估计得打一辈子光棍,那个女人跟了你这个无耻之徒算是
: 倒了八辈子霉。

avatar
T*i
99
你给俺们说说,你这样的有女人没有?
我严重怀疑你没女人,因为你丫实在太猥琐了。

【在 g*****g 的大作中提到】
: 你就一个太监计数器,有个破架构。
: 活该一辈子做太监。

avatar
g*g
100
问你妈就知道了,当年真该把你射墙上。

【在 T********i 的大作中提到】
: 你给俺们说说,你这样的有女人没有?
: 我严重怀疑你没女人,因为你丫实在太猥琐了。

avatar
T*i
102
别回避问题了。这么简单的问题还需要PA么?
有就是有,没有就是没有。
我老人家认为你没有。

【在 g*****g 的大作中提到】
: 问你妈就知道了,当年真该把你射墙上。
avatar
g*g
103
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
avatar
c*e
104
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的看不到而已。

avatar
z*e
105
妹子,去这里点评一下
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的活。

avatar
l*s
106
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

avatar
l*s
107
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."

avatar
g*g
110
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

avatar
z*e
111
咳,这年头哪里有一定住在哪里的道理
去哪不都正常么?

【在 c*********e 的大作中提到】
: 记得你好像在日本还是袋鼠国吧?
avatar
l*s
112
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

avatar
N*n
113

TEMPLATE一来更乱了。以前用过开源的TEMPLATE库,说是开源的, 出错了调
试起来巨费劲,基本跟闭源没区别。吃过几次螃蟹当就知道了,只要不是你
自己的代码再怎么开源也是折腾。

【在 c****3 的大作中提到】
: C和C++的程序,memory leak啥时候都是家常便饭。
: 其实更麻烦的问题是程序crash的时候,拿着core dump文件找原因。C相对简单明了,
: stack trace一看,在看看变量的值,很多时候就能猜出原因。用C++,又多了一些抽象
: 和封装,就更费劲了。

avatar
g*g
114
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

avatar
l*s
115
以后肯定有很大改观,大家拭目以待好了。

【在 N********n 的大作中提到】
:
: TEMPLATE一来更乱了。以前用过开源的TEMPLATE库,说是开源的, 出错了调
: 试起来巨费劲,基本跟闭源没区别。吃过几次螃蟹当就知道了,只要不是你
: 自己的代码再怎么开源也是折腾。

avatar
l*s
116
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

avatar
q*c
117
在微软的时候有个 memory leak bug 我搞了一个月。 c++
10 年, 无数人, 好多 senior, principle, 2 次被当作windows 系统memory leak,
2 次被打回来。各种工具。 partner 损失 5mm.
最后我搞定了,就是内存池的问题。

【在 t****t 的大作中提到】
: memory leak算是最好调试的一个东西了, 不知道有啥可抱怨的. 又不是没有工具.
avatar
q*c
118
当然我得同意, c++ 有的是更难缠得问题。
基本上 看到 java bug 心里就是放松, c++ 就是没谱。

【在 t****t 的大作中提到】
: memory leak算是最好调试的一个东西了, 不知道有啥可抱怨的. 又不是没有工具.
avatar
g*g
119
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

avatar
z*e
120
牛银

【在 q*c 的大作中提到】
: 当然我得同意, c++ 有的是更难缠得问题。
: 基本上 看到 java bug 心里就是放松, c++ 就是没谱。

avatar
x*u
121
靠工具找leak就是找死

【在 q*c 的大作中提到】
: 当然我得同意, c++ 有的是更难缠得问题。
: 基本上 看到 java bug 心里就是放松, c++ 就是没谱。

avatar
c*e
122
指针确实是把双刃剑,还是java,c#容易些。

,

【在 q*c 的大作中提到】
: 在微软的时候有个 memory leak bug 我搞了一个月。 c++
: 10 年, 无数人, 好多 senior, principle, 2 次被当作windows 系统memory leak,
: 2 次被打回来。各种工具。 partner 损失 5mm.
: 最后我搞定了,就是内存池的问题。

avatar
c*3
123
复杂项目,程序不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库,说是开源的, 出错了调
: 试起来巨费劲,基本跟闭源没区别。吃过几次螃蟹当就知道了,只要不是你
: 自己的代码再怎么开源也是折腾。

avatar
z*e
124
也不是没有
比如小姜玩的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

avatar
b*s
125
c++不适合做大项目,早就是定论,没必要反复说了

【在 c****3 的大作中提到】
: 复杂项目,程序不crash,不出memory leak是不可能的。就算用smart pointer,你难
: 道能不用其他库,不使用其他资源,资源也有释放问题。其他系统或库里资源leak,一
: 样带来memory leak。
: Crash的时候,拿着core dump文件debug最费劲,尤其多线程,内存越界这些情况。最
: 后不可避免要追进其他开源库里去。用C的开源库,还是相对容易看懂,而且大部分情
: 况,只要看懂出问题的一小块代码是做什么的就行了,这是C直截了当的好处。用C++的
: 库,实在太费劲,期望想只看一小块代码就够了,很多情况不可能,太抽象的坏处这时
: 候就暴露出来了。
: 最后就是劳民伤财,用C++的大项目,想搞得和C做的项目一样稳定,必须上大量QA,化
: 大量时间。

avatar
x*u
126
大项目都有自己的类似JAVA的对象实现,然后用工具全局扫描代码抓违反规定的,一个
罚20美元。

【在 c****3 的大作中提到】
: 复杂项目,程序不crash,不出memory leak是不可能的。就算用smart pointer,你难
: 道能不用其他库,不使用其他资源,资源也有释放问题。其他系统或库里资源leak,一
: 样带来memory leak。
: Crash的时候,拿着core dump文件debug最费劲,尤其多线程,内存越界这些情况。最
: 后不可避免要追进其他开源库里去。用C的开源库,还是相对容易看懂,而且大部分情
: 况,只要看懂出问题的一小块代码是做什么的就行了,这是C直截了当的好处。用C++的
: 库,实在太费劲,期望想只看一小块代码就够了,很多情况不可能,太抽象的坏处这时
: 候就暴露出来了。
: 最后就是劳民伤财,用C++的大项目,想搞得和C做的项目一样稳定,必须上大量QA,化
: 大量时间。

avatar
l*s
127
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.

avatar
l*s
128
这个牛在创意,没有几个游戏能画面这么差还能流行。

【在 z****e 的大作中提到】
: 也不是没有
: 比如小姜玩的minecraft就是3d的
: 而且是大量人同时在线的3d游戏哦

avatar
T*i
129
这个多大项目算大项目?
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++不适合做大项目,早就是定论,没必要反复说了
avatar
c*3
130
有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned
int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有
检查。
出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的,
memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在
memcpy的地方。
这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现,
用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一
行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到
那天去了。

【在 x****u 的大作中提到】
: 大项目都有自己的类似JAVA的对象实现,然后用工具全局扫描代码抓违反规定的,一个
: 罚20美元。

avatar
z*e
131
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.

avatar
N*n
132

小众而已。真追求用户体验还是NATIVE,看看MOBILE平台就知道,各家都不
得不为游戏提供NATIVE借口。否则这里那里卡一下玩家一怒一颗星打上去你
的GAME就别卖了。

【在 z****e 的大作中提到】
: 也不是没有
: 比如小姜玩的minecraft就是3d的
: 而且是大量人同时在线的3d游戏哦

avatar
z*e
133
单独追求画面好的话,3d游戏没有任何优势
2d可以精确到每一个像素,3d行么?
你用3d引擎写一个胧村正我看看
目前水平还达不到,还差得很远

【在 l*********s 的大作中提到】
: 这个牛在创意,没有几个游戏能画面这么差还能流行。
avatar
g*g
134
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.

avatar
N*n
135

所以说不做类型检查害死人吗。要不我怎么总看不起JS之类的动态语言呢。

【在 c****3 的大作中提到】
: 有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned
: int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有
: 检查。
: 出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的,
: memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在
: memcpy的地方。
: 这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现,
: 用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一
: 行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到
: 那天去了。

avatar
z*e
136
你是担心gc停顿吗?
这个其实用软控制
也就是你在你可以接受gc的时候调用一下system.gc就好了
虽然系统不能保证一定会执行,但是绝大多数时候都会执行
而且你愿意的话,很多时候不释放内存也没啥大不了的
我所有的图片资源就全部不释放,反正也不大
然后等reload时候再加载,虽然说我不喜欢控制内存
但是不得不做时候,还是得做,desktop上就不管了
gc停顿pc机上远不如server上那么严重
而最大的内存块一般都是图片,程序的gc其实小得太多太多

【在 N********n 的大作中提到】
:
: 所以说不做类型检查害死人吗。要不我怎么总看不起JS之类的动态语言呢。

avatar
x*u
137
所以说坠机了

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就行吗?

avatar
x*u
138
MS把memcpy在头文件里面就加了警告。

【在 c****3 的大作中提到】
: 有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned
: int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有
: 检查。
: 出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的,
: memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在
: memcpy的地方。
: 这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现,
: 用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一
: 行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到
: 那天去了。

avatar
z*e
139
问你一个问题
unity3d虽然core engine是c++的
但是接口暴露出来是c#
那用户产生的garbage用什么来collect?

【在 N********n 的大作中提到】
:
: 所以说不做类型检查害死人吗。要不我怎么总看不起JS之类的动态语言呢。

avatar
z*e
140
看了下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).
avatar
N*n
141

在哪个MODULE产生就由哪个MODULE负责呗。这种跨语言的程序要小心,否则
C++那边丢一个NATIVE EXCEPTION出来没人管到了C#这边也不管程序马上崩。

【在 z****e 的大作中提到】
: 问你一个问题
: unity3d虽然core engine是c++的
: 但是接口暴露出来是c#
: 那用户产生的garbage用什么来collect?

avatar
z*e
142
那还是会有gc的停顿
现在这些引擎都往c#上去搞
多少也说明了littlebird的说法有些问题
c#和java在gc这一点上说是同样的东西

【在 N********n 的大作中提到】
:
: 在哪个MODULE产生就由哪个MODULE负责呗。这种跨语言的程序要小心,否则
: C++那边丢一个NATIVE EXCEPTION出来没人管到了C#这边也不管程序马上崩。

avatar
N*n
143

GC是原因之一。MANAGE CODE还有一个问题是稍微干点事就生成一大串OBJECT
吃内存,在PC上不是问题到了SERVER和MOBILE上就比较敏感了。

【在 z****e 的大作中提到】
: 你是担心gc停顿吗?
: 这个其实用软控制
: 也就是你在你可以接受gc的时候调用一下system.gc就好了
: 虽然系统不能保证一定会执行,但是绝大多数时候都会执行
: 而且你愿意的话,很多时候不释放内存也没啥大不了的
: 我所有的图片资源就全部不释放,反正也不大
: 然后等reload时候再加载,虽然说我不喜欢控制内存
: 但是不得不做时候,还是得做,desktop上就不管了
: gc停顿pc机上远不如server上那么严重
: 而最大的内存块一般都是图片,程序的gc其实小得太多太多

avatar
b*s
144
这个应该是code review能发现的吧。这错误也太蠢了

【在 c****3 的大作中提到】
: 有些问题扫不出。举个以前碰到的一个crash的例子,有人写的程序用一个unsigned
: int变量做memcpy的size。可惜在某些情况,size计算出现0-1=4294967295,他也没有
: 检查。
: 出了4294967295,然后一个内存复制,把整个进程内存全部覆盖了。程序是多线程的,
: memcpy还没有结束就crash掉了,每次crash的位置完全随机。基本没有机会,crash在
: memcpy的地方。
: 这种情况,只有一行一行读代码,或者用valgrind去检查越界。但是非常不容易重现,
: 用valgrind不知道要等到啥时候能碰到,加上valgrind本身还有误报。最后只有一行一
: 行读代码最有效。幸好代码是C写的,还容易找一些。如果代码是C++写的,不知道找到
: 那天去了。

avatar
c*3
145
这种code review绝对看不出。
size是根据其他几个变量算的,只是在某些特定情况,才会出现0-1的情况,代码看着
很正常,就是没有考虑会出现0-1这种特定情况。在一个7x24小时运行的服务器程序上
,上面有大量用户,但是发生概率是每隔几天才会出一次,有时几个星期也不发生。所
以基本没法用valgrind找越界。

【在 b*******s 的大作中提到】
: 这个应该是code review能发现的吧。这错误也太蠢了
avatar
T*g
146
不同领域本身对编程语言有不同的要求,我们不用费尽去证明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.

avatar
b*s
147
这种常见低级错误,很容易发现,如果真读了代码

【在 c****3 的大作中提到】
: 这种code review绝对看不出。
: size是根据其他几个变量算的,只是在某些特定情况,才会出现0-1的情况,代码看着
: 很正常,就是没有考虑会出现0-1这种特定情况。在一个7x24小时运行的服务器程序上
: ,上面有大量用户,但是发生概率是每隔几天才会出一次,有时几个星期也不发生。所
: 以基本没法用valgrind找越界。

avatar
T*g
148
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就行吗?

avatar
T*g
149
顺便说下SPARK,一个非常好的BIG DATA处理工具使用SCALA写的。STORM,是用JAVA和
CLOSURE写的。如果你对BIG DATA感兴趣,JAVA是绕不开的.

【在 T*********g 的大作中提到】
: 不同领域本身对编程语言有不同的要求,我们不用费尽去证明JAVA可以适用于所有的编
: 程情况。而且现在的趋势是JVM变成平台,动态语言在其上百花齐放,我们可以利用我
: 们对JVM的了解来进一步丰富我们的编程手段,让程序员的生活变得更容易一点。我个
: 人看好scala。也许有一天它可以取代JAVA。
:
: 't
: trend.

avatar
v*n
150
C++的创始人说了,如果你和硬件打交道,或者追求performance,那就用C++,否则
其他语言会适合
avatar
c*3
151
发现不了。计算memcpy 的size是要几个变量做四则运算的,包括减。问题是谁写代码
,每次减之前都要比较一下,是不是会出现减数比被减数大的情况,尤其是四则运算的
。太多这种检查,代码看着很难看。
大家都是assume某个逻辑,减数比被减数大的情况,在这个逻辑里不会发生,所以就不
用在代码里到处检查了。
我说的这个情况,逻辑是根据收到的数据包尺寸,计算UDP里面的某个应用数据的尺寸
,然后复制。正常情况计算都是对的,问题是网络里有时有变形或者corrupt的数据包
,报头尺寸和里面的不一致,逻辑就出问题了。
除非这些极端情况在开始都考虑到,或者不用memcpy,用比较安全不会越界的内存复制
函数。

【在 b*******s 的大作中提到】
: 这种常见低级错误,很容易发现,如果真读了代码
avatar
z*e
152
这根本不是软件的领域
没有硬件的配合,软件怎么写都没用
既然开始倒腾了硬件,直接对硬件下指令显然比包来包去快不少
为什么不?不是追求快么?

【在 T*********g 的大作中提到】
: Java在这种场景的确是不行的。银行交易中高频交易,利用收市时毫秒来套利的场景,
: JAVA也不行。其实就和FB底层有很多服务是C++通过Thrift开放出来给其他语言调用一
: 样,C++在内存效率和速度上还不是JAVA能比的。JAVA的特长是时间和资源不那么敏感
: 的大规模软件开发,比如淘宝,AMAZON这种。术业有专攻吧,Java目前在BIG DATA还有
: 云上的火热和这些应用场景还是有关系。
:
: time
: planned

avatar
p*o
153
数据包不验证就直接用? Assume的东西也不assert一下? 那确实是java比较安全一些 .
..

【在 c****3 的大作中提到】
: 发现不了。计算memcpy 的size是要几个变量做四则运算的,包括减。问题是谁写代码
: ,每次减之前都要比较一下,是不是会出现减数比被减数大的情况,尤其是四则运算的
: 。太多这种检查,代码看着很难看。
: 大家都是assume某个逻辑,减数比被减数大的情况,在这个逻辑里不会发生,所以就不
: 用在代码里到处检查了。
: 我说的这个情况,逻辑是根据收到的数据包尺寸,计算UDP里面的某个应用数据的尺寸
: ,然后复制。正常情况计算都是对的,问题是网络里有时有变形或者corrupt的数据包
: ,报头尺寸和里面的不一致,逻辑就出问题了。
: 除非这些极端情况在开始都考虑到,或者不用memcpy,用比较安全不会越界的内存复制
: 函数。

avatar
n*t
154
windows很多时候,就把使用别的库和方案的可能给弄没了。。

【在 T********i 的大作中提到】
: 有Windows很困难吗?
: 反正我这人是technology whore。谁的方案针对这个具体项目最优,我就跟谁走。

avatar
T*g
155
?看不懂你说啥?你做过high freq trading? 套利模型用硬件实现?

【在 z****e 的大作中提到】
: 这根本不是软件的领域
: 没有硬件的配合,软件怎么写都没用
: 既然开始倒腾了硬件,直接对硬件下指令显然比包来包去快不少
: 为什么不?不是追求快么?

avatar
z*e
156
没有做过,但是精确到ms的时候
很多os撑不住,你怎么办?
你得绕开os去操作你要操作的硬件
比如显卡,就直接操作opengl那些api了
甚至还申请一下硬件加速,以达到更快的刷新频率的目的
这个时候你用什么语言其实都不重要,直接指令式编程
对机器下指令,这个其实不是软件的问题
主要都是硬件的性能问题

【在 T*********g 的大作中提到】
: ?看不懂你说啥?你做过high freq trading? 套利模型用硬件实现?
avatar
z*e
157
前面说的那个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? 套利模型用硬件实现?
avatar
q*c
158
这话说的,当年 so big 病毒也就是 两行这样的问题每行微软花了五亿美元嘛。
要是人永远不犯错,那的却是不一样。问题是人不但犯错,还经常犯。

.

【在 p***o 的大作中提到】
: 数据包不验证就直接用? Assume的东西也不assert一下? 那确实是java比较安全一些 .
: ..

avatar
h*a
159
赞大牛,SB发了你几个M的bonus? :)

,

【在 q*c 的大作中提到】
: 在微软的时候有个 memory leak bug 我搞了一个月。 c++
: 10 年, 无数人, 好多 senior, principle, 2 次被当作windows 系统memory leak,
: 2 次被打回来。各种工具。 partner 损失 5mm.
: 最后我搞定了,就是内存池的问题。

avatar
T*g
160
您这是胡说八道,不懂别瞎说。

【在 z****e 的大作中提到】
: 没有做过,但是精确到ms的时候
: 很多os撑不住,你怎么办?
: 你得绕开os去操作你要操作的硬件
: 比如显卡,就直接操作opengl那些api了
: 甚至还申请一下硬件加速,以达到更快的刷新频率的目的
: 这个时候你用什么语言其实都不重要,直接指令式编程
: 对机器下指令,这个其实不是软件的问题
: 主要都是硬件的性能问题

avatar
z*e
161
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 病毒也就是 两行这样的问题每行微软花了五亿美元嘛。
: 要是人永远不犯错,那的却是不一样。问题是人不但犯错,还经常犯。
:
: .

avatar
z*e
162
顺便说一下
lips里面clojure可能可以用来搞skynet
但是最先有可能发迹的,还是统计等领域的那些languages
比如r什么的,毕竟ai要发飙,还没看到多少曙光
r这种早被证明过的语言,赶紧搬到jvm上去才是正经事
不管怎样,这些都是jvm上的东西,而jvm是java的一部分
无论将来怎么发展,java是绕不开的
avatar
l*c
163
沒啥好爭的,大家需求不一樣,本來就是orange and apple

要做

【在 g*********e 的大作中提到】
: 你们肯定没做过一跑就是半天的项目。要是能给客户减少20% runtime 花一倍精力也要做
: 虽然硬件性能是在提升,但这个语言上的性能是on top of it,并且客户一直有这个
: demand。没有最好只有更好。
: 做做biz logic么啥语言都不是问题

avatar
w*g
164
终于扯到AI上来了。现在的AI就matlab和C++。

【在 z****e 的大作中提到】
: 顺便说一下
: lips里面clojure可能可以用来搞skynet
: 但是最先有可能发迹的,还是统计等领域的那些languages
: 比如r什么的,毕竟ai要发飙,还没看到多少曙光
: r这种早被证明过的语言,赶紧搬到jvm上去才是正经事
: 不管怎样,这些都是jvm上的东西,而jvm是java的一部分
: 无论将来怎么发展,java是绕不开的

avatar
s*y
165
多大算大?^_^

【在 w***g 的大作中提到】
: 但是也有不少pay得很好的工作是写算法。我主要的工作就是用C++写一些螺丝钉一样的
: 程序。每个最多也就几千行,一年也写不了一两个。但是性能需要达到极致。你要用
: java,有那启动程序的时间我结果都跑出来了。一个比较好的比喻是C++就是做剑法的
: ,java是做剑阵的。20年前用C++做剑阵的那叫没办法,但现在还用C++做剑阵除了解决
: 历史遗留问题以外只能是脑子有问题了。如果是做速度的,别说C++,关键时候汇编也
: 得上。只是很多东西都隐藏在接口后面,大部分做java的看不到而已。

avatar
b*s
166
他基本什么都不知道,就是乱说

【在 w***g 的大作中提到】
: 终于扯到AI上来了。现在的AI就matlab和C++。
avatar
l*s
167
exactly.

【在 T*********g 的大作中提到】
: 不同领域本身对编程语言有不同的要求,我们不用费尽去证明JAVA可以适用于所有的编
: 程情况。而且现在的趋势是JVM变成平台,动态语言在其上百花齐放,我们可以利用我
: 们对JVM的了解来进一步丰富我们的编程手段,让程序员的生活变得更容易一点。我个
: 人看好scala。也许有一天它可以取代JAVA。
:
: 't
: trend.

avatar
i*p
168
如果你和硬件打交道, 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++,否则
: 其他语言会适合

avatar
p*u
169

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.

avatar
d*f
170
C写出来那就是你一个人的程序,公司不能把你扫地出门

【在 s***o 的大作中提到】
: 为啥不直接用C?
avatar
i*p
171
Do you read every line of code when you review other people's code?

【在 b*******s 的大作中提到】
: 这种常见低级错误,很容易发现,如果真读了代码
avatar
b*s
172
上次给你的问题的解释,你看懂了没有

【在 i**p 的大作中提到】
: Do you read every line of code when you review other people's code?
avatar
z*e
173
ml只是一个分支而已
而且将来也是朝着r等为代表的统计领域进军
matlab只是一个过路货

【在 w***g 的大作中提到】
: 终于扯到AI上来了。现在的AI就matlab和C++。
avatar
z*e
174
老样子,对于你这种太监的行径,老办法
我如果知道,你全家死光

【在 b*******s 的大作中提到】
: 他基本什么都不知道,就是乱说
avatar
w*r
175
主要是能正确练葵花宝典的人少,而不是该宝典不适合练绝世武功。等你写过20w
line+的大程序再来喷
avatar
N*K
176
你这个爪哇程序员 懂个p的AI
matlab你写过几行?各种算法你听过名字的有几个?

【在 z****e 的大作中提到】
: ml只是一个分支而已
: 而且将来也是朝着r等为代表的统计领域进军
: matlab只是一个过路货

avatar
z*e
177
哈哈,搞图形的你什么时候上法庭?
丫别下面没有了

【在 N******K 的大作中提到】
: 你这个爪哇程序员 懂个p的AI
: matlab你写过几行?各种算法你听过名字的有几个?

avatar
q*c
178
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.

avatar
N*K
179
你什么时候把你妈献来?

【在 z****e 的大作中提到】
: 哈哈,搞图形的你什么时候上法庭?
: 丫别下面没有了

avatar
z*e
180
你妈在我这里,你过来见吧

【在 N******K 的大作中提到】
: 你什么时候把你妈献来?
avatar
b*s
181
你真不知道自己多少水平吗?

【在 z****e 的大作中提到】
: 老样子,对于你这种太监的行径,老办法
: 我如果知道,你全家死光

avatar
z*e
182
你知道你的水平?
泥马做个破医疗器材的又来装逼
你连你自己做什么都不敢承认
装毛

【在 b*******s 的大作中提到】
: 你真不知道自己多少水平吗?
avatar
w*r
183
java 是为烙印发明的,是为c++写不好的马工而生
为从来不为design和编程思想 而费心思的人而生
avatar
z*e
184
没有用,说这个也改变不了江河日下的事实
做鸵鸟有啥搞头?

【在 w********r 的大作中提到】
: java 是为烙印发明的,是为c++写不好的马工而生
: 为从来不为design和编程思想 而费心思的人而生

avatar
y*k
185
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的看不到而已。

avatar
t*y
186
为什么不能做大项目?
我觉得这个主要是架构设计的问题吧。还是需要一个高高手领导的。
如果架构可以,就看生成的任务了,能够细化,逻辑清晰的话也没问题吧。
我觉得在这个web 和 mobile的时代,C++的落伍主要是 Framework 太少了。而且 C++
对于代码的质量要求确实比 C#,python 这些高(不会Java)。这个也就让开发速度无
法和其他的相比了。
但是说不能做大项目,这个就有点不合适了。
avatar
d*f
187
因为大部分工资10来万的马宫只有赵策同学的水平,作大项目你做不起啊

+

【在 t*******y 的大作中提到】
: 为什么不能做大项目?
: 我觉得这个主要是架构设计的问题吧。还是需要一个高高手领导的。
: 如果架构可以,就看生成的任务了,能够细化,逻辑清晰的话也没问题吧。
: 我觉得在这个web 和 mobile的时代,C++的落伍主要是 Framework 太少了。而且 C++
: 对于代码的质量要求确实比 C#,python 这些高(不会Java)。这个也就让开发速度无
: 法和其他的相比了。
: 但是说不能做大项目,这个就有点不合适了。

avatar
t*y
188
不讨论具体个人问题,因为我不了解这里的任何一个人。
就事论事。每个公司,或者说leader都要面临手下的人水平不能满足的问题。我觉得这
个应该是在架构设计的时候要考虑到的,而且应该强调 code style 的重要性,这个是
一个项目组成部分。
对手下人的能力有认识,分工的时候有区别,多review code,带领大家提高,其实也
就是1,2个月,大家写code的样子就差不多了。当然,我这个是指在10个人左右的小组
中的事情。但是,无论多大的项目,也是一个组一个组的在做。统一思想,项目是没有
问题的。
当然了,现在用 C++ 的开发web 和 mobile 的速度是远远无法与其他相比的,毕竟
Framework 在那里摆着呢。

【在 d********f 的大作中提到】
: 因为大部分工资10来万的马宫只有赵策同学的水平,作大项目你做不起啊
:
: +

avatar
d*f
189
我实事求是,我必须承认我的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 在那里摆着呢。

avatar
t*y
190
我同意你说的开发周期长,相对成本高,所以用的越来越少。
“没有3年以上hand-on经验是不可能的”这个不一定的。
选好领头人,年轻人的学习能力真的非常强。上手很快的。而且不会需要他们做架构的
,只是完成功能,这个好说。

【在 d********f 的大作中提到】
: 我实事求是,我必须承认我的C++水平根本做不了大项目,就以我的经验来说,C++你能
: 开放像样的项目,没有3年以上hand-on经验是不可能的。能做framework的都需要10年
: 左右的经验。就从c++普及的历史来看,这样的马宫几乎没有30,50w根本找不到,就算
: 你有钱,你也没有这么长的开发周期。所以从项目管理的角度来说,我同意c++作不了
: 现在流行的web,mobile之类的应用,成本是一切

avatar
d*f
191
不是相对高,是非常高。没有足够经验的马宫开发的c++ code都非常buggy.一般大家都
知道,维护成本比开发成本还要高的多,所以c++的项目最理想的开放状态就是找牛人
,宁可请一个1M的牛人也绝对不要10个100K的

【在 t*******y 的大作中提到】
: 我同意你说的开发周期长,相对成本高,所以用的越来越少。
: “没有3年以上hand-on经验是不可能的”这个不一定的。
: 选好领头人,年轻人的学习能力真的非常强。上手很快的。而且不会需要他们做架构的
: ,只是完成功能,这个好说。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。