4

我在 Microsoft 环境中工作,所以我可以在遇到的任何钉子上使用我的 C# 锤子。话虽如此,哪些语言(编译、解释、脚本、功能、任何类型!)补充了了解 C#,以及出于什么目的?例如,我已经将许多脚本功能从已编译的控制台应用程序移到了 Powershell 脚本中。如果您是一名 MS 开发人员,您是否在您的世界中为其他语言(如 F#、IronRuby、IronPython 或类似语言)找到了一个利基市场,它们填补了哪些利基市场?

注意:这个问题是针对微软开发人员的,因为我不能跑掉并开始在我的公司周围安装 LAMP 堆栈,因此必须永远支持它。:) 但是,除了您的主要语言之外,请随意提及您发现有趣的任何其他语言来完成您的世界中的某个任务/角色。

4

14 回答 14

7

Python/Perl/Ruby/PowerShell 是 C#/VB.NET 的重要补充。如果你的老板递给你一个文本文件并说将它插入数据库一次或两次,那么 Perl/Python/Ruby 中的任何一个(我不确定 powershell,但我想它并没有那么困难)应该没问题解析它。无论哪种方式,对于您的主要应用程序,您可能会卡在 C# 中。您可以使用其中一种更动态的语言在 C# 中进行代码生成。

由于您处于 Microsoft 环境中,因此让您的解决方案被接受的最佳机会可能是 PowerShell。接下来我会说 IronPython 或其他与 CLR 集成的东西。但主要问题是,要让其他人维持您的工作,他们必须知道您使用的任何语言。MS 未来计划更多地使用 PowerShell,因此证明 PowerShell 的合理性可能比 Python/Perl/Ruby 更容易。

如果您只是一次性处理一个文本文件。或者创建一次性代码生成器来生成所有代码,然后打算维护生成的代码,那就没关系了。您将使用结果,如果您使用 Perl 节省时间,那么您将获得更多的权力。但是,如果您正在做一些会被反复使用的事情(比如一个活动的代码生成器,您可以在其中更改模板并运行生成器而不是维护生成的代码),那么从事您所做工作的其他开发人员将需要了解该语言你用过。在 Microsoft 商店中学习 Perl/Ruby/Python 更难争论。但 PowerShell 似乎是更简单的论点。我认为 MS 的宏伟计划是最终应用程序将通过命令行开关为 power shell 提供更多功能。

于 2008-09-19T16:06:48.883 回答
5

一个好的脚本语言总是一个很好的工具。请参阅RubyPython

于 2008-09-19T15:54:49.817 回答
2

我使用 python 进行原型设计,因为在编辑和实际运行新版本代码之间几乎没有周转时间。我什至可能最终将它用于一个真正的项目——我用得越多,我就越喜欢它。

不过,作为 C# 程序员需要一些时间来适应 - 它使用的缩进定义结构系统起初有点奇怪。

于 2008-09-19T15:57:21.153 回答
2

由于您在 MS 商店,我建议将PowerShell作为一种体面的脚本语言来学习。它与 C# 配合得很好。我也是 Ruby 的忠实粉丝。

于 2008-09-19T16:12:56.327 回答
1

虽然它有点像边缘语言,但我不得不提到Erlang。Erlang 是您的工具箱中的一门出色的语言,因为它的不同寻常的优势往往与其他编程平台相得益彰。Erlang 对于构建分布式、并发、容错系统非常有用。在需要分布式但互连架构的即时消息和电话领域中,它被大量使用。

于 2008-09-19T16:07:40.847 回答
1

我想要第二或第三条蟒蛇。具体来说,IronPython (ttp://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython) 可以让您学习 python,但也可以让您访问 .net 框架的好东西。

它非常适合与脚本相关的任务,因此它可能对您的日常编码生活很有用,也是一种以实验性编码/原型设计方式进行混杂的好方法。

于 2008-09-19T16:15:03.840 回答
1

也许和 Boo 一起玩,看看你的想法。
Codehaus.org上的
嘘声 维基百科上的嘘声

于 2008-12-05T18:33:22.517 回答
1

如果您使用 .Net 框架,那么语言实际上并不重要,因为编译器和解释器在任何情况下都会创建相同的 IL 代码。

如果您离开 .Net 世界,我认为开发工具和语言就是一个工具箱。我努力为手头的工作使用正确的工具,同时考虑到其他开发人员的技能基础以及公司正在寻求的方向(我是一名顾问)。

于 2008-12-11T13:11:42.897 回答
0

我和 jjnguy 在一起。尝试其中一种脚本语言。另外作为奖励,当您学习 Ruby/PythonPearl 等时……它是一种入门药物……为其他环境开发的错误语言。

于 2008-09-19T15:57:06.317 回答
0

尝试常规工具箱之外的语言将为您提供以您当前最喜欢的语言处理事物的新方法。即使您不将它们用于严肃的项目语言,例如 Perl(用于数据处理)、Lisp(函数式编程)和 Javascript(基于原型的编程),也会教您以新的方式思考当前语言中的问题。

于 2008-09-19T16:32:45.280 回答
0

作为一名专业的 Web 开发人员,您可能会研究 XSLT/XPath 系列,因为对于某些类型的 XML 处理,它们可能是非常强大的工具。

当然,在 C# 3.x 中,Linq2Xml 公开了一些类似的内联功能。

但是,XSLT 可以成为将数据与应用程序中的表示分离的强大方法。

于 2008-09-19T16:43:56.330 回答
0

我对 F# 和 CLR/DLR 中的其他一些新语言非常感兴趣。DLR 语言可能更适合您的 UI,因为它们不会让您做出很多愚蠢的事情。

然而,我认为重要的是要记住学习一门新语言,尤其是在一个新领域,比如函数式编程,总是一种重新训练你的思维的好方法,这样你就可以接触到新的概念,并且你可以即使您从未使用过这些新语言,也可以使用您选择的语言更好地编写代码。

于 2008-09-19T16:49:18.673 回答
0

查看 Boo - 它运行在 .NET 堆栈之上,但它的语法更像 Python。

于 2008-12-05T18:43:03.230 回答
0

要学习补充 C# 的新语言,我会选择 C++。您可以以“比 p/invoke 更好的方式”使用它来从 C# 应用程序访问非托管代码。然后,如果您发现某些 .NET 应用程序开始占用所有 RAM 和/或 CPU 或者通常速度不及你想要。

于 2008-12-11T13:13:31.550 回答