A Guided Tour of the Microsoft Command Shell
jpkunst writes "Ryan Paul at Ars Technica provides an in-depth, 13 page review of the new Microsoft Command Shell (Monad). (The beta release can be downloaded for free from Microsoft.) From the conclusion: 'Despite my initial skepticism, I am deeply impressed with MSH technology, and I am legitimately excited about the future of the Windows command line.'"
And what's with the "unleash" keyword? Do these people really think in terms, that glossy ads use to compare the advertised products with animals?
In Soviet Washington the swamp drains you.
Indeed, that MSH demo is impressive and all, but python is great too. System-wide integration? Big fucking deal:
>>> import kudzu
>>> kudzu.probe(kudzu.CLASS_HD, kudzu.BUS_IDE, kudzu.PROBE_ALL)
[Desc: MAXTOR 6L040J2 Driver: ignore
Device: hda , Desc: ST360021A
Driver: ignore Device: hdc
, Desc: Maxtor 6Y120P0 Driver: ignore
Device: hde ]
etc, and python is easily expandible to cover ALL the system. What makes MSH rock is that it's a python-like programming languaje PLUS a user-oriented (user=administrator) shell like bash. In linux we're used to program scripts with python, then pass the data through pipes to bash to do something with it. Crappy. When you have to do things like "command | cut -d ' ' -f 3 | cut -d ':' -f 1" to get some data, you know something is WRONG.
The cool thing about MSH that its a SUBSTITUTE to bash/cmd.exe, not a "complement" like python is. Is not that bash or python are bad, but bash-like shells are 30-years-old unchanged technology. Fortunately, there're people writing user-oriented python-based shells, like http://ipython.scipy.org/
Those who do not understand Unix are condemned to reinvent it, poorly.
-- Henry Spencer<br>
Usenet signature, November 1987
A shell is nice but, can you change all the settings from the command line? The fact that most of your settings are stored in the registry, makes things a lot harder to do from the command line. Sure you could probably change a key or two if you needed to. But you'd probably have to know the exact location. Browsing the settings, to find the key you want, would be a lot harder. Can you install most programs from the command line, and manage all your installed software from the command line. I like the fact that in Linux, most base system stuff is designed so that it can be done by the command line, first and foremost, I like the fact that Linux stores all the settings in text files. This means that you can change the setting with any text editor of your choice. Also, there is a huge library of tools available at the command line. Not just stuff that was thought up by the people who made your command line (bash, csh, zsh), but also anybody else who made just about any other utility.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
Just a few days ago, there was another article on Slashdot about how Ballmer wants to "storm Linux." If they can convince *nix people that Windows has a powerful CLI, this will do much to suck them in... it is the "eye candy" for true geeks.
The article author starts to say this himself: My biggest frustration with MSH is the low quality of the actual shell interface. On my Linux system, I am extremely dependent on line editing keyboard shortcuts that simplify manipulation and alteration of command line input. MSH has very few line editing shortcuts, and extremely limited support for tab completion.
And I remember when CP/M was all the rage... *sigh*
$nice = $webHosting + $domainNames + $sslCerts
Yet again Microsoft takes an age-old technology, like scalable icons or transparency, and turns it into the best thing since sliced bread? Shouldn't they be condemned for leaving it this long to release a tool as powerful as this, instead of praised?
The best I can say is "It's about damn time".
C17H21NO4
Well it looks like C# will be alive and well for some time to come. This article definitely had the feel of Jesse Liberty's Programming C# OReilly book. .NET technology at the command line. Type casting is an easy way to transform a simple core type into a .NET instance or another core type. To cast an instance into another type, simply place the name of the desired type in brackets right in front of the instance. You can change a string into a number with an int cast:
" MSH has a number of unique features that make it easy for users to leverage
msh> [int]"5" + 5
10
"
is basically the section from the book on boxing and unboxing. Anyway, as a C# developer, it's great to see the language isn't dying..
~jennifer.k~
I didn't get very far into the article before they got to the "we do things for you" part. Maybe I'm alone in this belief but I absolutely hate it when a language/shell/application will do things for me.
For instance (from the article):
MSH features the typical data types found in most other modern languages: strings, integers, arrays, and hash tables. When you enter any of those kinds of values at the command line, MSH will echo them back.
msh> "blah"
blah
msh> 5
5
By comparison, in the Bash shell, expressions are always treated as commands and the echo command must be called explicitly if the user wants to display a value at the command line.
If I want an echo statement I WILL TYPE echo! I don't want the software to ASSUME (make and ass out of me) if I make a typo!
Having to work for a living is the root of all evil.
Hypothetically: What if MS pulls it off and puts out the best OS that the Linux guys have ever seen. Let's say it's the Longhorn Server, WinFS, Monad, and everything MS has been touting works. Remember this is a hypothetical here so save the flaming/trolling for another thread.
Will the Linux guys at that point stop bashing MS? Will you consider using the MS OS? Now I understand you don't trust them, but how will you respond if you can't say their product sucks? Will the comments be, "Ya they make the best OS, but they are evil?" Or will you continue to say that "Windows is just crap because they don't share the kernel source?"
We are starting to see more and more people say that MS is doing a good job (like the parent thread here), and much to my surprise they are starting to open up their formats and products a little (not completely I know, but moving towards that direction). By all accounts it looks like for the next 18 months MS will be releasing some decent software, most of it strides ahead of the OSS available. Not to say that MS isn't catching up to SOME open source products... but that's fine, they should add the best features to their product, why wouldn't they?
Just an honest hypothetical here, I'm not trolling or anything, I'm trying to understand your stance a little better. The standard cliché response of "MS is a monopoly and EVIL" is fine, but I was hoping for more thought provoking responses.
Wait wait .. so ... when Microsoft does something interesting (it happens) and it's remade in whatever OSS flavor of the month, that's cool.
But if Microsoft remakes something interesting made by OSS it's stealing.
I thought, in both cases, it was a matter of reverse engineering and clean room implementation.
We do not live in the 21st century. We live in the 20 second century.
I'm on page 6 already and I must say I start liking msh more and more.
It's completely un-microsoftish!
- It's very easy to shoot yourself in the foot. Extremely easy - anything that is not a command is an expression that is evaluated, so a typo may pass unnoticed and without a warning.
- It provides lots of sweet syntactic sugar making things easy and terse while not overly obscuring them.
- It takes some of the best from lots of other languages. Shamelessly too. ($_, select, | etc)
- It makes some evilly hack-friendly assumptions ("current instance" is the current directory)
- It will likely suck as an interactive shell, but makes simple scripts to automate system tasks obscenely easy. Likely, no more repeating 1000 times "click add user, type username, type password twice, mark 'Password never expires', enter Groups, select 'staff', click 'add group', click OK, click OK".
It really looks like the project was created by the programmers while the management was on vacations, then all the details hidden and managers just fed with marketspeech while programmers worked on a tool that would finally make THEIR OWN life easier, instead of just appealing to managers of customer companies and making programmers' life more painful.
Anagram("United States of America") == "Dine out, taste a Mac, fries"
it is much harder to write simple general purpose filters for generic objects than for text data. There are quite a lot of general purpose tools in Unix, like grep, sed, tail, etc. that can operate on almost any form of data, whereas MSH tools need to operate on objects, which is quite a bit harder.
.NET stuff.
If all objects have methods to serialise them to strings - and it doesn't seem unreasonable to assume that they will - then whenever you're fed an object you don't know about, you can access it as a string. At which point, bingo! you can use a general purpose filter for text data, just like in Unix.
I may be wrong, but this does look to me like a technique that can degrade reasonably elegantly to the lowest-Unix-denominator for programs that don't make use of all the
Microsoft. It's closed source, as far as I can tell. Nobody can add the features you want, you have to beg Microsoft.
As much as MSH *might* be good for it's other strengths, there's the possibility that it might never have good tab completion, code coloring, and other such things.
That's the REAL reason OSS/Linux/Etc has taken off. The empowerment of being able to change the system to suit your needs, instead of altering your needs to suit the system.
And in the end, people like sh/bash/etc. It's extremely easy for even a beginner to do practical things and produce functional scripts. It almost seems like MSH originally stood for "Microsoft Scripting Host" and the marketing department decided that it would be better to call it a shell to compete with Linux.
- It's not the Macs I hate. It's Digg users. -
There are already quite a few shells in unix that follow a similar paradigm. Python's default shell comes pretty close, but there are off shoots of it that provide functionality designed to be used as a command shell. MSH is pretty much an interactive ruby shell or python shell designed to run regular commands and treat files like objects (which is as simple as defining a class that can interpret the file information and give it methods like .get_extension) The real key here is that I belive everything is treated as an object. With minor modifications to the python shell and maybe an additional class or two you would have the exact same functionality. You see... there is a reason though that noone has done this. System administrators should not have to learn the concepts of object orientation just to do their job. They are not programmers. Its bad enough when programmers design GUIs because they cater to programmers and not typical users. Monad caters to programmers and not system administrators. Most unix sys admin I know do know how to script in something like perl or python, but most windows admin are point and click or they can type a few commands into a file and rename it to .bat to run it. The monad shell has some great ideas for a shell used by and for programmers, but honestly it isn't a sys admins job to understand programming or programming paradigms. Let admins use simple bash like commands, even if it may not be the cleanest way, conceptually it is often easier, and let programmers script their way out of any hole they want.
Regards,
Steve
unix does need a shell like monad I'm afraid (hence ac)
What monad will offer is something like
>ls -l | head -n 10 | sort size | excel
They are piping objects, we would need to do a lot of parsing to achief the same effect.
Someone really needs to write a new shell for unix and abstract the unix system, by giving it knowledge of the common unix tools (parsing the output for the user), like ps, ls, sed, etc.
Want to be famous ?
Here is your idea.
You need to meet more windows admins. Or get your head out of your ass, either or. You choose.
They're not piping objects to Excel. If you read the article you'd have read the part where they noted that interfacing with programs like IE and Excel will have to be done via ActiveX. Won't that be fun?
fast as fast can be. you'll never catch me.
Don't you mean "It doesn't act like, SH, ZSH, Bash, etc... AND IT WAS MADE BY MICROSOFT, BUUUURN!"
I really don't understand people like you. You whine, moan and complain because Microsoft's command prompt sucks, and when they fix it, you go out of your way to find new things to bitch about. What is very interesting, is that if they HAD copied Bash, or one of the other unix command lines, you would have immediatly jumped on them for that too.
BeauHD. Worst editor since kdawson.
You've got that backwards. MIcrosoft hasn't implemented anything new. Everything that MS is doing is an idea that they've pirated from University students who didn't have the time or the resources to patent/copyright their ideas while they were writing their graduate theses. MS may have expanded it some or made the GUI a little more consistent but there's nothing new in the corporate world. The only reason why you don't see massive disputes between academia and MS is that the computing industry is relatively young and Universities weren't on the intellectual property bandwagon until fairly recently.
fast as fast can be. you'll never catch me.
Kick in the *NIX fanboi defense reflex: Offer a half-baked parallel and insist that any deficiencies are things you didn't need or shouldn't be doing in the first place.
I'm Rick James with mod points biatch!