返回列表 回复 发帖
以前学了一段时间c++,后来自学vc,没懂多少的确开拓了思路,学了很多东西,后来一直用delphi,主要是因为我们很多系统都是用delphi写的
记得刚工作的时候,公司有个家伙,即懂C/C++,同时用Delphi开发,不错。C/C++开发某类软件还是有效率问题,是开发的效率。经常需要重新发明轮子。大家喜欢Dephi的原因我觉得就是不需要做这个。就算是有高级功能要实现,这个时候在搞也来得及。
大家好
我看大多数开源库或者框架都是C/C++写的,这些库或框架可以一点都不简单,但是用C#的很少。原因是C++可以在绝大数平台上编译运行,C#不行,而且C#能做的事情C++都可以做到
做男人就要像灰太狼大王
深受其害呀,自从学了C,看见其它语言就反胃
winsoft 发表于 2009-7-3 09:12
我看大多数开源库或者框架都是C/C++写的,这些库或框架可以一点都不简单,但是用C#的很少。原因是C++可以在绝大数平台上编译运行,C#不行,而且C#能做的事情C++都可以做到 ...
达克罗德 发表于 2009-7-10 18:06
c#的开源项目很多,不信请上codeproject上看,有将近一半都是c#写的。老外可不象中国人这么阿Q,人家是什么实用就用什么。
c#也可以跨平台.mono支持了多数主流操作系统。在嵌入式方面,也有.net micro framework,可以支持到只有几百K内存的设备。
对于开发应用的人来说,跨平台真的有意义吗?在一个平台上能够稳定运行就足够了。对于win32平台上的共享软件,c#就是第一选择。
怎么比c++都不是好的语言。要说oo吧,它不够oo,连运用简单的类工厂模式都有困难那。搞os和底层驱动,它不如c。基本上它就是被淘汰的命运。它现在能够苟延残喘的地方就是通讯和游戏。但是这两个地方它也守不住。c++能做到的事情,c#都能做到,而且远远比c++做得干净利落,漂亮。如果不是为了维护老项目或者利用已有的项目,我现在根本就不考虑c++。即使是用老项目,我考虑的第一件事情,也是是否可以封装它之后给java和c#调用。
c++最差劲的一点是什么?它的开发效率低。用c++开发一个项目的时间,用c#可以做5个了。为什么会这样?如果是一些算法的代码,其实c++和c#的代码行数差不多。但是为什么c++就是开发速度慢呢?因为它的工程化做得不好,不适合大规模软件开发。它没有gc,在内存管理上,需要花费很多时间去考虑。错误提示不友好,代码提示也不够强大,ide也不如c#的ide方便。更重要的是,它缺少一些基础的东西,不适合用来做架构。架构能力不足,就是c++的最大弱点,也是纯c++程序员的最大弱点。
有些纯c++程序员可能又要YY了,c++的运行效率高。这也是扯淡。一个算法的代码,c++和c#的行数差不多。它编译之后的汇编代码,二者也是差不多。指针之类的东西,c#也有。这方面,c++可以说没有任何优势。
如果说c++有什么优势的话,就是它有一些老本可以吃,很多老的框架是c++写的。但是现在这种优势也越来越微弱了。
不考虑利用已有项目的情况下,做软件,第一选择是c#,第二选择是java,第三选择是c++,第四选择是c。这是成本的考虑。虽然c++排第三,但是它通常都不会被选中。因为能用c++的地方,都可以用c#和java,而c,有些时候它是不可替代的。
啊,这么长,我真是无聊啊。。。。
楼上说的有些道理。
软件有两种,自己用的和拿来卖的。自己用的当然开发要快,要好用,慢点没关系,关键是要好用。C#就不错。现在很多公司内部开发的项目都是用.NET的,开发成本低。
给别人用的就不一样了,市场上很复杂,很多人没法接受.NET。你可以统计一下,使用.NET公开发行的软件有多少,尤其是最新发布的软件。按理来说,网络是.NET的强项,应该占优势才对。我没有具体的统计数字,但我观察到的是没发现这种趋势。
说道架构能力,我觉得这个和语言没关系,很多时候都是人的因素。你写得再好,人家就是觉得不习惯,就不用你的。Java,.NET入门容易,使用的人就多,所以,你也可以说,他们架构能力强。在他们诞生之前,大家没得选择,只能用C/C++,不也不错么。
我从一个大牛哪里听来的消息是,如果那天微软用.NET重写office或者把office完全放在网上,那就可以考虑开始转向了。也就是完全不使用C/C++的时候。我觉得说的有道理。
啊,这么长,我真是无聊啊。。。。
wandou 发表于 2009-7-11 10:51
写得挺好。谢谢分享。
c#的开源项目很多,不信请上codeproject上看,有将近一半都是c#写的。老外可不象中国人这么阿Q,人家是什么实用就用什么。
c#也可以跨平台.mono支持了多数主流操作系统。在嵌入式方面,也有.net micro framework,可 ...
wandou 发表于 2009-7-11 10:51
世界是多样的,不要太绝对
人气很差啊。不如继续讨论编程语言。

Windows平台,C/C++类, VB, Delphi适合做共享。

至于Java, C#那都是噱头。
看IE用什么做就知道了。
欢迎加入马甲1号粉丝会的二线粉丝会,reika粉丝会。
二线粉丝成员:CodeCoolie,Mzren,5bxb,超级小菜鸟,不知道歪 ,jonssen,Vista,withy
这些语言没有我不会用的。但是我还是觉得c#最实用。在前提条件相同的情况下,开发一个大规模的程序,没有那种语言可以比c#更有效率。
至于小的共享软件,用什么写其实差别都不大。超过3个人月,c#才会显示出它的威力。
而且人要多,这样才能体现出工程化的好处来。C#设计就是为多人协同设计使用的。
C#还有一个好处就是开发快,在行业应用中,这个很重要。现在很多大的软件都开始支持VSTA,当然这也有微软强迫的因素,但是我观察到很多做行业应用的人喜欢用C#,VB.NET。他们关注的是开发出来的功能,不是我们这些开发人员关注的技术架构啊什么的,所以什么好使用什么,要不是Java在某些方面不适合作桌面软件,大家早就不用什么C++了,呵呵。
大家好
c#的开源项目很多,不信请上codeproject上看,有将近一半都是c#写的。老外可不象中国人这么阿Q,人家是什么实用就用什么。
c#也可以跨平台.mono支持了多数主流操作系统。在嵌入式方面,也有.net micro framework,可 ...
wandou 发表于 2009-7-11 10:51
我可是做嵌入式开发出身的,嵌入式设备绝大多数都是采用C、C++。C#最近一个工程我也在用,是不错,但是只是对开发某些工程比较适合,比如大型win32工程等程序。但是计算机世界何其广大,C#适合的只是某些领域。从根本来说,C/C++是中低级语言,和C#这种高级语言根本没有可比性,应用领域也不太相同,C#要想比较的话应该是和java等语言比。

C#也有许多劣势:
1.广泛程度
你绝不能否认C/C++的应用广泛程度比C#要大多了,CodeProject主要是面向win32应用的,大多数是Windows程序员,所以看起来C#的工程比较多。但是window应用只是计算机世界的一小部分,C#工程真算不了什么。据我最近研究的几十个有名开源框架来看,只有一个是C#写的,而且我完全没法采用它,因为它将限制我的程序只能在Windows下运行。C#是高级语言,这决定了它只能运行在一个完善的平台之上,做一些高级应用。而计算机世界并不是只有坐在高楼的白领,它还需要建筑工人、需要驾驶员、需要售货员、需要学者、科学家等等。这就是为什么Windows不是C#写的,TCP/IP不是C#写的,IE不是C#写的。其实我自己汇编、C/C++、C#都用,没有任何歧视,视项目需要决定用哪一种。

2. 跨平台
先别说Mono和.net有多少兼容问题,首先它是个第三方工程,没有保障,指不定那天停止开发了。而且它只能跟在MS后面,据我所知就不支持3.5的WPF等(我现在就在用WPF)。wandou大概只知道几种平台,而实际上这世界有成千上万的计算机平台,比如我用过的就有8051、PIC、AVR等8位单片机,ARM7、ARM9、ADI DSP、ZSP、TI DSP等数十种嵌入式CPU平台,还做过工控机项目,跑过vxworks,ucOS,还有一种实时unix系统;后来在公司,用过[size=-1]ThreadX,甚至是公司自主开发的RTOS。更别说国内外教育和科学机构所使用的稀奇古怪的平台了。可以说光CPU就有数百上千种,还有各种各样的操作系统,有的系统就没有键盘鼠标,甚至没有操作系统。。。这就是为什么Pnglib,zlib等开源库都采用C的缘故了,几乎这些平台都能用

wandou的说法就好象书生说”万事皆下品,唯有读书高”,就好象挡对我们说“唯有无产阶级代表了最高生产力”,就好象坐办公室的说“只有我们的工作才有价值,其它不坐办公室的职业都该消失”。。。感觉wandou作为C#程序员故意贬低其它程序员,这完全没有必要。
做男人就要像灰太狼大王
本帖最后由 wandou 于 2009-7-16 22:26 编辑

我c++的确不怎么样,但是象effective之类的书籍,我是无需要看的。我用c++写的代码,很多pure c++ developer都看不懂。我不知道我算不算得上是一个合格的c++ developer。。。。
ace和boost这样的框架,我看一眼基本就知道它的设计思路,如果有时间,我也是可以做出这样的框架的。
c++/java/c#/c,我都可以不调试。不调试的意思,就是写完代码,编译之后就正确了。所有的问题,在设计时就解决了。恐怕有人不会相信吧,这就是境界。
如果pure c++ developer都达到我这个境界了,你们就尽管鄙视c# programmer吧。境界的差距,不是功力可以弥补的。
之所以我夸奖c#,因为它的确是最好用的工具。实事求是而已。我敢说,我用c#做项目可以快过任何pure c++ programmer,包括c++大师在内。当然,我不会做的除外,只有几行代码的也除外,没法用c#做的也除外,依赖现有项目的还除外。
我最后一次用c++,是用它重写了一个公司开发了2年多的项目,费时不到3个月,我是在试用期离开那个公司的。那个项目的参与人员,开发经验都是3年以上的,多的时候达到过4名,少的时候也有2名。都是pure c++ developer,所以比较好欺负。当然,我这个人干活太实在可能也是一个原因。原先bug不断,重写之后,bug就没了,好像这件事本来就很容易。的确它本来也不难,只是架构乱了,积重难返。、
达克说,万般皆下品,唯有c#高,这是误读。正确的说法应该是:万般皆下品,唯有架构高。架构能力强了,用任何语言都不是问题。而c#,是这些语言中架构做得最好的。对,它的架构比java还要好。它是注重实用的语言,不玩花架子,真正厉害的程序员都会用它,因为它是杀人的剑,不是给人看的剑。要说它有什么缺陷,就是它不够开放,所以支持者不够多。用c#做架构是最方便的。
至于python和ruby之类的新宠,它们的应用范围有限,不算是主流开发语言。从概念上说不错,但是实用价值并不是很大。
之所以c++ programmer鄙视c#,无非是觉得它语法简单,几天就学会了而已。但是那种语言又不简单呢?c++复杂,是复杂在用它做大规模开发困难,移植性差,内存管理复杂,做架构困难。绝不是c++的语法有多难。
c#和java这样的语言,工程化做得好,适合开发大规模程序,语法陷阱少,代码质量高,让开发者专注于架构问题。
程序员的终极能力,就是架构能力。用c#和java更利于提高架构能力。所以我认为,所有的程序员都要学会java和c#这样的语言至少一种,才有资格去鄙视其他语言。不会c#和java的程序员,基本没有架构能力,一开发大规模程序,就到处出错。错误控制能力,就是架构能力的表现之一。控制错误,就是架构师的基本能力。
在流行的编程语言中,我还是认为c#最有实用价值。至少,它是win32开发的王者。做win32平台的开发,没有比c#更方便的了。
啊!不是吧?一写就对了其实是好?又不早说,我之前看到一句说"无论多简单的程序,牛人从来不会一次就写对."于是我就一直的故意写错来冒充牛人欺骗自己......原来一次就写对了才是牛人?
本帖最后由 wandou 于 2009-7-16 22:51 编辑

Windows平台,C/C++类, VB, Delphi适合做共享。

至于Java, C#那都是噱头。
看IE用什么做就知道了。
reika 发表于 2009-7-16 11:39
等我不用赚钱了,就用c#做一个浏览器。其实我早想做了,可惜这不是个小工程。以前总有人讲这个不能用c#,那个不能用c#,但是我都用了,结果也没事。凡事总有第一回。
比如,photoshop,以前是用c++做的吧,结果微软用.net做了一个paint.net,也做出来了,开发成本很低,有photo 80%的功能,完全免费。我作图用的就是它。
以前的确是delphi最适合做windows桌面的共享,但是vista时代以后就不是了,c#最适合做windows桌面的共享。之所以delphi适合做共享,因为delphi做windows上的开发很方便,控件很多,做界面比较容易。但是,这种开发个把月就可以卖的题材越来越少,最后就是没有。为什么?因为做得人越来越多,免费的也越来越多。所以,以后能够做的,肯定是那些门槛比较高的题材。什么是门槛?信息时代,技术不是门槛,任何api都可以搜索到。成本才是门槛。以后,能够生存下来的软件,必然是那些成本比较高的软件,一般的人,不敢轻易尝试,所以降低成本才是能否生存的关键。
用什么工具做桌面软件成本最低?c#。这就是理由。c#强就在这点,其他一切都是废话。c#是杀人的剑,不是给人看的剑,不想死就用c#。
还有一点,delphi无需安装.net framework。但是vista已经集成了,这也不是问题。xp总有跟windows 98一样的时候,这个时间不会太久。xp出来三年,基本没人用98了。windows 7出来三年,估计也就没人用xp了。所以,三年之后,xp将会淡出市场。
本帖最后由 CodeCoolie 于 2009-7-17 00:09 编辑

好热闹啊。。。

其实脚本类的挺有意思的。

很久前想学Perl
但一直没机会
后来想学Python
还是没机会
再后来又想学Bash脚本
望而生畏没敢学
倒是在更久之前没怎么学就把PHP上了
最近迫不得已学了下Bash脚本,发现很久以前不敢学的,也很容易入门嘛,加上grep、awk、sed,能干很多事情啊
还有vi,用的也顺手了,也习惯make clean、make、make install了

只可惜Windows下的CMD没Bash那么强,不过也算很强了
看看我N年前写过的一个Batch,可以取得当前日期。。。
  1. @IF "%1" == "" GOTO EXE
  2. @IF "%1" == "01" GOTO OK
  3. @IF "%1" == "11" GOTO OK
  4. @IF "%1" == "21" GOTO OK
  5. @IF "%1" == "31" GOTO OK
  6. @GOTO NOTOK

  7. :OK
  8. @ECHO Today is OK (%1)
  9. @GOTO :END

  10. :NOTOK
  11. @ECHO Today is not OK (%1)
  12. @GOTO :END

  13. :EXE
  14. @FOR /F "usebackq tokens=3 delims=-" %%I IN (`DATE/T`) DO @CALL %0 %%I

  15. :END
复制代码
* WinHack
    * dabaili
    * kevin
    * 红速龙
    * winsoft
    * quadamage
    * x_uy_u_n
    * noregister
    * CodeCoolie
    * 某人
    * thunderflash
    * omnicoder
    * rickju


我是十几年前学了一个月,十几年后的今天用了一个月,不知道怎么算,就投这个选项里了
返回列表