Automating the world one-liner at a time…
Igor Moochnick announced the first release of PASH, an open source implementation of PowerShell. (I tripled check the date on his blog to make sure it really said April 6th and not April 1st. :-) ). This is really exciting stuff. This is one of the most requested items from IT shops that run heterogeneous environments. They love PowerShell and want ALL their IT Pros to adopt it. I haven't tried it yet so I don't know what it does/does not implement but I'm pretty excited about it. I can't wait to give it a try.
I'll have to talk with the .NET guys about how they work with the MONO team to ensure compatibility. If it gets/stays compatible, that is a super good thing for customers. It it becomes a variation or separate dialect and confuses our customers, then that would be problem.
BTW - just to make one point REALLY clear - PowerShell running across heterogeneous platforms was a project goal from the very beginning of the project. We architected and designed PowerShell so that our only "true" dependency was on .NET. There are only 1 or 2 cases where I know that we call a Windows API (code signing). In other words - what Igor is doing IS PERFECTLY FEASIBLE. Sure, he won't have WMI cmdlets on those other environments - you'll have incidental variations - that is not a problem. The engine and the language should work perfectly.
One last point. I'm really looking forward to getting the Open Source communities input on PowerShell and suggestions on ways to improve it. Their usage scenarios will be different and will highlight any flaws or shortcomings we have in other areas (e.g. text parsing/manipulation). I look forward to hearing their complaints/recommendations. Adding their perspective and insight will make PowerShell a better technology for everyone.
Check this out:
What a nice day!
Jeffrey Snover [MSFT] Windows Management Partner Architect Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx
So you mean, if you removed those one or two pieces of code one might be able to take the PowerShell.exe and run it on mono just by itself?
Quite frankly, wouldn't it be better at some point if MS just allowed some of its .Net binaries to run on Mono, instead of parallel projects cloning everything? I don't really see the point of the current situation, where everything gets written twice, while surely some of the .Net assemblies could with a little care just be delivered in such a way that they can run on mono...
But cool news overall indeed!
I agree with DavidACoder. At the beginning, when the idea of decoupling the PoSH from the Windows-specific code came to me - I was excited, but, after a couple of days trying to do this and failing - I was really disappointed.
One more thing you do that doesn't work on Mono - you call Registry API in a bunch of different places. Why you couldn't do the same thing with a config file?
why would I want Powershell on the aforementioned machines that already have bash and common unix utilities already installed and used as the default shell.
If there is customer demand, and there are so few dependencies on Windows, the best possible thing would be to just open source PowerShell and get the community to port the software to the various other platforms, removing the Windows-isms and other bits and make it truly cross platform.
Nice work Igor. That's an impressive bit of work. I want to commend the PowerShell team for carrying so much about interoperability for the two projects. It really brings up a much larger issue for you.
PowerShell isn't a money maker for Microsoft. You're probably not going to sell much software solely based on PowerShell. If you build your version of PowerShell you have one "feature". If Igor builds his version you still have one feature, with two different implementations. As a whole, the community gains nothing but you've doubled the amount of work. If Igor and you work together couldn't you make one implementation of an even better project? In that case, PowerShell is still revenue neutral (possibly positive because you need fewer paid employees to work on PowerShell) but it's a better, more full-featured product. I know I'm going through a standard open-source argument but with the kind of interoperability you're suggesting isn't that just the next logical step?
Don't get me wrong; I love that you're supportive of the efforts of Mono and Pash. If you don't move towards open-sourcing these products that's your choice. It just seems like everyone is doing a ton more work for programs that are free to start off with.
If you like the idea so much ... why not contribute some code?
Wouldn't it be a lot easier to be a part of this, and thus guarantee a portable, cross-platform implementation where at least the language syntax was the same (this one isn't, yet), than to sit around hoping that all the 3rd party developers won't like this implementation better?
I obviously don't know all the internal politics, but a portable, cross-platform, and open source implementation -- if it gets even close to being compatible -- is going to make it difficult to argue that the closed-source windows-only one produced by Microsoft should be "the" standard.
In fact, given a bit more progress towards compatibility ... portable cross-platform apps would be a big temptation for houses that are basing their products on PowerShell (be it hosts, cmdlets, or apps like exchange).
I agree with the other posters. If only a few calls are all that keep PowerShell running on Mono, then do it! Powershell being a Windows-only tool is the main thing that keeps me from being interested in it. Why use Powershell when I can just write nice script code in something like Ruby that works on a multitude of platforms?
A from the ground of rewrite of Powershell that is only 50% complete that will always be behind the Windows-based Powershell - all because Microsoft can't be bothered to make their code use only pure .Net code? C'mon guys.
There should be only one distribution of Powershell (preferably open-sourced like WiX) and it should be cross-platform. Until then, it's no better than Windows-only VBScript in my eyes and since I work in multiple environments, unless it works equally in all of them, there's no point.
I second the sentiments here. Its kind of silly to have two small relatively platform independent projects doing the same thing.
Igor Moochnick announced the first release of PASH , an open source implementation of PowerShell. (I
When is PowerShell v2.0 going to be released?
Congrats Igor, I have been watching you with this project for some time, and hope to see it successful and that many others will jump on board.
or you can add support in powershell for gnu coreutils and make ls, chmod, etc. available under it.
The problem with Power Shell portability is exactly the same as anything else Microsoft did with dotNet.
To be honest, I rly don't see a point of dotNet today, nor products developed in it. I do program in C# every day and I do love everything about it and I do like Power Shell a lot, but that doesn't stop me for being rational.
Peter in his comments above was absolutely right - Why .Net ? Why not VBScript or just plain C. Microsoft created .Net as response to Java, but unlike Sun which provided binaries and support for each platform out there, MS choosed to support only Windows and let the community do all the job on other places (luckily there are folks like Google, Novell, Igor...) and lets be clear, its a lot of job, it needs to be organised and standardised across platforms, not something passionate programmerers can handle the way it should be.
There are even open source communities like Portable Net (alternative to Mono) which develop *nx dotNet framework only to prevent MS hooking everybody to their proprietary .Net implementation and after tones of programms written in it, become 100% dependent on it, and thus MS Windows.
Its well known fact that MS is trying to kill all open source so you can't expect MS to officially support PS on linux.
And that situation really sux, because PS is probably the best thing MS ever did, and aside for its greatest side effect of eventual total removal of the worst shell that ever existed (cmd.exe) from the Windows, it most definitely wont go further then that when MS plans are in question.
.NET != Java. Java is a programming language, .NET is a framework encompassing many languages.
And Powershell rules! But checking the status of PASH, it seems development has slowed, if not stopped. That's too bad, Powershell is far superior to anything on Unix.