为什么你要使用C#,如果它比C ++慢?

我正在寻找一种新的语言来学习C ++和Java之后。 我正在尝试C#,但是有一些人说它很慢,因为它是高级语言。 那么为什么有人会使用C#? C ++不是更快? 它是否使开发更容易,但只是有一个较慢的最终产品?

另外,C#可以用来做什么? 你可以在Windows和ASP.NET上使用它,但是在其他情况下,你可以使用C#吗? 会有很多工作机会吗?

这个“一群人”到底是谁? 他们是什么比较呢?

对绝大多数事情来说,C ++ 并不比C#“快得多”。 当然在各种情况下都有好处,特别是当你需要更确定的内存处理时,但是根据我的经验,大多数应用程序的瓶颈并不在C ++能够提供帮助的地方。 正如Spoulson所说,devise中的许多性能不是确切的实现,而且在那里,可以轻松地尝试不同的devise。

为什么我们使用C#的时候比C ++慢一点? 因为一般都认为(即有些不赞同),在没有自我放松的情况下更容易发展。

至于什么C#可以用来…你想要使用它? 除非你想开发驱动程序和内核,否则它可能会适合你。 (即使OS开发有一些使用C#的人…)

工作机会? 负载。

缺点? 那么,.NET本身只能在Microsoft平台上使用。 有单声道 ,但它没有像Java一样的可移植性(毫无疑问,根据同一群人的另一个“慢”的语言)。

用汇编写的代码可以非常快。 为什么不直接写在汇编中?

不要相信你听到的一切。 C#对于我所有的项目来说已经足够快了。 通常情况下,性能是比原始平台性能更多的devise因素。

我不得不说,你正在交谈的人根本不知道他们在说什么。 干净利落。

许多企业级应用程序都build立在C#和其他.Net语言之上。 他们本身没有什么特别的慢。 是的,启动时间往往比较慢,但几乎就是这个时间的结束。

我注意到你在语言列表中提到了Java。 如果您对Java的速度感到满意,C#将不会出现任何问题。 一般来说,C#在许多不同types的基准testing中至less和Java一样。

我最后一个公司是由5位C + +退伍军人创build的,每位经验都超过15年。 他们花了一个多月的时间build立一个Windows服务。 其中一人发现并涉足C#。 在一个星期之内,他比当月的集体还要多。 不久之后,他们都转向了C#。

为什么C#如果执行速度较慢:您在这个快速发展的程度上会有什么代价?

为什么它应该慢? 事实上,C#被编译为“中间语言”,它在运行时被JIT化,但是这可以给你一个性能上的优势,因为运行时可以为代码运行的平台生成最优化的…

根据您要编写的应用程序,语言的“速度”将会产生较小的影响。 你的应用程序的性能将主要取决于你devise你的应用程序的方式,如果你使用的工具/技术,你使用的良好使用等等..当然,C#不是一个银弹,有项目,你不应该不会使用它,只是因为它不适合工作,但对于大多数商业/企业应用程序来说,这样做会很好。

我还没有发现很多C#不是很好的语言select,而.Net(或者Mono)不是一个像样的平台。 值得注意的例外是内核级开发或驱动程序。 有很多地方需要低水平和原始performance。 对于大多数人来说,如果没有所有的业务,或者C#企业应用程序是更好的开发select之一。 它得到了很好的支持,与许多其他系统,图书馆,通信渠道和已经可用的组件一起工作,更不用说是一个相当好的语言(尤其是3.5)。

ASP.Net并不是一个糟糕的平台,我通常会发现对象/控制堆栈是复杂交互的一个简短事件。 我认为ASP.Net MVC更适合更多可扩展的基于Web的应用程序。 同样,它比我以前使用过的其他系统要好。

在服务层面,甚至GUI开发方面都不错。 我在基于Web的应用程序,服务/通信/业务层方面比在桌面GUI应用程序方面有更多的经验,所以在这里不能发表太多的评论。 我觉得很多的GUI开发都是关于IDE / Toolkit的,而不是特定的语言。

至于慢,你明确列出的Java,在大多数情况下,C#/ .Net是比Java快或速度更快。 使用C#(Visual Studio),通过Java(Eclipse),恕我直言,开发更加stream畅。 对于基于networking的应用程序,我喜欢在Swing上使用ASP.Net MVC(甚至是ASP.Net)。 那只是我而已。

你所说的人不知道他们在说什么。 C#与Java是非常相似的语言, 它具有大部分相同的优点和缺点。 它的工作方式非常相似(Java / C#被编译成中间语言/字节码,被解释或JIT编译为本地代码,以及各种类似的优化,您不必担心程序员)。 它和Java在很多相同的情况下使用,并且真正针对同一个市场。 它的运行速度要快很多,并且作为一种语言引入了很多创新,但是如果这是您的问题,它实际上只是Windows。 就业市场是相似的。 两者都是非常stream行的语言。

至于学习的语言,我会build议一些不同的东西。 你说你知道C ++和Java; C#不应该很难拿起来。 潜在的雇主会知道这一点。 试试Scala或Python。 两者都会给你提供一些新的观点(C#不是那么多),并且让你成为一个更好的程序员,教会你思考新的方法,而不是只是增加另一个工具。

C#并不总是比较慢 – 在许多情况下,它可以执行与列出的任何语言一样的效果。 通常algorithm的速度比语言的select更多。

然而,C#非常有performance力,并且有一个很好的基类库和超快的编译。 这意味着它很容易处理,而且可以让你比许多其他语言,特别是C ++更有效率。 例如,我刚刚有一个小的项目,我将在C ++中预算1个人工周,并且我们在不到一天的时间里完成了C#,主要是因为基类库简化了许多任务。

使用C#而不是C ++的一个重要原因………看看C ++在人们接pipe你的机器时所遇到的所有缓冲区溢出问题,因为他们在你的string或内存泄漏中注入可执行代码。是相当方便的恕我直言

即使C ++运行速度更快,今天的计算机上的差异也不大。 这就是为什么在cpu和内存相当有限的移动设备上,C / C ++仍然被广泛使用。

但是考虑一下开发时间。 如果使用C ++需要2个月,使用C#需要1个月,那么你会去哪? 当需要做大的修改/重构时,更高级的语言使得它显着更快,更容易!

我肯定会使用C#。 这实际上是平均速度,如果你喜欢Java,它几乎是完全一样的,因为它们都是基于C ++的。