五千年(敝帚自珍)

主题:随便说说c++的这次吵架 -- 透明

共:💬71 🌺370
分页树展主题 · 全看首页 上页
/ 5
下页 末页
    • 家园 随便说说c++的这次吵架(5)

      从作为导火索的毕达哥拉斯三元数开始,肖恩说,写好毕达哥拉斯三元数,既要搞好得懂点数论,又要用好线性代数才能写出高效代码,你们俩的代码都不合格,明显上数学课打洋晃,搞什么搞,玩两小儿辩日么?

      游戏青年大约是吐槽太嗨,提了几个肖恩不能忍的事

      - iota()这种函数命名莫名其妙

      - 程序员干活又快又省才是是硬道理(Goal of programmers is to ship, on time, on budget)。

      - 标准委员会高高在上,不食肉糜自娱自乐,他们的声音没有被标准委员会听到

      肖恩给他补了堂历史课和思想品德综合课。

      iota()源自 APL(A Programming Language),就是 A 语言。这门语言的的特点就是跟数学概念联系紧密。

      STL 的设计深受影响,另外一个被其风格荼毒的语言是 MATLAB。没听说过 MATLAB 的工程师起立,面壁。

      发明这个语言让 Ken Iverson 在 79 年抱走了图灵奖。“ι”作为希腊字母表中的第 9 把交椅,数学家们请来表征包含映射(inclusion map)。Ken 感受到了其中的隐秘联系,在 APL 中用 iota() 来生成一个连续的整数序列。除了 STL, google的 Go 语言也这样。不奇怪不是,Google 的名字都这么数学范,10 的 100 次方。

      编程是一个行业。作为从业人员,提升本行业的水准是一项道德义务,越资深越牛掰,对这个社区的义务就越重。

      履行义务的方式很多。带人,讲课,写书,参加社团,帮助开源都算。

      必不可少的是,好好学习,天天向上。读一读论文,工作的时候多翻书参考。

      年轻人,无知而无畏,不以为耻反以为荣,在历史悠久的中文是贬义词,我用英文给你港一遍。Not knowing the history of iota() should not be something to be proud of, but an embarrassment。

      肖恩是说,得有荣誉感,干一行要爱一行,通过提高自己的来提高行业平均值。

      写代码的人永远不能把握谁在用,人家怎么用。他自己的代码,就被广泛应用到从来没有预见过的场合,所以对 goal 肖恩下了个自己的定义:

      A goal for a programmer has to be to look beyond the product they are shipping and recognize their obligation to create correct and efficient solutions and understand that their code may well endure, for good or bad(一个程序员的眼光应该超越实现当前产品的需求,认识到他们的义务是做出正确和高效的解决方案,他们的代码能久经考验)

      ISO C++标准委员会不是一个一般意义上权力机构,基本上愿意交会费,愿意自己出时间,出酒店机票,出提案,每年全世界参加会议被专家巨细靡遗地评头论足,就可以申请加入。

      所以参加标准委员会背景各异,有人以语言培训为生去了解最新进展,有人去代表公司利益,还有人去刷学术资历。包含公司代表在内(微软就多年不甩标准委员会搞一套自己的VC++, Herb进去后才扭转风气,积极参与),多少有些为了满足马斯洛模型顶层需求,通过为广大人民服务实现自我价值。

      被影射成高高在上,何不食肉糜的官僚机构。肖恩说,里面的人除了一个人,那个发明了C++语言的Bjarne,有可能会有这个想法, 他不知道哪一个是为了收集别人的意见加入标准委员会的。如果想对语言的未来发展方向有发言权,那就带张凳子坐桌子边上。

      (完)

      通宝推:崇山彩云,
    • 家园 C++应该被看成是个语言集合

      至少有三种语言:

      一,C++ is C

      二,C++ is an OO language

      三,C++ is a genetic programming language

      有的童鞋觉得难,可能是没有看清楚这个问题。如果把这三种不同的语言风格混在一起,当然是既难学,又用不好了。

      通宝推:johny,
      • 家园 说得太好了

        真正的深入浅出

      • 家园 这是正解

        事实上在80年代OOP通过C++普及后,像对待C的面向过程一样,C++把OOP就当成一个子集遗产,继续向 Generic 前进,在新世纪又在template的基础上探索Functional。

        C++目标一直是zero-overhead的抽象。这也是虚拟机进不了语言核心的主要原因。

        C++的设计目标不是任何模式,这正是持续关注他的价值所在,任何新的模式一出来,就会有人用 C++ 实现出来,通过观察学习这些实现,深入理解这些模式,跟看师傅组装车一样。

        • 家园 深以为然

          偶就是从 c 开始,被其强大,简洁,直接,粗暴所吸引。

          而后引入OO,进入c++。从封装,到继承,再到多态。

          然后就一下子进入Generic编程。

          再然后才是使用STL。。。

          这一晃25年过去了。

          因为一开始是从图像解码/编码,算法以及硬件操作进入的,倒没怎么被MFC带歪过。1999年到微软研究院实习的时候,写界面要用MFC,用了两个礼拜,受不了其繁琐和复杂,干脆在 win32API 的基础上做了个自己的c++库,一直修修改改用到今天。

          本人非码农,只是用 c,c++,fortran,Java,Python,Matlab 而已。

    • 家园 随便说说c++的这次吵架(4)

      社区领导,靠感召力。

      大伙兴致而来,兴尽而去,来去自由。 社区领导如同篝火晚会中添火材的人,对团队约束力小,义务也小,几乎不说重话,Linus 除外。

      比如,Python 之父 Guido 曾经封自己为 BDFL(Benevolent Dictator For Life). 如今 Python 火了,信众一多,意见就杂了,罔顾定于一尊,对他也没大没小。Guido 很烦,也只能自己退位,撂下一句 So what are you all going to do?

      企业领导就像牧羊犬,靠执行力。

      企业里做事,每一件,有预算有目标。领导靠执行力。

      执行力体现在既要本领过硬让人信服仰慕,说话有人听;又要能树旗帜指引方向让人砥砺前行,说话人爱听;还要霹雳手段镇压宵小反贼,不换思想就换人。

      所以不会上课的领导不是合格领导,不会说狠话的领导不能长治久安。

      肖恩除去一开始在Apple的5年,在Adobe待了25年,中间去Google又出来的一年忽略不计,是个久经考验的企业领导。

      按照Stephen Covey的套路,肖恩先总结游戏青年的3个论点,并略带同感同情地一一回应。

      - C++ 编译太慢

      - debug 版本太慢

      - 代码太难懂(cognitive load)

      第一点,严重程度因人而异。

      比如他自己从小在小本本上写了多年代码才见到人生第一台电脑,于是养成习惯,代码写了改,改了再写,直到人脑找不到毛病,再交给电脑。

      人家才不敲两行就F5, 要几个星期才编译一次。有没有想跪的?

      第二点,他解释了慢是因为算法复杂度从O(1) 变成了 O(N),顺便点了一下微软的名。接着推荐了丘比特(Jupyter)。是的, 不止 Python 可以用 Jupyter, 所以他们才从 IPython 改成这个名儿。

      第三点,他引用大卫在在苹果WWDC 2018上的一段代码,结合自己以前演讲的 no raw loop 建议,详细分析比较了其中的 cognitive load,阐述自己的解决方法:把代码拆分成很小,可以独立验证的单元,增加功能的独立性,就像写库函数一样。引入<algorithm>, 固然编译时间会多一丢丢,得到的是对代码安全性,正确性的信心。

      这个建议其实不限于语言,满屏 for, if/else, a,b,c, i,j,k, 不用马蜂帮忙,头也会大。良好命名的函数可读性和可维护性不知高到哪里去了。

      防守完了,下面反击。

    • 家园 看完了这个吵架帖123, 还是没弄明白在吵啥。

      能不能附上原文 link 啊

      • 家园 吵架内容没什么新鲜的

        翻来覆去就那几样,太难,太复杂,老人政治之类。只是这次参与的人多,掀起一个人浪。我也就蹭个热度,一边抄袭,一边散漫议论一下,没想写成技术贴。最近生病,休息了几天,就快完了。

    • 家园 随便说说c++的这次吵架(3)

      子弹飞了一会,有有好事者请Sean点评,no,no,no...你想错了,不是麦当娜前夫,没从阿甘身边偷走珍妮,也不是下木女总统的过去,那位叫Sean Penn, 这位叫Sean Parent。

      肖恩在去年在cppcon上说,这辈子最受用的夸奖就是,Photoshop的大佬Mark Hamburg 20年前就说,我也只知道50% photoshop,but that's OK, Sean got the other half。

      自拍侠们如果万般PS都效果不满意,可以写信给肖恩,收到回信的概率为零,但是概率为零不代表不会发生,万一回了呢?梦想还是要有的。

      这个肖恩和亚历山大共事多年,事实上他做过亚历山大5年的老板。亚历山大已经金盆新手,颐养天年。肖恩如今也自然成为STL算法派的领袖人物。

      在那篇C++ Seasoning演讲中,肖恩把std::rotate算法玩出了花... ...下面赏花人晃倒一片,原来是这样,原来可以这样,真的真的可以这样。

      当年Linus发飙的时候,有人揣了一份来到boost, 说老大,讲两句。大卫说,我们不要土羊,土山坡,也不要拿衣服。我们要把有限的生命投入到无限的代码中去。要有战略定力。来人删帖躬身退去。江湖上纵然旌旗在望,鼓角相闻,boost岿然不动。

      大卫善用了精神领袖的身份,社区传播了正能量。再说了,还能怎样。跟Linus抗?百岁寿星喝毒药。论水准,Linus一边怼Andrew S. Tanenbaum一边写Linux,载入wikipedia正史。论火力,四字箴言 RTFM,每一个走进Linux殿堂的人,都要先拜一下大堂这方匾额。

      肖恩不能这样。

分页树展主题 · 全看首页 上页
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河