61阅读

重蹈覆辙-谜语:重蹈覆辙(打一体育词语)

发布时间:2018-03-02 所属栏目:c论坛

一 : 谜语:重蹈覆辙(打一体育词语)

谜面重蹈覆辙
谜语类型打一体育词语
谜底前滚翻,后滚翻

二 : C与C++社区混战,C#会重蹈覆辙吗?

最近,Linux之父Linus Torvalds在事隔三年之后,又一次炮轰C++语言(见)也有非常热烈的讨论。国内C++的大牛网易的云风也加入论战(),似乎C++一无是处。

总结目前各方对C++的批判,主要观点如下:

1. 做系统底层编程(比如linux内核、网易游戏引擎),C++和C相比没有任何优势。因为底层编程不需要C++那么多的“面向对象抽象”

2. 做上层应用编程(比如CRM、ERP等企业应用),虽然需要“面向对象的抽象能力”,但C++过多的语言机制导致C++语言陷阱太多(特别是稍不留神就有内存泄漏),因此应该选用提供垃圾收集机制的语言。(Linus没说,但是基本指的是C#、Java几个主流语言)。

虽然这种说法有些太过绝对,但是firelong认为还是相当有道理的。特别是第2点,因为以前我们公司就有一个C++写得CRM项目,刚开始老板还让我们在C++上继续改,改了将近半年,全体人员都决定放弃了,转到现在的C#上。Linus这种观点出来后,C#社区好像很受鼓舞,我甚至在某个论坛上看到一些C#程序员在欢呼C#万岁了。但是firelong的问题是,C#语言真的完美了吗?仔细思考这个问题后,firelong认为并非如此。事实上C#语言现在一路狂奔,有点重蹈当年C++语言发展的覆辙。firelong将不成熟的思考写出来,与大家共同讨论。

firelong认为C#目前可能重蹈C++语言覆辙。微软从2002年C# 1.0开始,到2010年8年时间推到C# 4.0,平均每2年一个新版本。其中属于重大的语言特性有:泛型、Lambda表达式与linq、dynamic动态特性、并发编程。除了重大语言特性外,还有很多很多技巧语法。微软这样一路狂奔,只要是想出来的cool点子,都往C#语言里面加。 很多程序员也很追求cool的效果,瞧瞧看,我们C#语言又有XXXXXXXXX功能,你们Java、Python XXXXX有吗?

但问题是“新特性越多,语言就一定越强大吗?”,我们真的需要那么多cool特性的编程语言吗?C++语言走到今天的墙途末路,众人踩踏的地步,跟C++语言过于臃肿的功能特性密切相关。

firelong有限几年的编程经验表明,语言新特性对语言并非一本万利,而是可能会带来很多伤害:

1. 新特性加重了编译器的编译负担,编译效率低下。大家试试很多linq项目的编译速度就知道了。

2. 新特性加重了运行时的运行负担,运行效率低下,大家试试很多dynamic动态新特性的运行效率就知道了。

3. 新特性加重了程序员的心智负担,在写代码时必须考虑很多功能背后的影响,“顾前思后”就是C++程序员最后抛弃C++的一个很大的原因。大家回想一下现在在VS2010底下写C# 4.0程序,还有当初写C# 1.0程序的流畅性了吗? 

有的朋友可能会说,那是firelong水平低,对这些新特性没有掌握好,所以要批判C#新特性。首先firelong水平不一定低(带一个10人的C#队伍已经近2年)。其次水平再高,也有心智负担。看看Linux之父Linus Torvalds和网易的云风等诸多国内外大牛批判,他们可都是响当当的C++技术大牛,难道是对C++各种特性不熟练所以才批判C++?

综上所述,飞龙对C#编译器组有以下建议:

保留C#以下功能:

1. 面向对象

2. 接口

3. 构造器、字段、方法

4. 垃圾收集

5. 异常

6. 并发支持——这是firelong唯一投票支持的新特性,因为它在今后的项目太常用了。

7. 和其他语言的互操作(类似P/Invoke)——那些不适合C#做的,用其他语言来做,然后与C#互操作。

然后将研发精力投入C#语言的代码优化和内存收集优化上,让C#成为一门效率超高的语言,比那些华而不实的新特性重要得多!

删除C#以下功能:

1. 委托和事件(这些都可以用接口来做,参考Java)

2. 反射(反射用处很小,如果真想用反射,请用其他语言)

3. 特性(也可以用接口做,C++没有特性不是一样活得很好)

4. 属性、索引器、析构器(都是方法)

5. JIT编译(直接编译成native代码,完全没必要JIT,微软当初JIT是因为承诺跨平台,但是现在C#真的跨平台了吗?还是Windows上跑,Mono这种阿斗别提了。)

6. 泛型(没必要,用的很少)

7. Linq(去掉,还是用Sql语句+存储过程来的实际)

8. dynamic(去掉,真想dynamic,让ruby、python, f#等去做吧)

9. 还有更多。。。。大家来补充

firelong说得不一定对,但是firelong相信一个简洁、高效的语言,比那一堆华而不实的“新特性”要有用得多——语言最后的威力是“开发软件”,而不是“比拼新特性”。为什么C语言至今仍是编程语言的王者?它满足了简洁、高效!而不是它有很多新特性。如果C#不这么做,将会有其他语言埋葬C#。就像C慢慢埋葬C++,Ruby慢慢埋葬Java一样。

当然微软C#编译器组不会听firelong的建议,但是如果这样下去,C#几年之后将比现在的C++更为臃肿,那时候批判C#的就不止firelong一个人了,恐怕也不仅仅是批判了。

非常想听听大家的意见。

P.S. 顺便做一个小调查,请大家回帖说一下自己主要在用C# 1.0,还是2.0,还是3.0,还是4.0?

最近,Linux之父Linus Torvalds在事隔三年之后,又一次炮轰C++语言(见http://www.realworldtech.com/forums/index.cfm?action=detail&id=110563&threadid=110549&roomid=2 )。在国外技术社区掀起新一波的批判C++语言的狂潮。国内技术社区也不甘清净,csdn在这里()也有非常热烈的讨论。国内C++的大牛网易的云风也加入论战()。

总结目前各方对C++的批判,主要观点如下:

1. 做系统底层编程(比如linux内核、网易游戏引擎),C++和C相比没有任何优势。因为底层编程不需要C++那么多的“面向对象抽象”

扩展:贵阳交警与老兵混战 / 轴心国与同盟国混战 / c 社区

2. 做上层应用编程(比如CRM、ERP等企业应用),虽然需要“面向对象的抽象能力”,但C++过多的语言机制导致C++语言陷阱太多(特别是稍不留神就有内存泄漏),因此应该选用提供垃圾收集机制的语言。(Linus没说,但是基本指的是C#、Java几个主流语言)。

虽然这种说法有些太过绝对,但是firelong认为还是相当有道理的。特别是第2点,因为以前我们公司就有一个C++写得CRM项目,刚开始老板还让我们在C++上继续改,改了将近半年,全体人员都决定放弃了,转到现在的C#上。Linus这种观点出来后,C#社区好像很受鼓舞,我甚至在某个论坛上看到一些C#程序员在欢呼C#万岁了。但是firelong的问题是,C#语言真的完美了吗?仔细思考这个问题后,firelong认为并非如此。事实上C#语言现在一路狂奔,有点重蹈当年C++语言发展的覆辙。firelong将不成熟的思考写出来,与大家共同讨论。

firelong认为C#目前可能重蹈C++语言覆辙。微软从2002年C# 1.0开始,到2010年8年时间推到C# 4.0,平均每2年一个新版本。其中属于重大的语言特性有:泛型、Lambda表达式与linq、dynamic动态特性、并发编程。除了重大语言特性外,还有很多很多技巧语法。微软这样一路狂奔,只要是想出来的cool点子,都往C#语言里面加。 很多程序员也很追求cool的效果,瞧瞧看,我们C#语言又有XXXXXXXXX功能,你们Java、Python XXXXX有吗?

但问题是“新特性越多,语言就一定越强大吗?”,我们真的需要那么多cool特性的编程语言C#吗?

C++语言走到今天的墙途末路,众人踩踏的地步,跟C++语言过于臃肿的功能特性密切相关。 firelong这些年的编程经验表明,语言新特性对语言并非一本万利,而是可能会带来很多伤害:

1. 新特性加重了编译器的编译负担,编译效率低下。大家试试很多linq项目的编译速度就知道了。

2. 新特性加重了运行时的运行负担,运行效率低下,大家试试很多dynamic动态新特性的运行效率就知道了。

3. 新特性加重了程序员的心智负担,在写代码时必须考虑很多功能背后的影响,“顾前思后”就是C++程序员最后抛弃C++的一个很大的原因。大家回想一下现在在VS2010底下写C# 4.0程序,还有当初写C# 1.0程序的流畅性了吗?  

 有的朋友可能会说,那是firelong水平低,对这些新特性没有掌握好,所以要批判C#新特性。首先firelong水平不一定低(带一个10人的C#队伍已经近2年)。其次水平再高,也有心智负担。看看Linux之父Linus Torvalds和网易的云风等诸多国内外大牛批判,他们可都是响当当的C++技术大牛,难道是对C++各种特性不熟练所以才批判C++?

综上所述,firelong对微软C#编译器组有以下建议:
保留C#以下功能:

1. 面向对象

2. 接口

3. 构造器、字段、方法

4. 垃圾收集

5. 异常

6. 并发支持——这是firelong唯一投票支持的新特性,因为它在今后的项目太常用了。

7. 和其他语言的互操作(类似P/Invoke)——那些不适合C#做的,用其他语言来做,然后与C#互操作。

然后将研发精力投入C#语言的代码优化和内存收集优化上,让C#成为一门效率超高的语言,比那些华而不实的新特性重要得多!

删除C#以下功能:

1. 委托和事件(这些都可以用接口来做,参考Java)

2. 反射(反射用处很小,如果真想用反射,请用其他语言)

3. 特性(也可以用接口做,C++没有特性不是一样活得很好)

4. 属性、索引器、析构器(都是方法)

5. JIT编译(直接编译成native代码,完全没必要JIT,微软当初JIT是因为承诺跨平台,但是现在C#真的跨平台了吗?还是Windows上跑,Mono这种阿斗别提了。)

6. 泛型(没必要,用的很少)

7. Linq(去掉,还是用Sql语句+存储过程来的实际)

8. dynamic(去掉,真想dynamic,让ruby、python, f#等去做吧)

9. 还有更多。。。。大家来补充

firelong说得不一定对,但是firelong相信一个简洁、高效的语言,比那一堆华而不实的“新特性”要有用得多——语言最后的威力是“开发软件”,而不是“比拼新特性”。

为什么C语言至今仍是编程语言的王者?它满足了简洁、高效!而不是它有很多新特性。如果C#不这么做,将会有其他语言埋葬C#。就像C慢慢埋葬C++,Ruby慢慢埋葬Java一样。 

 当然微软C#编译器组不会听firelong的建议,但是如果这样下去,C#几年之后将比现在的C++更为臃肿,那时候批判C#的就不止firelong一个人了,恐怕也不仅仅是批判了。

 非常想听听大家的意见。 P.S. 顺便做一个小调查,请大家回帖说一下自己主要在用C# 1.0,还是2.0,还是3.0,还是4.0?

扩展:贵阳交警与老兵混战 / 轴心国与同盟国混战 / c 社区

三 : 侵蚀 覆辙

最不易的是藏匿,

将所有情绪蔓延在掉落的墙皮中,

石板路间的缝隙,

不舍的与树胶相连,

停留或行走在奔跑的轨道中,

随后,不断找寻,( 文章阅读网:www.61k.com )

就是那些藏匿过的身影,

或者干脆不顾那许多继而纯粹的逍遥着,

直到有什么触碰到些做过掩饰的踪迹,

而后发现做了许多多余无谓的动作,

只好将这一些琐碎与灵魂粘接,

形成记忆,

然后不顾一切吸取其中每一点精华,

在看不到未来的时候。

后来在发现快要失去踪迹之前,

试图重新铺设一条墨绿色的轨道,

或者,

就一个大的可怕的角落,

想从这里开始新一轮的藏匿,

但发现之前做过的铺垫再也找不到踪影,

于是犹豫了,

那种裹着糖衣的肃杀的气息,

或与之相反的那些纠结的情绪,

便沿着一切藏匿过的踪迹开始慢慢侵蚀,

直到从内里开始燃烧,

鼓起勇气想做的就是不要重蹈覆辙。

谁言别后终无悔,

寒月清宵绮梦回。

四 : 重蹈覆辙辗新伤

你一转身,便暗淡了叶尔羌璀璨的金色,秋,在一挥手之间东去,空留下如今回辗的车辙。

昨天的笑声还残留在耳畔的风中,昨天的呢喃还亲切在白杨的林梢,而昨天绚烂的色彩却随着片片黄叶的翻飞零落为戈壁滩上不经意的尘埃。

重温的路如此艰难,只因为这伤口太新鲜。路依然境依然车儿依然,而一伸手时空寂的副驾怎样也拾不起我曾经小巧精致的温柔。你的东归,我的无奈。

——昨日依稀千般情,重蹈覆辙辗新伤。

夜的尽头,谁在叶尔羌险道的岸边一声声珍重;路的崖上,又是谁在尘土的翻滚中轻轻的一握。生命的旅途,你的关切如戈壁的晚霞,弘大而温馨。

你去了,带走一片芳菲。重来时,收获满心怀念。( 文章阅读网:www.61k.com )

——这应该是冬的地盘了,凄厉的风萧萧了我的双眼。莎车,喀群,恰尔隆,还有库施拉普,这些让你曾经多么拗口而陌生的名字,今夜,东方不眠的今夜,亦或是你情意切切的念叨与祈祷吗?

来去匆匆的脚步,是我们的昨天。而一点一滴的重温,竟是我无法绕开的车轮。你在叶尔羌,你在叶尔羌的每一个角落,在我的每一道新鲜伤口上。亲爱,万里之外,你一定感觉了此刻我隐隐的疼吗!

我在天边的戈壁,举手投足都是怀念;你在东方的平原,低头抬头都是挂欠。天地之间,在速度的幻觉中,依然飞奔不出你的视野。我的车辙,任怎样狂野,也只能在你的胸臆间驰骋。

——你一转身,便暗淡了叶尔羌璀璨的金色。今天,重蹈覆辙的我,能突出这茫茫戈壁一重更一重的围追堵截吗!

本文标题:重蹈覆辙-谜语:重蹈覆辙(打一体育词语)
本文地址: http://www.61k.com/1164746.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1