Programming languages 如果我';我已经开始使用PowerShell了?

Programming languages 如果我';我已经开始使用PowerShell了?,programming-languages,powershell,scripting,Programming Languages,Powershell,Scripting,不久前,我开始使用PowerShell,它真的很棒。我知道的几乎每一件事我都能编码,我可以使用.NETFramework,WMI,甚至WinAPI。像管道这样的特性可以帮助我编写易于管理和可读的代码。V2增加了高级功能、模块、后台作业、远程处理(woow)等 正如我所说,我几乎可以用PowerShell做任何事情,但我想学习一门新语言。主要原因是进一步的自我教育。其他原因(不太重要): 一些限制(例如,在PowerShell或泛型支持中使用线程并不容易) 速度(可能是将所有对象包装到PSObj

不久前,我开始使用PowerShell,它真的很棒。我知道的几乎每一件事我都能编码,我可以使用.NETFramework,WMI,甚至WinAPI。像管道这样的特性可以帮助我编写易于管理和可读的代码。V2增加了高级功能、模块、后台作业、远程处理(woow)等

正如我所说,我几乎可以用PowerShell做任何事情,但我想学习一门新语言。主要原因是进一步的自我教育。其他原因(不太重要):

  • 一些限制(例如,在PowerShell或泛型支持中使用线程并不容易)
  • 速度(可能是将所有对象包装到PSObject而不是直接使用对象的成本)
  • 跨平台开发(例如,我可以在Symbian上运行Python,这在PowerShell中可能不可能实现)
您推荐我哪种语言可以在某些方面击败PowerShell?例如在可读性、语言一致性、文档、可用性、库、稳定性、WTF时刻
如果它能够处理我指出的局限性,那就更好了

我更喜欢脚本语言,因为REPL循环和它不像C#那样冗长,但这不是必需的

我已经快速浏览了IronPython。主要原因是主办会议。然而,我想念管道,它太冗长了,与PowerShell相比有点笨拙


我的背景是:我用这些语言(至少是初学者)工作过:用C语言,C++,JavaScript,TSQL。我快速浏览了一下python,但这并没有说服我尝试一下(可能是一个错误)

我不认为这个问题应该结束,因为它是特定于PowerShell的,并且与其他(脚本)语言进行比较。如果您投票赞成结束,请至少留下一条注释说明原因。

如果您想要另一种脚本语言,那么我建议您选择VB脚本(以便能够阅读您将找到的所有Windows脚本示例)或JavaScript(补充用例:web客户端编程是一个不同的开发领域)


同样,您可以看看C#:既可以编写.NET代码,也可以扩展PowerShell。它还将使人们更容易理解.NET框架的功能(PowerShell中的大多数框架都没有示例,但到处都有C#示例)。

IronRuby呢?Ruby通常被认为是一种令人愉快的编程语言,而IronRuby项目有微软的支持,因此有一天它可能会成为一种“合适的”.NET语言”


不过,它还处于早期阶段,似乎还没有准备好在现实世界中使用。

虽然F#本身不是一种“脚本”语言,但值得一看。它确实支持管道(|>)和许多其他更高级别的功能,如模式匹配。VisualStudio中提供了一个交互式控制台以及一个独立的控制台交互式提示符。F#还有一个功能性质,有点“扭曲思维”,但很好。:-)

不确定您测试了哪个版本的IronPython,但我强烈建议您再看一次。IronPython的最新版本是根据2.6标准构建的,这是大多数其他用户正在使用的python版本。它可能比一些脚本语言更冗长,但在我看来,它更像是一种完整的编程语言ala C#,而不是一种脚本语言。在IronPython中使用和比在Powershell中更容易。此外,您还可以像在Powershell中一样利用.NET库和程序集。(对于跨平台代码,您需要只使用python类)

我的典型方法是,当我需要一起破解某些东西或执行系统管理任务(文件、注册表、wmi等)时,使用Powershell,如果IronPython更复杂或是一个小的辅助代码项目,则使用IronPython,然后使用C#表示商业级代码。它们都提供了不同的思维方式(管道、动态类型、静态类型),但都使用相同的基本.NET库,因此在不同语言之间切换时,我不必再考虑如何解析日期时间

至于您的需求,IronPython/python似乎非常适合:

  • 可读性和一致性非常重要
  • Languange文档很好,代码文档很好
  • 可用性、库:您可以获得.NET的全部功能,这与您在Powershell中可以做的一样
  • 稳定性:最新的IronPython非常稳定(使用并完全在IronPython中构建)
  • WTF时刻。。。在这方面帮不了你,但它仍然是一个回复,所以你至少可以四处看看,看看有什么问题:-P
  • 我想说IronPython严重缺乏的一个方面是工具支持。Powershell有一些,但到目前为止,我为IronPython找到的最好的编辑器是Notepad++和Resolver One的内置python控制台的组合,奇怪的是,Resolver One的内置python控制台具有良好的代码完整性,并且由于它是一个电子表格应用程序,因此很容易将数据输出到网格。此外,您有时会遇到“生活在两个世界中”的问题,在这两个世界中,有python方式和.NET方式,您必须进行选择(兼容性与.NET熟悉度)。虽然IronPython可以用于简单的脚本编写,但如果您主要处理简单的文件、注册表或xml,那么Powershell是一个不错的选择。Ironpython只是帮助填补了纯脚本语言和完整编程语言之间的空白

    希望有帮助。我的博客上有一些和的例子。我现在只使用IronPython大约一年了,但我有C#的背景,了解动态语言中的编程是如何工作的是非常有趣的。此外,该网站也是从浏览器开始使用IronPython的好方法


    祝你好运

    谢谢你的回答,我希望至少有一个;)事实上,我是一名c#/web开发人员,所以在某些情况下