2010-02-18 78 views
3

前段時間我已經開始使用PowerShell,這真的很棒。我可以編寫幾乎所有我知道的代碼,我可以使用.NET框架,WMI甚至WIN API。諸如管道之類的功能幫助我編寫易於管理和可讀的代碼。 V2添加了高級功能,模塊,後臺作業,遠程(woow)等。如果我已經開始使用PowerShell,需要了解哪些(腳本)語言?

正如我所說的,我可以用PowerShell做幾乎所有事情,但我想學習一門新的語言。主要原因是進一步的自我教育。其他原因(不那麼重要):

  • 一些限制(例如,它不容易在PowerShell中或泛型支持線程工作)
  • 速度(它可能是包裝所有PSObjects,而不是與物體直接合作的費用)
  • 跨平臺的開發(如我可以在我的Symbian運行Python,這可能將是不可能的使用PowerShell)

你會建議我什麼語言,可以在某些領域擊敗PowerShell的?例如在可讀性,語言一致性,文檔,有用性,庫,穩定性,WTF時刻...
如果它能夠處理我指出的限制,那就更好了。

我更喜歡使用腳本語言,因爲它是REPL循環,因爲它不是太冗長, C#,但這不是必需的。

我已經快速瀏覽過IronPython。主要原因是在PDC 2009提出主辦。但是,我錯過了管道,與PowerShell相比,它太冗長和笨拙。我使用c#,C++,javascript,tsql工作過(至少作爲初學者)。我快速瀏覽了一下python,但那並不能說服我試一試(也許是一個錯誤)。

我不認爲這個問題應該關閉,因爲它特定於PowerShell並與其他(腳本)語言進行比較。如果你投票結束,請留下至少一個評論爲什麼。

回答

4

雖然不是「腳本」語言本身,但F#值得一看。它確實支持管道(|>)和許多其他更高級別的功能,如模式匹配。還有一個在Visual Studio中提供的交互式控制檯,以及一個獨立的控制檯交互提示。還有F#的功能性,這有點「彎腰」,但卻是一種很好的方式。 :-)

+0

我打算購買由Tomas Petricek *真實世界功能編程*編寫的書。但到目前爲止,我認爲這是一種語言,必須彙編來源。是否有可能存儲f#腳本並運行以及ps1? – stej 2010-02-18 19:42:15

+0

我在那本書上證明了手稿,而現在我剛剛開始發行這本書。目前看起來不錯。順便說一句,您可以使用fsi.exe運行未編譯的腳本文件,例如'fsi hello.fsx' – 2010-02-20 05:24:48

+0

F3絕對是擴展知識的好方法,因爲它爲大多數語言的主要面向對象的世界增加了功能編程方面的知識。我沒有太多的工作,但我看過第9頻道的一些視頻,它正在被微軟推着。 http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-1-of-3/ – 2010-02-21 06:34:37

2

如果想要另一個腳本語言,那麼我建議無論是VB腳本(以能夠讀取Windows腳本編寫的,你會發現所有的例子)的JavaScript(互補使用情況,或:Web客戶端編程是一個不同的發展領域)。同樣,您可以看看C#:既編寫.NET代碼,又擴展PowerShell。它也將使它更容易理解.NET Framework的功能(PowerShell中的大多數框架都沒有例子,但在任何地方都是C#示例)。

+0

Thx理查德爲您的答案,我希望至少有一個;)事實上,我是一個C#/ Web開發人員,所以在某種程度上,我知道JavaScript。然而,爲了我的目的(Posh強大的領域 - 文件,註冊表,XML,下載網頁內容,發現外國程序集......)並不適合。我將編輯該問題。我完全同意學習c#對於一些熟悉PowerShell的人來說是一個巨大的飛躍。 – stej 2010-02-18 12:03:55

1

IronRuby怎麼樣? Ruby一般被認爲是一種令人愉快的編程語言,IronRuby項目有微軟的支持,所以它可能有一天會成爲一個「合適」的.NET語言。

雖然–它早期階段似乎沒有準備好現實世界的使用。

+0

IronRuby提供什麼PowerShell沒有?只是好奇,因爲我不知道任何關於(鐵)紅寶石。那麼IronPython不會比IronRuby更好嗎?看來,IronPython將作爲C#或Visual Basic集成到VS中。 – stej 2010-02-18 19:39:35

+0

IronPython非常穩定,已經在商業應用中使用,但IronRuby並不遙遠。他們的目標是在不久的將來與其他Ruby平臺保持穩定和競爭力。 – 2010-02-21 06:23:55

2

不確定你測試過哪個版本的IronPython,但我強烈建議再看一遍。 IronPython的最新版本是針對2.6標準構建的,這是大多數其他用戶使用的python版本。它可能比一些腳本語言更冗長一些,但感覺更像是一種完整的編程語言,即C#,然後是腳本語言。在IronPython和Powershell中使用classesmultiple threads進行工作要容易得多。另外,您可以像在Powershell中一樣使用.NET庫和程序集。 (對於跨平臺代碼,您需要堅持使用python類)

我的典型方法是在需要一起破解某些東西或執行系統管理任務(文件,註冊表,wmi等),IronPython時使用Powershell if它是比較複雜的一個小代碼項目,然後是C#用於商業級代碼。它們每個都提供了不同的思考方式(管道,動態類型,靜態類型),但都使用相同的基本.NET庫,因此我不必在兩種語言之間再次解析日期時間。

至於您的要求,IronPython的/蟒蛇似乎適合他們很好:

  1. 可讀性和一致性是two primary goals of python
  2. 的語文檔是好的,代碼文檔是pillar of python
  3. 有用性,庫:您可以獲得.NET的全部功能,與您在Powershell中可以做的一樣。
  4. 穩定性:最新的IronPython非常穩定(使用Resolver One,完全由IronPython構建)
  5. WTF時刻......不能幫助你那裏,但它仍然是一個REPL這樣你至少可以捅四處打聽出了什麼問題:-P

的一個領域,我會說IronPython的缺乏嚴格的工具支持。 Powershell有一些great script editors,但到目前爲止,我發現IronPython的最佳編輯器是Notepad ++和奇怪的是,Resolver One內置在Python控制檯中,它具有體面的代碼完成,並且很容易將數據輸出到網格,因爲它是一個電子表格應用程序。此外,你有時會遇到「生活在兩個世界中」的問題,那裏有一種python方式來做某事,一種.NET方式做某事,你必須選擇(兼容性和.NET熟悉度)。儘管IronPython可以用於簡單腳本編寫,但如果您主要處理簡單文件,註冊表或xml,那麼Powershell就是最好的選擇。 Ironpython只是幫助填補純腳本語言和完整編程語言之間的差距。

希望有所幫助。我的博客上有一些IronPythonPowershell的示例。我一直在使用IronPython大約一年,但是從C#背景來看,看到動態語言中的編程如何工作非常有趣。此外,TryPython.Org網站是從您的瀏覽器開始使用IronPython的好方法!

祝你好運!

+0

格雷格,你勸我給IronPython的一次機會; )爲什麼我看看IPy的另一個原因是可以在c#中託管它,並提供某種插件機制 - 調用可以更改c#對象狀態的IPy腳本(有一個指向我的PDC的屏幕截圖的鏈接題)。你以某種方式證實了我的懷疑PowerShell是真棒語言:) – stej 2010-02-21 21:25:30

相關問題