Linked by Thom Holwerda on Mon 7th Apr 2008 20:38 UTC
.NET (dotGNU too) Igor Moochnick announced Pash, an open source implementation of Microsoft's PowerShell. "The main goal is to provide a rich shell environment for other operating systems as well as to provide a hostable scripting engine for rich applications. The user experience should be seamless for people who are used to Windows version of PowerShell. The scrips, cmdlets and providers should runs AS-IS (if they are not using Windows-specific functionality). The rich applications that host PowerShell should run on any other operating system AS-IS. Secondary goal: the scripts should run across the machines and different OS's seamlesly (but following all the security guidelines)."
Thread beginning with comment 308522
To read all comments associated with this story, please click here.
Another project using .NET/MONO? A fail
by timofonic on Mon 7th Apr 2008 21:58 UTC
timofonic
Member since:
2006-01-26

The current implementation of Pash is written using pure .Net 2.0. It compiles on VS 2008 as well as on Mono.

I personally don't like .NET/MONO at all and I'm not alone at this kind of choice. Depending on a programming language owned by Microsoft is not so funny in the Open Source world, specially when there are less evil alternatives like Java or Python.

I personally find .NET/MONO slow and I will never use it because idological reasons, but that's not the main cause. I'm also not interested in Java, both languages use bytecode so they are against resource efficiency and I try to avoid bloated stuff when possible.

I don't understand why Pash when existing stuff like ZSH and the power of shell scripting. What are the real advantages of Powershell/Pash? I find it a lot less comfortable to use and a copycat of UNIX.

I think "alternatives" to Microsoft stuff are not interesting enough, devs like Miguel de Icaza got in love with the guys of Redmond but I don't see what's so good there except the money.

Edited 2008-04-07 22:00 UTC

Nelson Member since:
2005-11-29

C# is not "owned" by Microsoft.
They may hold patents on things lik WinForms and ASP .NET (Which I believe should of been left out of Mono) but everyting else in .NET is right out of the ECMA specficication.

Reply Parent Bookmark Score: 8

Beta Member since:
2005-07-06

…as we all know ECMA is completely independent.

Reply Parent Bookmark Score: 5

sbergman27 Member since:
2005-07-24

Indeed, I'm not too keen on checking out this "cool" new Mono app. Rather, I'm looking around for my Python Cookbook to review the chapter on system administration. If I changed my login shell to /usr/bin/python and eschewed bash for a month, I wonder if I would not be a more effective admin by the end of it? You know, I might just try that...

Edited 2008-04-07 22:28 UTC

Reply Parent Bookmark Score: 2

whartung Member since:
2005-07-06

If I changed my login shell to /usr/bin/python and eschewed bash for a month, I wonder if I would not be a more effective admin by the end of it? You know, I might just try that...


No, you won't.

Because while shells may have programming languages, the command line is a different world and has different characteristics than that of a programming language.

Also, the python command interpreter is reasonably horrible compared to modern shells. A lot of this is simply the language itself with its indention based blocks. Popping in and out of an editor for every command is not a real practical way to work.

The closest you'll get to a reasonable shell like environment inside of a programming language is within the Common Lisp family. The reason is that Lisp has a history of being a shell environment. The listener is not a second class afterthought in a Lisp system, but rather intrinsic to the experience. That in part is what makes it usable as a shell.

You can also look at scsh, which is a Scheme Shell -- i.e. a Scheme implementation specifically designed to be a shell. It has many shell friendly features.

And, finally, anything the eliminates pipes as an idiom isn't worth considering anyway. The "mashup" ability of piped ascii, while not perfect, is shockingly powerful and flexible.

Reply Parent Bookmark Score: 3

hhas Member since:
2006-11-28

If I changed my login shell to /usr/bin/python and eschewed bash for a month


I wouldn't. The standard python interpreter would make a lousy bash replacement; it's just a convenient way to execute Python code interactively, not manage your entire OS. If you really want to try an interactive Python shell, take a look at IPython:

http://ipython.scipy.org/moin/

Reply Parent Bookmark Score: 2

Terracotta Member since:
2005-08-15

http://rush.heroku.com/

Rush seems to be the next thing that might make it, though the ruby interpreter would need some speed improvements, kinda like the idea.

Reply Parent Bookmark Score: 2

hhas Member since:
2006-11-28

I don't understand why Pash when existing stuff like ZSH and the power of shell scripting.


Bash, ZSH et al may be powerful in themselves, but they're all built upon primitive, archaic foundations: untyped data, ASCII-centric assumptions, limited IPC capabilities, crude exception mechanisms, etc. It's like putting a Ferrari body and engine on top of a Yugo chassis and transmission: at best, a waste of potential; at worst, an exciting accident just waiting to happen.

Frankly a major shake-up has been long overdue. Powershell/Pash may or may not be the answer (they are still too young and immature to be making that call just yet), but it's good to see someone finally having a shot at dragging the command line from its thirty-year creative stupor and introducing it to the modern world at long last.

Reply Parent Bookmark Score: 9

colinwalters Member since:
2007-11-02

Hotwire is an attempt to superset Unix text-stream pipes with an object-oriented approach, currently using the Python runtime:
http://hotwire-shell.org

Reply Parent Bookmark Score: 5

leos Member since:
2005-09-21

Bash, ZSH et al may be powerful in themselves, but they're all built upon primitive, archaic foundations: untyped data, ASCII-centric assumptions, limited IPC capabilities, crude exception mechanisms, etc.


What you're saying is they're not buzzword compliant. However, they are proven, effective, stable, and have huge support. Shells are supposed to be quick and dirty. Powershell is a way overengineered solution to the problem of shell scripting.

Reply Parent Bookmark Score: 6

siride Member since:
2006-01-02

I disagree. Text is anything to anybody. Object-orientation with binary data is only something to certain people. It's not portable across time and space in quite the same way that text is. You may say that it's dated, but it was a really good decision at the time and I think there's a reason it's still around. I mean, you wouldn't say that we should do away with RAM because it's been around for a while, and frankly, it's time for a shake-up, would you?

If you want object-oriented shell, use a LISP or Python interpreter. If you want an open system shell, use a text-based one. It speaks the only language that everybody speaks.

Reply Parent Bookmark Score: 7

CaptainPinko Member since:
2005-07-21

I personally find .NET/MONO slow and I will never use it because idological reasons, but that's not the main cause. I'm also not interested in Java, both languages use bytecode so they are against resource efficiency and I try to avoid bloated stuff when possible.


While the arguments that Java (and I'd assume .Net) aren't as bloated as many people think they are, I too question the choice of using C#. I'm afraid that the additional VM start-up time maybe be a real PITA. I replaced NotePAd with JEdit which ran fine, but the amount of time it took to start up just to edit a file was a bit much when I just wanted to quickly check a log file.

However, it should be able to be ported over to C++ when they are done.

Reply Parent Bookmark Score: 4

google_ninja Member since:
2006-02-05

I think "alternatives" to Microsoft stuff are not interesting enough, devs like Miguel de Icaza got in love with the guys of Redmond but I don't see what's so good there except the money.


C# is one of the more elegant languages out there nowadays, when it comes to syntax it easily goes head to head with stuff like ruby and python, while rolling with a fast interpreter and one of the best APIs I have ever worked with.

The reason guys like miguel try to port it is that the closest thing linux has to something like it is java, and java is falling further and further behind as the years go by. Most serious linux development is done in either C, which was a great language, but at this point is kind of dated, and C++, which has always sort of been a mess.

Reply Parent Bookmark Score: 6