我是一名.NET程序员。Python和/或Ruby有哪些具体用途可以提高我的生产力?

4
当我第一次阅读《程序员修炼之道》时,我记得他们建议使用脚本语言来使你成为更有生产力的程序员。
我在实践中陷入了困境。 我想知道使用Python或Ruby可以让我作为.NET开发人员如何更加高效。 每个答案只有一个具体的方法,如果您能说出我是否可以使用Python、Ruby或两者都可以,那就更好了。
请参见以下标准格式。

到目前为止,我认为你一定会同意这些答案表明使用脚本语言和.NET之间存在巨大的范式转变-- 我不认为曾经有过建议说脚本语言会让你成为更好的.NET开发人员,但它们可能会简化你定期执行的其他任务(例如文本处理)。 - pavium
@pavium,我认为那些“其他任务”简化后,最终会让我成为更好的.NET开发人员,不是吗?我想这取决于你如何看待它。 - Alex Baranosky
这个应该设为社区维基吗? - Alex Baranosky
嗯,是的,一个全面更好的程序员。 - pavium
8个回答

5

IronPython / IronRuby

《IronPython实战》会更好地解释这个问题(以及如何最佳使用IronPython),而这可能无法在SO答案中得到充分考虑。我有偏见--我是技术审查员,也是其中一位作者的朋友--但客观地认为这是一本很棒的书。(不知道IronRuby是否拥有类似精彩的书籍)。

因为你想要“每个答案都有一个具体的方式”(与SO不兼容,它强烈不鼓励发布人发布25个不同的答案,如果他们有25种“具体的方式”表示...!-):

在IronPython中,进行原型制作来探索您不熟悉的某个程序集或其组合(以检查您是否正确理解了其文档并如何执行某些任务)比在C#中提高了一个数量级的效率,因为您可以交互式地探索,并且编译是即时和按需的。(尚未尝试IronRuby,但我会假设它可以以大致相等的方式和速度工作)。


原型设计加1分。快速原型设计和探索性编程并不需要动态语言,但大多数动态语言对这种方法有更好的支持。特别是Python,它被设计为交互式/探索性编程的主要特点,大多数Python程序员在交互模式下广泛进行原型设计,然后再编写“实际”代码。 - Daniel Pryden

4

更少的代码

我认为生产力与你在某种语言上的熟练程度直接相关。因此,像Python这样简洁的语言可能会节省一些完成某些任务的时间。

如果我比较编写简单管理脚本(如清理旧文件)所需编写的代码量,Python相比.NET代码确实有更高的生产力收益。(而且它更有趣,也有助于完成工作)


...而其中一个重要的简洁性来源是:不为每个目的引入以数据为中心的类,而是大量使用内置的列表和字典功能。 - Lutz Prechelt

2

高级文本处理

awk和perl的传统优势。您可以将一堆正则表达式粘合在一起,创建一个简单的数据挖掘系统。


2
学习一门新语言可以使你获得知识,并将其应用到任何编程语言中。以下是你将会学到的一些内容。

可以动态地为对象添加功能

混合使用模块。

传递代码块

想方设法用更少的代码实现更多功能:ruby -e "puts 'hello world'"

C# 也可以实现其中的一些功能,但是新的视角可能会让你更接近自动化早餐的目标。


我们都知道,自动化早餐是编码的乐园 ;) - Alex Baranosky

2

嵌入脚本引擎

使用IronPython作为.NET应用程序内的脚本引擎。例如,使您的应用程序的最终用户可以使用完整的语言(如Python)更改可自定义部分。

一个可能的例子是将自定义逻辑暴露给最终用户以供工作流引擎使用。


我很想听一个更深入的例子。 - Alex Baranosky

1

快速原型设计 - 两者皆可

在最简单的情况下,当启动Python解释器并编写一行或两行代码比在Visual Studio中创建新项目更快时。

您也可以使用Ruby。或Lua、Evel Perl等。重点是隐式类型和轻量级感觉。


1

跨平台

与.NET相比,一个简单的Python脚本更容易移植到其他平台,如Linux。虽然使用类似Mono的工具也可以实现相同的功能,但在不同平台上运行Python脚本文件更加简单。


1

处理收到的电子邮件

Python内置支持POP3和IMAP,而标准的.NET框架则不支持。用于自动化电子邮件触发任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接