【问题标题】:what are the advantages of C# over PythonC#相对于Python有什么优势
【发布时间】:2010-03-20 20:12:53
【问题描述】:

我喜欢 Python 主要是因为它具有出色的可移植性和易于编码,但我想知道,C# 与 Python 相比有哪些优势?

我问的原因是我的一个朋友为网络游戏 (UO) 运行私人服务器,如果我愿意,他愿意让我成为开发人员,但服务器的软件都是用 C# 编写的。我很想这样做,但我真的没有时间学习多种语言,而且我只是在寻找更多理由证明自己使用 C# 而不是 Python 是合理的。

我做这一切都是自学成才的,顺便说一句

【问题讨论】:

  • 根据您想为这款游戏做什么样的开发,您也许可以使用 IronPython,一种用于 .NET CLR 的 Python 实现——这样您就可以利用您现有的语言技能,同时仍然让您的代码在您朋友的基于 .NET 的环境中运行。显然,这只有在您编写脚本或类似的东西时才有效,而不是在现有的 C# 代码库上工作。 (你的朋友需要编写一些管道来调用 IPy 脚本,但这很简单。)
  • 还有类似 Python 的语言 Boo for .NET

标签: c# python


【解决方案1】:
  1. Visual Studio - 最好的 IDE。

  2. 在流通的静态类型语言中,C# 非常高效。

【讨论】:

【解决方案2】:

我们很多人真的like working with strongly/statically-typed languages。那里很大。

【讨论】:

  • +1 除了语法之外,这可能是 C# 和 Python 之间最重要的区别,我认为这是一个优势。 C# 是(主要是 .NET 4 事物)一种静态类型语言。 Python 是运行时类型语言。
  • +1,这是一个大问题,我花了很长时间才学会这一课,现在我一有机会就赞美它。
  • 我们很多人真的很喜欢使用强类型的、动态类型的语言。那里很大。 :)
【解决方案3】:

有很多差异,优点和缺点。我想主要的优势在于

  • 出色的 Windows 集成,包括访问所有标准 GUI 函数和其他库。
  • JIT 编译,在某些或大多数情况下会产生比 Python 更好的性能。 正如已经指出的,这现在在 Python 中也是可能的。
  • 在 Windows 上,可以说 IDE 对 C# 的支持更好。 Visual Studio 是一个完善的高级开发环境,“Express”版本是免费的供个人使用。在非 Windows 环境中,这可能是不同编辑器之间的平局。

其余的基本上取决于个人喜好(静态类型与动态类型,或不类似 C 的语法等)。

【讨论】:

  • 我很确定 Visual Studio 2008 的 Express 版本可以免费用于商业用途,如果它们仍然可用的话。
  • 并不是说我比 C# 更擅长 python(我喜欢两者,但通常更喜欢 C#),但我只想指出,有几个 python 虚拟机可以进行 JIT 编译,并且有计划将 Unladen Swallow(Google 提供的一种非常流行的)合并到默认的 python 代码库中。
【解决方案4】:
  • Microsoft 支持 C# ;)(期望 cmets)
  • C# 是typesafe,这有它的优点。
  • 在开发 Windows 应用程序时没有比这更好的了。
  • 它的语法也设计得非常好。代码看起来不错。
  • 它值得学习,因为已经编写了很多代码并且正在其中编写。
  • 在 Visual Studio 中使用 C# 编码时感觉非常好。我仍在为 Python 寻找这么好的 IDE。
  • 使用 C#,您可以探索很多有趣的东西 .NET、WPF、WCF、XNA、ASP.NET、Jon Skeet 的博客... 等等。

【讨论】:

  • 我发现如果不输入这 8 个 Jon Skeet 就无法输入这 2 个字符 C#
【解决方案5】:

JITer,由于它支持静态类型,它可以生成更紧凑的代码。 JITer 可以通过使用非 CPython 实现之一来解决,或者降级到 i386 并使用 psyco,但是静态类型不能简单地解决(我也不认为应该如此)。

【讨论】:

    【解决方案6】:

    我发现使用不同的语言很有帮助,因为它们各有长处。 Python 非常强大,但在很大程度上依赖于良好的编码约定和实践来保持代码的可维护性。特别是,它不强制类型安全或绝缘,这意味着它很容易被滥用。 C# 是一种现代的面向对象语言,具有强类型化和其他特性,有助于加强绝缘和封装。它没有那么灵活,但我还发现大型 C# 程序更容易维护(尤其是当您从其他开发人员那里继承它们时。)

    【讨论】:

    • Python 也是强类型的。它不是静态类型的。
    • 是的,但是“类型”的概念更加易变,因为字段是通过使用而不是定义出现的。从这个意义上说,Python 是强类型的,但类型本身可能会发生变化。这可能非常强大,但使用经过深思熟虑的限制的语言也有优势。
    【解决方案7】:

    C# 可以通过“非托管代码”直接访问指针,这在某些情况下可以为其带来性能优势。

    【讨论】:

    • python 也可以通过 C 绑定。
    • 我还发现 Python 的 ctypes 与 .NET 互操作相当
    【解决方案8】:

    好吧,编码的难易程度值得商榷。当您考虑从 IDE(例如免费的 Visual Web Developer)获得的帮助时,我发现 C# 更容易编写代码。

    因此,如果您考虑 Mono,可移植性就不是问题了。在某些情况下性能可能会更好。我发现 .NET 中的在线文档通常更好。

    你考虑过 IronPython 吗?如果你们愿意使用其中包含 DLR 的 .Net 发行版之一(4.0 是您最好的选择,但某些 DLR 测试版还可以),那么您可以编写 C# 代码和 Python 代码并拥有它们一起工作,除了命名约定之外没有任何困难。

    【讨论】:

      【解决方案9】:

      如果您更喜欢 Python,但需要为 .Net 编写代码,除了 IronPython,还有 Boo,它是一种深受 Python 启发的 .Net 语言(包括静态类型)。您可能想尝试一下。

      【讨论】:

        【解决方案10】:

        如果您对使用 .NET 框架不感兴趣,您可以改用 python 和 pyQt 或 Tkinter,因为 Python 现在具有对 Visual Studio 的 IDE 支持,称为 Python Tools for Visual Studio (PTVS),它为您提供语法提示,就像如何在 Visual Studio 中使用 VB 和 C#。但是,如果您还需要使用 .NET,请使用 Iron Python,然后使用 Python Tools for Visual Studio,在 Visual Studio 中选择编译器作为 Iron Python。 2013 和 2012 版本支持 Visual Studio。我会说它是 Python 的最佳 IDE,而且 MSFT 也支持它

        在此处查看链接 https://pytools.codeplex.com/

        注意:您可以将 ptvs 与 2.7 版本或 3.0 版本一起使用。我习惯使用 2.7 版本,但对于初学者我建议使用 3.0,因为它比 2.7 版本有很多优势。但不要将它们都安装在同一个系统中。还要在安装 PTVS 之前安装 Visual Studio Shell 隔离然后集成。还要确保您的 python 版本与操作系统位版本匹配。

        :)

        【讨论】:

          猜你喜欢
          • 2013-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-19
          • 2022-11-22
          • 1970-01-01
          • 2019-02-01
          • 2018-04-13
          相关资源
          最近更新 更多