Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有什么理由我不应该从C开始吗#_C#_.net_Php_Ruby - Fatal编程技术网

C# 有什么理由我不应该从C开始吗#

C# 有什么理由我不应该从C开始吗#,c#,.net,php,ruby,C#,.net,Php,Ruby,我想我倾向于将C#和.net作为学习web开发的集中语言。我想学习好的编程基础知识,并且我已经看过了几乎所有的东西。我把它的范围缩小到了C#、Python、Ruby和PHP。是否有理由远离C#(我认为成本问题不会真正适用于我的个人开发者情况,但我可能完全错了)。有什么想法吗 我意识到这些都是很棒的语言,所以我不想问哪种语言总体上最好。然而,Ruby是第一语言的一个可行的替代品,还是它有太多的“幕后魔法”,再加上Rails和非正统的方法?我确实喜欢我所看到的语言。这可能会导致一场激烈的战争,但我认

我想我倾向于将C#和.net作为学习web开发的集中语言。我想学习好的编程基础知识,并且我已经看过了几乎所有的东西。我把它的范围缩小到了C#、Python、Ruby和PHP。是否有理由远离C#(我认为成本问题不会真正适用于我的个人开发者情况,但我可能完全错了)。有什么想法吗


我意识到这些都是很棒的语言,所以我不想问哪种语言总体上最好。然而,Ruby是第一语言的一个可行的替代品,还是它有太多的“幕后魔法”,再加上Rails和非正统的方法?我确实喜欢我所看到的语言。

这可能会导致一场激烈的战争,但我认为C#是一种非常好的Web开发语言

它是一种功能齐全的面向对象语言,是静态类型和编译的。它有很好的文档记录,并且有一个巨大的开发者社区

如果您必须在Linux/Apache上运行并且不想使用Mono,那么这就是不使用C#的原因。除此之外,我认为没有令人信服的理由不这样做,特别是使用ASP.NET MVC,它可以让您远离WebForms模型


这并不是说WebForms一定不好,但有些人可能会反对WebForms,因为它引入了其他web开发平台所不具备的抽象概念。

不要担心成本问题。编译器可以与FXSDK的其余部分一起免费使用,您甚至可以

我同意C#是一种相当完整的语言,它的语法清晰且可扩展。已经有大量的web资源可用,但这是一个很大的问题,它有效地将您与windows作为您的平台联系起来。特别是对于网络,这是一个重要的考虑因素。在台式机上,windows是王者,但对于web服务器市场来说,它并没有占据主导地位


另一个问题是,如果你在网上看富媒体,你必须考虑Flash和/或Silverlight。如果你使用C#,那么你就可以在不学习其他语言的情况下使用Silverlight。

C#是一种很好的语言。而且,由于您是通过web而不是桌面应用程序使用它,因此您不必担心是多平台的,因为代码是在您的服务器上运行的,并且输出是传递给客户端的。话虽如此,你必须找到Windows主机(有时可能会有点贵)或使用mono(这并不是最新的软件)。不过缺点是很小的,买一本速成版就去吧

我认为部署的成本可能是另一回事,也就是说,如果您的项目需要横向扩展,并添加更多服务器以实现负载平衡,甚至是地理分布的服务器。通常windows主机的运行会比linux多一点(甚至不考虑flame wars的原因)。

学习C#的缺点是它将您与专有平台和软件堆栈联系在一起。现在有了Mono,它很好地实现了C#和.Net的大部分功能,但最主要、最完整的实现是微软的,它是非免费的

对于Ruby或Python,我还没有充分使用C语言来讨论它的技术优势。然而,我可以说,除了自由软件提供的其他好处(在其他地方详细讨论)之外,学习使用自由软件甚至为自由软件做出贡献也是很有教育意义的。

如果你选择C进行web开发,这取决于你对web技术的经验,我衷心建议在ASP.NETWeb表单之前先使用ASP.NETMVC

ASP.NET Web窗体是构建ASP.NET应用程序的原始样式,它试图抽象出许多细节。它允许您构建应用程序,而无需意识到幕后发生了什么(发布数据、状态管理)。在我看来,这些抽象虽然一开始让事情变得简单,但当你进入更复杂的场景时,它们开始“泄漏”(如图所示)

另一方面,可以更轻松地构建“更贴近金属”的网站,同时保持高效。如果您想绝对控制生成的HTML,并且不害怕cookie、表单标记、post和查询字符串数据,那么您可能会更喜欢ASP.NET MVC


当然,了解两者都会有好处。但如果我现在就开始,我可能会从MVC开始,然后转向表单(然后意识到它有多糟糕,然后返回:)

考虑到目前为止所有的答案,我想我应该看看上面提到的所有四种语言

虽然我已经用PHP做了很多开发工作,但遗憾的是,我认为PHP从来都不是一种优秀的语言(尽管它有一些优秀的元素),现在学它没有什么意义。它仍然非常容易进入,但我认为总的来说,PHP是一个“坏习惯”

Python是一种很棒的语言,但对我来说,Ruby就是Python的全部,还有更多。就我个人而言,我会选择Ruby


C#也是一种很棒的语言,但尽管我还没有足够自信地用C#说任何事情,但我觉得Ruby是一个更好的选择。

没有特别的理由远离C#。这是一门非常好的语言。例如,Stackoverflow就使用它,因此它可以在一个成功的网站上运行,并且您可以在其中获得jobs编程


如果你把编程作为一种业余爱好,或者出于自己有限的预算,或者你想为编译器/语言的开发做出贡献,那么专有的东西将是一个考虑因素。我猜这两种情况都不是。(编辑:正如其他人所指出的,C的开源环境是存在的。)

这取决于几件事。C#和.Net是可填充的,而且工具非常简单(这里是Java!Java开发人员在谈论…),但Windows托管是一项费用