西西河

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

共:💬71 🌺370 新:
全看树展主题 · 分页
/ 5
上页 下页 末页
家园 语言和应用是不一样的

尤其是在现在开源模式下的语言,套用应用级产品的经验不是太合适。当然新语言的问题还是根基太小,和C还是没有办法比,操作系统不死,C就不会死。只有在新领域中建立稳固的基础,一种新语言才能获得长久的生命力。所以,问题的关键在于用go实现了什么,这个问题现在只能说它具备了素质,是不是能做出来还需要看机缘。

家园 我们观点其实是一致的

有了应用,就有了市场和影响力,语言后面的支持力量就可能存续下去。语言本身优劣关系不大。

我前面提到那款SCADA产品,最开始是从别的公司收购两款,开发人员全部辞掉,只要以前service团队,稳住客户;跟我们一起开会,解释以前都有什么功能和客户需求;从第一行代码起全用C#开发。所有的硬件软件license说明书从巴黎发到上海,原来的软件有delphi, java, c++,除了修客户bug,我们都没看过他的源代码。

购买公司是为了它的客户,从商业层次上看,所有工具都是消耗品,用自己手上正用的,项目进度,维护都更保险。

另外,在我看来开源不能独立成为一股力量,象水一样,固然能行舟也能覆舟,但没风就是啥力量都展现不出来。

开源能力来自大公司往特定方向的推动。小公司可以在这个过程中喝喝汤,有机会被高估值收购。

Google一直很隐秘的使用开源作为进攻武器。自己的核心产品从不开源,顶多写写论文似有若无的描述一下。拿Android进攻apple, chrome 进攻IE和Firefox。

家园 intel fortran有自己的数学函数库
家园 基本的三角对数好像是有的

高级一点的像贝塞尔函数什么的就没了。

家园 STL和java.util.collection源代码

前者是天书符咒,后者是醇美的散文诗。

家园 没看懂您二位在说什么

intel有套MKL, math kernel library,可以用C和fortran调用,内部是BLAS, LAPACK, FFTW。基本上要用的数学函数都有了。只不过接口还是古老的Fortran格式,用起来很难受。 速度那是没话说。

Fortran这东西垂而不死,历史遗留太多,而且那些东西现在估计谁都没兴趣再写一遍,既然能用就凑合用吧。

家园 不完全可比

stl的算法都是基础级的,算法教科书的基本内容,数据结构和对数据结构的操作。几乎所有通用语言都提供。

但在实现上,提供了一个漂亮的结构和算法语义的垂直正交。

比如加法就是加法,跟你是什么数据类型无关,而且不仅限于基本整数,实数这种数值类型,还包括抽象意义,比如,可以

family + =baby

house += room

sun += planet

一方面这种扩展是无限,只要定义好自己的语义,这个代码的写法都是一样的。

另一方面,你没有用到就不会有代码编译到最终文件。就算你定义了太阳和行星关系的语意,如果你写的是房地产软件,前者的软件代码,编译器会扔掉。

所以stl的晦涩体现这些问题的解决。而不是算法本身。stl是独一无二的,这是因为c++的template是独一无二的编译期多态。

Java/.net是运行期模拟其行为,徒有其表。这是语言的基础区别,苹果树上接不出梨。

微软曾经实现了c++编译到.net, 以为他能做到,所以搞stl.net。他们学到了很重要一课。后来反过来搞.net native.后来...微软已经是印度人公司了,所以...

通宝推:PCB,
家园 Intel? Math Kernel Library
家园 外一篇 C++ 难不难?值不值得学?

说C++难的人,有穷经皓首,幡然醒悟,也有折戟沉沙愤然离去,还有转发500遍赚流量粉丝的。

C++之于其他语言, 犹如数学之于其他理工学科。追求抽象性。比如不能深入理解各种iterator(forward, reverse。。。。),是不可能掌握好STL

正如早期各种工程学科没有成立之前,牛顿,莱布尼兹,高斯们直接上阵,一边建立数学理论一边解决问题。现在是工程师都用各种软件硬件直接得出问题答案。Python,Java,C#那些one liner是建立在C++写的虚拟机上,更不用说这些语言不能抵达的领域。

C++是否值得,如同上面把它比作数学,其必要性是毋庸置疑的,虽然可能需要点调查才能深刻理解使用范围广度和深度。

对于企业,用不用C++, 那看你想做联想还是华为,科工贸还是贸工科?你的招牌对目标工程师的吸引力何在。为了情怀把投资人的钱和耐心耗尽了,就只能顶着骗子的帽子出国,下周都不能回来。

对于个人,因人而异,数学固然重要,数学系也没有被挤破门槛。

我个人的态度是把它是否有用和是否用它分开来。

当我觉得 life is too short, 我就用Python, C#, Javascript之类。

当我觉得岁月静好的时候,摆好文房四宝,写几行代码存起来,或是去C++社区找一篇文档读读,演讲听听,预防阿尔茨海默病。

或许因为bjarne喜欢哲学著作(克尔凯郭尔的粉丝)的示范作用,C++社区的言论有很多深度思考,哪怕是戏谑。

点看全图

如果还是翩翩少年,刚好有一个好的C++氛围环境,投入的爱一次,忘了自己,非常可能终身受益。但是做好半途而废的思想准备,半途而废的事多如繁星,多一件不多。

如果已经错过了,那就继续错过,life is too short.没什么不能错过。

通宝推:辣椒,宏寺,文化体制,
家园 所以C++

就是编程语言里的郭小四、公孙永浩和矮大紧?搬砖也记得45度角仰望星空,卖卖情怀,缅怀一下诗和远方?

家园 no, 刚好相反

随着软件像电力,电子,通讯一样从高精尖的研究走向大众,并成熟成为一种工程,一个产业,最好的质量已经不是目标。 标准化的规模化生产,和相应的工具才是主流。C++更像是一种实验室设备,类似示波器,酒精灯。

这是JAVA, Python 流行的主要原因,顺应时势。也是我没写完的这次吵架的根本原因,新的一代工人已经成长起来,不明白当司机为什么要动汽车结构会修车,因为产业成熟到真的可以不需要。

现在那些培训学校就是这样,教几万块钱,集中封闭式培训半年,帮编一份简历,就可以去应聘上岗。

这是产业成熟,准入知识门槛降低的必然趋势。是自然分层的结果,是一种演进中的分化。矮大紧那是非专业人士对专业领域的大众化普及,捣糨糊,是一种融合。

基本上,我觉得,是社会的进步。

家园 的确如下面所言,这个理解错的太远。

没有C++,我们现在所处的时代就基本不存在,因为底层,和需要高效率的程序需要C++,它就像是如来,法力无边,无处不在,却不被一般人所觉察。而其他的一些解释性语言,利用其自身简单抽象的代码和各种编译型语言做成的库,不需要了解底层和数据构造的细节,就能够进行高级功能的开发,降低了门槛和细节的描述,从而达到迅速开发的目的,这个就像各路小神仙和妖魔鬼怪,即使没有专心修炼,也可以随便弄个法宝,从而可以称霸一方,如果遇到高手,那就迅速去搬救兵。

家园 继续吧,送花哈

最近C++社区蹦跶啥,没有精力关注,你正好吹吹水,我也顺一耳朵

前面说的各种变迁,我基本都经历过,STL实在太惊艳了,后面JAVA,C#只能捧臭脚了

C++嘛,呵呵能遇到最多的是VC的码农了,现在大学还让学生配置VC6呢,还是国内排名靠前的大学哦,帮我女儿检查作业,伸手就不过,遭到鄙视,我只能说这个VC6玩过,后来我知道的太多了,反倒语法他不认识了,当然翻下MSDN,还是可以搞得过的。

其实C++真的很难学,入门当做C的加强版了,后来发现,不是这么回事,OOP和STL搞清楚,觉得自己应该可以了,再深入进去,呵呵,勉强说自己会写C++吧,C的话,我可以说随便玩,C++可不敢说。

用过的C++开发环境一大堆,近年来,开发精力转向了nodejs, golang这些。

但是这个C++确实挺好玩的,学究特别多,说法一套套的,没事的看看还是有意思的,至于C++做项目,看具体什么项目,图形,游戏引擎,还有通信,应该还是可以的,玩硬件的,应该还是以C为主,有其他领域比较牛的C++项目,还想听楼猪说说

家园 不是一回事哦

STL代码不用全读,只读一个排序差不多思路就搞清楚了,编译时多态,完全抽象的语义,这才是优美的诗歌啊,Java那个顶多算打油诗。

STL这种泛型编程的恶心的地方是调试期没有很好的工具支持,非常反人类,我几乎都是靠日志来排查问题,当然我有好几年没有写了,也许现在有点好工具玩玩

家园 呵呵,恐龙在此

其实coding风格看实际需要,原有的团队一个风格,你非要和人家不一样,这个很难共事。

随便哪种风格,除非我太恶心了,基本看看人家代码,都能似模似样的混进去

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


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

Copyright © cchere 西西河