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.'"
Everyone knows that "msh" really stands for "Microsoft Hell".
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.
We must have a working implimentation of this shell in Gnome immediately.
I propose we call it Gonad.
It will be the dogs bollocks.
Nevermind. Really, does anyone care about this? I mean a powerful command shell under windows is like a...hmm...like a....well it's like something!!!
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/
Has any project been started to provide an open source clone, similar to what the Mono Project has done with .NET?
Cyric Zndovzny at your service.
Those who do not understand Unix are condemned to reinvent it, poorly.
-- Henry Spencer<br>
Usenet signature, November 1987
It's nuts
"Sure there's porn and piracy on the Web but there's probably a downside too."
Perhaps the Windows shell has finally reached the levels of goodness of that old shell, whatchyacallit. DOS, I think it was.
I forget what company it was that made that, but I'm sure if they were still around, they'd be doing amazing things. We can certainly agree that they'd without a doubt have a command line that would blow Microsoft's right out of the water.
xkcd.com - a webcomic of mathematics, love, and language.
Backslashdot
Specializing in Unix bashing (somewhat of an ironic statement)
the text-based shell is the nexus of computational control and the point at which proper articulation of will can transform commands into consequences Which leads to two questions : who wrote this shit, and were they getting paid per syllable?
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
I don't think that word means what you think it means...
A witty saying proves nothing.
- Voltaire
Taken from "system requirements"Requires the .NET Framework Version 2.0 Redistributable Package Beta 2 (x86) (see Related Downloads below).
Note that the "Supporting Operating Systems" list above is slightly wrong: the release is supported on Windows XP SP2, not Windows XP Embedded SP2.
Microsoft can't even get its own system requirements right... I someone expects a robust security infrastructure...
It's worth mentioning here that the real strength of the pipe is not "what you can pipe", but "what you can pipe things from, and to", and the fact that you can daisy-chain them together as far as you like. There are literally thousands, maybe tens of thousands of little tools and widgets that you can pipe information into and out of to achieve various effects. Regardless of what new things the MSH pipe can do, the unix world has a significantly larger toolbox.
Mike Hoye
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
Just a guess.
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
...does it run Windows?
Seriously... I can see a Python-based shell that can do what MSH can (named 'pash', possibly?). I respect the SQL syntax used and it could be useful, although I dislike the idea of using |s for this (no real reason... it just looks/feels wrong).
Another downside (for me) is that it's too verbose. I'm used to short commands like 'cat' instead of something like 'get-contents'. And the
Just my two cents.
Founder of Mirror Moon - Tsukihime Game Trans
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~
For a long time, it has been proud of his UI technologies, and thought the UNIX shells are too complicated to most people. As for the genernal people, it's right indeed; but it's not true for those developers that want to perform some customized tasks through some kind of relatively easy method.
The real problem is, Linux has been attracted more and more developers, it's absolutely dangerours to the Windows future. it must do something to change this situation, as a part of a series of actions according its plan.
-- forgive me my poor Engl...
>Unlike Linux command-line utilities, which contain their own argument parsers and output
>format mechanisms, MSH commands (called Cmdlets) all inherit a single base class, which
>ensures that all commands expose the same methods, parse arguments the same way
That's not entirely true about Unix (Linux): first, it omits to mention that Unix shells traditionally expand pattern matches in the given arguments, and match the command to an executable, before passing the arguments to that executable; and, second, everyone has used getopt(1) or getopt(3) (in whatever language) for years now, haven't they? (It's a common Unix newbie misapprehension to think that each executable has to expand the shell filename pattern matches in the arguments itself). These are a good start at maintaining command format consistency. I regret only that the original (Research) Unix didn't define which of: '-d -i' or '-di' and which of '-darg' or '-d arg' was preferable, and POSIX.2 (1991) appears (to me, glancing at it now) simply to have rubber-stamped the original situation.
Do you still join Quake deathmatch servers and shout things like "hey everyone lets just use our axes!" thinking its really funny?
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.
Will 'del C:\*.*' work?
Is this the very same commandline that was so cumbersome in Linux? Is it suddenly an asset just because its in MS Windows?
NIN Syndrome at its finest....
HTTP/1.1 400
Neither does one that is said by Voltaire.
-Suso
Thank you Microsoft for making a uniform GUI. We all have deep respect for the new Microsoft Command Shell and I feel that we all owe you a lot for letting us experience the joy that is Windows.
Cyric Zndovzny at your service.
I kill me.
Seriously though, the design of MSH is odd. Their hybrid of paradigms from functional programming and OOP is just weird and inconsistent. Having completely different syntaxes for invoking "Commands" and "Methods" is obviously a byproduct of trying to have both a traditional shell syntax and OOPy goodness, without thinking much about internal consistency.
Typical Microsoft: very use-case focused, at the expense of helping their users build a consistent mental model of how their system works. I bet it's pretty hard to do anything in MSH that its designers didn't specifically anticipate.
Can you say 'copright violation/patent infringement law suit' AGAINST Unix command shell.
Microsoft is doing NOTHING that is new here. NOTHING that they haven't done before, that they couldn't do before and that anyone else couldn't do, better in some cases.
Why are they even mentionning this?
Look to the law...
What do they wish to lever this against? The Unix command shell. Is bash copyrighted? Is it patented? Watch for assaults on technicalities...
If the law is against you, argue the evidence.
If the evidence is against you, argue the law.
If the law and the evidence are against you, give the opposing counsel hell.
Microsoft bears close watching.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
Comment removed based on user account deletion
Actually, for those people who don't care what others think about them, that is actually a lot of silly fun. Quake & Axes, Half-Life & Crowbars, etc - some of the most fun gaming I have ever had. Just because it may not be appealing to you doesn't mean that _no one_ likes it...
Irony? Yea, it's like goldy and bronzy, only it's made of iron!
It is clear that our favorite software giant plans to cultivate a culture of developer empowerment.
I thought this article was on Microsoft, not Apple?
So after years of telling us that the command line is dead, it's not dead anymore? I'm confused...
However, I am looking forward to lots of Windows users becoming "l337" overnight because they now know a couple of commands for msh, in much the same way as all gentoo users are uber coders, as they've regularly sat and watched screenfulls of text scroll past.
Sunday you're Thinking Different, Monday you're a huge tool, paying too much and waiting to think like everyone else.
Title says it all
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.
I certainly wasn't expecting this kind of mishmash syntax in their new shell. I think it looks quite horrible actually. Even though all the functionality is there, it looks like they wanted to copy something rather than innovate.
MS has hired a lot of GHC folks, and I expected something along the lines of the elegancy of Haskell. Or at least something with a useful and flexible "core syntax".
and don't worry about becoming dependent only to have a "Licen$e" fee imposed, or EULA restrictions about using GPL software in conjuction with it.
Since VISTA is turning out to be just a theme upgrade, why not upgrade to Linux and stop shelling out more and more money just to get a new theme or security holes patched, or the stability improved?
Duh!
Running with Linux for over 20 years!
it would finally be ready for the desktop.
when will the linux devs get on the ball its 2005 the new wave of computing is the command line.
who says microsoft doesnt inovate.
Thank you Microsoft for updating the "DOS" shell. Us command-line jocks really do appreciate it. They were even nice to us switch-hitters in that "cd /windows/system32" (note the forward slashes) actually works now. I guess they concede they lost the slash wars after all these years :)
But seriously. After spending in any time in a Linux or OS X sexy, semi-transparent shell windows, with a nice courier font and syntax highlighting, Monand (as it is now) still runs in the gross 1982 DOS window?
I hope this changes come Long^M^M^M^M Vista
It looks just like eval.rb the interactive ruby shell:
http://www.rubyist.net/~slagell/ruby/strings.html
ATH0 Bitcoin: 1DnwFLXczVZV8kLJbMYoheUrpqHesjxrSi
. . . but don't want to create a Passport account, this username/password from BugMeNot worked for me:
foobar@feebop.com
msdn2005
Unfortunately we then regressed to Java. Also, maybe this means Tk will finally get a decent modern look-and-feel on Linux. I'm sure it looked great in the CDE days, but really, themes that will look like Qt and/or gtk are a must.
I am trolling
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"
Because it's the first parameter you can omit its designation? Ugh! How ugly! Hacks like this make it look like a piece of crap right from the start.. Looks like they tried desperately to make it easier to use after creating a very verbose system then getting carpal tunnel syndrome from using it.
I was thinking that microsoft would never provide such a thing, but only the unusable DOS/cmd.exe prompt, to make windows users think that "operating systems based on the command line are very difficult to use" :)
I'm now interested to see how it maps with gnu bash, if it tries to superseed it with features or will be vaguely compatible with it...
Nice!
Wondering why i am doing so strange posts? I am trying to get a "+5,Flamebait" or "-1,Insightful" rating.
This really reminds of the interactive Ruby shell, "irb", especially with every statement being considered an expression, and having the result of the expression displayed after you type it.
"To hope's end I rode and to heart's breaking: Now for wrath, now for ruin and a red nightfall!"
Err, on second thought, Monad sounds better.
Finally, MS has understood that a powerful shell language is necessary for a modern operating system.
True. But as a long time Unix command line guy, I admire the way Windoze monkeys are able to mouse around their screens so quickly. I think they develop this skill so they can cram in as much work as possible in before their machine 'locks up'.
an ill wind that blows no good
What is the deal with ars and positive articles about microsoft products? I haven't tried MSH, but according to the author it is the best thing since sliced bread, which I doubt. Before this, it was hte HD-DVD debacle, which proved to be mostly FUD.
The new writers over there really seems easily excited...
...there will be a curses "Blue Screen Of Death" in replacement of kernel oops!, and segfaults?
Statistic says: if you've got your head into a freezer and your butt into a oven you are at optimal temperature.
Yup I guess it must... Interestingly it is object oriented way of doing things... it's like taking Tcl/TK and perl/python and incorporate it inside of the shell... is it just me or is this suite approach idiotic? I mean bundling everything inside of one offering is mostly not good idea AND when it comes to servers I want to have the option to have a minimal feature set to make 100% sure that security can be managed in a timely manner. One aspect of UNIX is the pipeline methodology that some in the parent thread said was so wrong... this is a classic example of a person grown up on MS software saying this, where they need everything to be in one program and whoe to the machine that doesn;t have that program installed. Obviously being at the mercy of Microsoft one has to learn a completely new program offering for each new release which makes computer know-how a flavour of the week knowledge. Yes I am saying that computer techs are expendible in Microsofts view. Why are techs then clammering so hard for their solutions? Because there will always be naive beginners that see the "ease" and instant gratification that Microsoft offers. Most of us have been there are some point in our lives. Personaly I was there with Quick C++ back in the day and I am in no hurry to repeat that relationship.
As always my post will be modded zero and yet again prove that slashdot is in fact a commercial vehicle of Microsoft but with letting some of the anarchy through from the insiders that can have the official style (for the lack of a better word.) Paranoid? No I am just seing a pattern.
Microsoft's article on Monad: Getting Started Guide to Using the MSH Shell and Language.
If anyone at Microsoft is reading this, Monad would be a very good product to release under Shared Source.
Amazing magic tricks
Such a shitty comment and you posted it twice?
Dumbass.
Someone should write it. Just for the snickering (and occasional guffaw) it will generate.
I've been thinking about making a fart, find and replace tool, for a while too.
Seems to me that most of what they brag about with Monad are things that have already been around for a while in other shells.
As a side note, I program in perl for a living, and many years ago I found I would sometimes need to quickly test small perl constructs. So I wrote a "perl shell" that allows me to test them interactively. Here it is, see for yourself, I find it quite useful. If anyone's interested, I have a more sophisticated version with debug facilities, a command history etc.
---- save as "perli" in your ~/bin, then set mode to 755 ---
#!/usr/bin/perl
print "\nWelcome to perli, an Interactive PERL shell by MarchHare.\n\n";
$0="-perlsh";
$PROMPT="PERL> ";
# not strict BY DESIGN.
for (;;) {
print $PROMPT;
$_input = <STDIN>;
if (!defined($_input)) {
print "\nExiting.\n";
exit 0;
}
eval $_input;
print $@ if $@;
}
--- end ---
It's called GONAD.
"'Despite my initial skepticism, I am deeply impressed with MSH technology, and I am legitimately excited about the future of the Windows command line.'"
There is something seriously wrong when you get excited over a command line!
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. -
Who still uses cut? Just you I guess.
OK so I had hoped to look at this (I need to do some Windows based scripting), but after downloading the application I'm required to download and install .NET framwork 2.0 Beta 2.0 coming in at around 317Mb?
Screw that.
I don't read your sig, why do you read mine?
I think a certain number of professionals have abandoned Microsoft products for Linux to have more control over what happens behind the seens, simply because the Unix/Linux shells are so robust and easy to use.
Taking MS-DOS out of the picture really hurt Microsoft. The thing to do now is to make it conform in some senses to the standards that the Nix shells have set.
If they miss this point totally, not many admins will want to go out at learn a new syntax just because MS decides to all of a sudden give us the control back.
Guys, this thing is going to kill Linux (and UNIX finally).
Prove me I am wrong (I won't sleep at night).
"Microsoft is catching up with Unix quickly! Soon they will have achieved the level of technology we have had for 15 years."
And the Linux GUI's are catching up quickly with technology that Apple and Microsoft had for 15 years. So what's your point?
Have not read all the threads or frankly the link, but this reminds me of an old story I was able to google: http://www.softpanorama.org/Scripting/Shellorama/h umor.shtml
Wish I had a better referece. This isn't quite how I remember the story, and I can't vouch for its accuracy, but I believe some variation of the story did happen. Think originally I read about it in InfoWeek or another rag.
For once accidentally typing "ls" into the "windows command prompt didnt give me an error, nor did man or clear!!!! Finally a MS command shell that I can actually use
The best argument against democracy is a five-minute conversation with the average voter.
- Winston Churchill
If you haven't noticed, Microsoft pulled the shell after someone had an exploit for the beta.
Apple did a very intelligent thing: Stop trying to make a whole operating system, and instead use a base of 30 years of industrial strength Unix. The problems with bash etc. are well known, there is no limit to the people who are already trained in using it, and you can still graft your pretty desktop on top. The security advantages alone would be worth it.
And, more to the point, you could fire thousands of Microsoft employees who are just doing make-work like this "new feature" and use that money to do the company's real job: Make shareholders rich. Because in the end, what counts is this: MSFT vs. AAPL stock performace for one year. Or -- Christ -- even this: MSFT vs. RHAT stock performance for one year. Microsoft's in trouble, and this isn't helping.
Oh, great. So Microsoft has designed an advanced, object oriented command shell. Impressive. So now, instead of writing:
l e2.txt);\ file2.txt");f ile1.txt","d:\file2.txt");
c:\>copy file1.txt d:\file2.txt
i will write:
MONAD: c:\>copy file1.txt d:\file2.txt
MONAD: Command not found: copy
MONAD: c:\>System.copy file1.txt d:\file2.txt
MONAD: Command not found: System.copy
MONAD: c:\>System.WindowsFileSystem.copy file1.txt d:\file2.txt
MONAD: Incorrect syntax
MONAD: c:\>System.WindowsFileSystem.copy(file1.txt,d:\fi
MONAD: Unbound variable: file1
MONAD: c:\>F*ck!
MONAD: Command not found: F*ck!
MONAD: c:\>System.WindowsFileSystem.copy("file1.txt","d:
MONAD: Exception at System.WindowsFileSystem.copy: parameters differ in kind
MONAD: c:\>WTF!
MONAD: WTF entering interactive mode: shit! ^C^C^C^C^C
MONAD: c:\>System.WindowsFileSystem.copy_fat32_to_ntfs("
MONAD: System.WindowsFileSystem.copy_fat32_to_ntfs obsolete. Don't use it. Nothing has been done.
MONAD: c:\>exit, i'll copy the file using a magnet
MONAD: Command not found: exit -- a hand slams onto the monitor --
Great, indeed great.
320 MB? Where in hell did you see that? The .NET Framework Version 2.0 Redistributable Package Beta 2 weighs in at 22 MB. Still hefty, I grant you, but certainly not 300+ megs.
a milyid=7ABD8C8F-287E-4C7E-9A4A-A4ECFF40FC8E&displa ylang=en
.NET 2.0 apps. The framework is this big collection of shared libraries used by all .NET apps whether they are C++, C#, yadda yadda yadda... You get the gist. No worse than getting Java, really. MSH is just implemented using .NET, basically. The 1.1 framework stuff is built into XP's Service Pack 1 and later, and I'm sure that the 2.0 framework will be built into Vista.
http://www.microsoft.com/downloads/details.aspx?f
Now, for a command line, I grant you, that's heavy. But a) It's still beta and b) It's the framework for all
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
"Windows "Monad" Shell is a new interactive command-line and task-based scripting technology in Windows that enables administrators to more efficiently and securely automate and control system management tasks on both desktops and servers."
Is Microsoft admitting that administrating a machine by shell is more efficient and secure than by UI?
dir /s to find a lost file (ok i admit it, execution time is much slower than doing it via windows search), attrib to change file attributes, and remember gems like XCopy which allowed you to set the file attributes to signal an already-copied file? I used to do that to back up my directories into floppies.
I'm really glad these guided tours exist, they can do a lot to boost productivity.
This looks like a C++ interpreter with several preset classes. For me this is not necesssarily the best way to allow easy computer usage. But it is probably great for writing quick and dirty GUI tools. It is certainly nice for programming, but a bit overkill for normal command line usage. Actually, I think they should just accept bash as defacto industry standard. Techies install cygwin tools anyway. And the GUI tools could be written in python.
normally done by a (print (eval list))
The technique goes back to around 1960.
The entire language looks like a mish-mash of LISP, perl, tk, and python.
Nothing new.
While I think it's great MS is serious about providing a better CLI for their OS, Monad does not impress me. Any of the scripting languages on *nix can be turned into a shell if anyone wanted to. In fact, we already have a C SHell, and apparently there's a Perl SHell. Claiming "ours is better because it is not based on 30-year-old technology" is a silly argument MS trots out when they don't have a real reason for you to use the technology they just "invented."
I'm also concerned about the security implications of allowing such a technology into the core of Windows. In MS's hands, MSH could easily become another Windows virus infection vector (and as I recall it has already had security issues).
--Mythos
It doesn't seem to be much better cmd.exe other than it actually supports UNC paths. That was one thing that always pissed me off about cmd and cygwin. How can you NOT support UNC paths in windows 98+?
-TheDawgLives suckitdown
Just my opinion... First, what is not wrong. It's perfectly OK for them to imitate Unix command-line, and try to reuse any old ideas. That is the way of all science and technology - small steps forward plus use of old things that are good.
Now, what I think is wrong is that in their effort to maitain monopoly, they keep making new software that is all-or-nothing, too monolithic. They try to change all at once, so this new flashy version of Windows has radically new approach to UI, application development, command line shell, and who knows what else. From my point of view that means that if I decided to learn Vista, it would be an all-or-nothing decision for me: forget about Linux, BSD descendants, bash, standard C library, older versions of Windows, COM, OLE, ActiveX, forget about old Office because new Office will be totally different... You see, for me the main point is that it doesn't matter whether new things are better than old, but that I have to invest so much effort in learning these new things, and still nobody guarantees that 3 years from now MS will not come up with yet another new version of everything that will force me to forget what I knew and learn things from scratch.
I think that is why Linux is gaining on Windows - you learn a little and use a little. Then you learn a little more and use a little more. But whatever you learn, you can be confident will stay with you and pay off in the future. Linux may not be technically superior, but it is easier to learn and easier to use. Yes, I really mean that. If you think Windows is easy to use, just tell me how many Windows users are capable of digging into registry to fix things that a stray application has messed up. I for one am not. If I have an application that is started automatically at startup, how hard can it be to get rid of it? How many registry keys can hold this information? What is worse, if I knew how to do this in Win 4.0 and 2000, I still have to learn it in XP. How user-friendly is that?
Other people may have their reasons for preferring Windows or Linux, but these are my reasons why I think I'll stay away for Windows - my life is too short to keep relearning things every 3 or 4 years.
that Microsoft only reinvents it for marketing purposes. Why didn't they make a decent scriptable shell 10 years ago with Windows 95?
I recall one of those books, 1001 DOS commandline utilities or the like. There was DOSKey, choice, getkey, etc. Why did I have to wait 15 freaking years so I could do a simple for loop in a bat file?
No, I had to learn Pascal, or qbasic (eew) to make stupid for loops and read user input in an installation program or something.
As a Joe User, I was never fond of the cryptic unix shells (bsh, ksh, etc) and I had to learn the differences between them, some programs required one or the other. But despite this, I was amazed the amount of complex processing you could do with a simple shell script.
Big deal, Microsoft. You invent something really useful too late. If you had given this to us 10 years ago, we might have appreciated it, but no, you make this AFTER the GUI revolution.
But I shouldn't complain. Better late than ever.
I think more impressive than the Monad shell is the product scheduled for simultaneous release; I know I'm not alone in the Slashdot world in being pumped for Duke Nukem Forever.
"My heart is in the work." - Andrew Carnegie
This download offers you the benefits of registering with Microsoft. Click the Continue button near the top of this page to register.c 8ff-c4eb-41f3-884e-981bf39997b7/monad_b2_50215_x86 .zip
2 6fea1-723d-4bd6-93c1-19d681af9276.aspx
no thanks, I would rather just download it.
http://download.microsoft.com/download/7/4/6/746e
taken from
http://www.leeholmes.com/blog/CommentView,guid,8b
(which also has the 64 bit version)
ERR 411[Max number of witty sigs reached]
Everyone who has replied to this article (except me) is a fucken retard. Why even post an article saying anything good about Microsoft on Slashdot? It just becomes a flame(r)-fest. You Slashdot/Linux people are so blinded by your 'open source is the only way' stupidity that you can't possibly acknowledge anything that Microsoft actually does right.
Great! Now, we can easily write a script to convert all Office (Word / Excel, etc) to the OpenDocument formats!!!
Just curious, but can anyone compare the new scripting language with Applescript? This OS X scripting language (along with some others) uses Apple's OSA api to speak directly to objects within applications... no pipes required.
-- "At Microsoft, quality is job 1.1" -- PC Magazine, Nov. 1994
Reading this article it looks like its actually quite powerful just not so much as an administrative tool. It looks like it would be best suited as a tool for debugging C# classes.
just my two sense.
Um, you're completely wrong. Apparently you didn't read the article.
Monad uses providers to make much of the system directly accessible from the command-line, including the registry. What this means is that MSH mounts the registry as a filesystem, allowing sysadmins to query for and set registry entries as .NET objects. I'd say that paradigm is much more powerful for script writers than trying to parse configuration text files, either from the command-line or from scripts.
Hi there,
I don't see a reason to work on a OSS implementation of Monad -- which is a great name incidently, Liebniz is a good read. It was pretty sad to see scores of "lol, monad... gonad.. lolz, whats a book?" posts when it was first announced.
Anyway, I digress.
Monad exists to catch up with unix shells. We've already got them. Monad doesn't really offer us anything we don't already have. Monad has its own ways of doing things that are different from ours, but the end results are pretty much the same. Python's shell has the whole OO thing going for it anyway, if thats an appealing idea.
If someone clones Monad to linux, then its because they are a very strange person. Since very strange people exist, it'll probably happen, but it'll never catch on with the rest of the linux community, except possibly in some of the crazy windows-a-like-linux distros.
--SD
"Computers will never truly be free until the last windows user is strangled with the entrails of the last mac user."
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.
.NET and msh are providing, is a "common language". I've long hoped for such a thing in Unix (and it's a little discouraging that Microsoft got there first), and have tried to work out some kind of a design for such a thing, but being lazy (and busy) I never got anywhere with it. But look at what a "common language" for shell-level data representation can do. How do you find a value? How do you store it? How do you display it? In a shell like bash, and reading text files, you have to parse the file to find your data, filter the results somehow (either using an intermediate syntax, which must be parsed again from textual form to perform the filtering, or else by using an outside tool like Perl or Python to store the data in intermediate forms and perform filtering) - then to store it, in Bash you could write it out as text again or store it in a (textual) environment variable - either way requiring the data to be written out as text and then parsed in again, later.
I disagree. Stashing stuff in plaintext files is a cheap design decision, grossly inefficient. The only reason why plaintext is easy to work with is because it formats nicely on a text display. Anything else (including the primary users of the data - the programs) has to parse and re-serialize it. And then because the datatype of the file is not rigorously defined, most often no two programs in Unix will have the same syntax in their text config files.
Pulling data out of a delimited text file starts out easy, but to get it complete and to get it right gets complicated. What about escape characters? What about when you start supporting line splits?
What I believe is needed in the solution, and what it seems
If the entire environment were one big playground for, say, Python, it'd be a whole different ballgame. When you get a data value from a program, object, or file attribute, it's in a form the shell can really understand. If you ask for a file size, you get a big int, which can be added to, divided, etc. If you ask for a list of filenames from a tool like "find", you get an array of some sort - not a delimited list which must be interpreted and chopped according to whitespace, null characters, etc., but a data value which itself describes the boundary between one value and the next. And as for storing values, serialization would be as simple as treating a filename as a bindable value. You want to store that 2000x2000 matrix of double-precision floating point numbers that you got from a circuit simulator to a file in your home directory? In such an environment it's something you could simply do. Obviously this is for a "generic form" of serialization, rather than for something "optimal" - but for a shell that actually supports some set of datatypes and a generic method for serializing them, it's still much more efficient than going to text.
Making the shell into a complete, dynamic, modern programming language has other benefits, as the article shows. A shell like that could work well for GUI scripting - it has the same strengths for GUI-wrangling as languages like Python have - though it doesn't look like they've set up for that yet.
That's much like what msh is, from the sound of it. The shell supports datatypes beyond "string". There are callable objects that operate using these datatypes. And there's probably enough OS-level support to tie right into every new feature in Windows.
I am jealous. I am sick with anger that I didn't try my hardest to get there first. And I regret that I must grudgingly embrace msh as the best general-purpose CLI I've yet seen.
---GEC
I'm but the humble pupil, seeking to snatch the scratchbuilt pebble from the master's fully articulated hand
I can only imagine what this will be like for the script kiddie bastards out there.. i mean, think of the shitty little programs that run in your current CMD.EXE that start cheesy little batch files and duplicate viruses x10000 all around your computer.. now, we have an extremely vunerable and exploitable operating system, with a command prompt that has endless scripting abilities.. this is going to be WONDERFUL for all of us tech guys out there that are just trying to help out their neighbors with spyware and virus problems..
*plays the Apogee theme song music*
That communicate with the user via a GUI. Yeah, some programs have command line arguments that you can use to automate things, but not having a significant number of programs that operate on stdin and print to stdout is a severe limitation.
t:> cd "c:\work" c:\work> Ahhh... bliss...
What about when people start burying crap in undocumented keys that nobody else can ever find? Most config files have a man page. I can't ever remember a Win app giving me, the user, a list of all the registry keys that it planned on adding or modifying.
Just like the registry was going to be a common access point for everything on the system.
And look how many people are going to jump to rewrite their software to support it. At least in BASH we already have a common language: it's called unformatted text. Oh, and look, we have the tools readily available to manipulate that text in any way we want.
Yeah... because foo=`grep | cut` is so hard. God I hope someone writes an object oriented library to help me with that because this functional programming is just too much for my brain to handle.
Choose the best tool for the task. If they're working with a 2000x2000 matrix of floats from a circuit simulator the best tool is NOT a shell environment. Hopefully the circuit simulator has the capability to save the data to a file. If it doesn't then it's the wrong circuit simulator to be using. Every molecular modeling program that I've ever used, for example, has the ability to output the data file to disk... most even have several formats to choose from. What sort of contrived situation are you trying to invent to justify an object oriented shell?
The article demonstrates some obscure examples of academic manipulations. Anyone who actually needs to do a complex task will probably turn back to one of the aforementioned modern programming languages to get it done. Aside from that, BASH already is fully functional. It's not as elegant and effective as C and BASH programming relies on a few other binaries being available. Sed, grep, and textutils aren't really too much to ask.
You're pretty good at marketing but we've heard all of this stuff before. It's always the newer better way to do things, much better than the old way, and it always breaks down within 3 months of implementation. $20 says it flops unless MS begins tying critical system capability to it.
What's a common Windows admin task that you can honestly see yourself using MSH for? Windows has made it ten years without a competent shell. I find it hard to believe that adding MSH is anything more than keeping up: Not because it's needed but because the competition has it. Yes. One of the reasons I left Windows is because it didn't have a competent shell. Even if it did have a competent shell, though, it still wouldn't have allowed me to do the things which I wanted to do--take control of my system. In that respect Windows was then and will always be like the initial MacOSs. If they don't put it in a control panel its because they don't want you to see it.
fast as fast can be. you'll never catch me.
IPython is a free software project (released under the BSD license) which tries to:
Too late for what? What exactly is Microsoft too late for? And if you're going to say OSS, then you all are implying that Microsoft coming out with a good shell at an appropriete time would have made a difference. That doesn't jib with all the rhetoric the OSS side has been putting out. Oh right, other OS's have had a good shell. So tell us what those good shells have done for the proprietary OS's they've been found on? Hmmm...looks like a good and timely shell isn't everything it's cracked up to be, if OSS is going to win in the end.
RMS has announced the Gnu counterpart project: Gonad.
(its cheap I know, so punish me)
I think you underestimate just how much I just dont care.
XML piping and simple DOM access to that pipe are very nice. I'm not a Python programmer, so perhaps I'm missing an obvious precedent here, but it's certainly new to me for a command-line mode.
Providers are a nice concept, and I can see these being expanded into slick debuggers: Access a provider of an active IE window and traverse the DOM to figure out just why that AJAX code won't run? Sure, it could happen.
Another nice provider for me would be for MS Word -- batch modification of Word files would be slick, and I could use it today.
Not providing a full provider for WMI is an obvious shortcoming. Providers for the registry are indeed nice, seeing as so much control is based there, versus old DOS environment variables.
Not permitting double-click of MSH files seems silly -- I need to occasionally ship a utility to fix a batch of things out to a coworker, and having to tell them to open a shell is just going to confuse them. The idea of embedding it into a BAT file just gives me shivers.
Design for Use, not Construction!
Get more info about the ArsTechnica - Single Page View userscript.
When you load the first page of an article, you can start reading it while the other pages are loaded in the background and appended to the first page's content.
From now on, those clueless human resources people will begin looking for 5 years of MSH experience...
It is nice to see that Microsoft is not trying to create anything new, they are now just going to copy everything that Linux has to offer, in order to try and survive. I like how MSH is not confusing with the mixture of bash like, perl like and special magical windows like syntax. Michael
Linux: For those able to think out side of a window
Reading through the Ars article, I see that the shell is extremely powerful, but most of the functionality is wrapped up as methods for objects. This allows for a lot of flexibility, but it will be difficult to program in unless the documentation is well laid out and easily accessable.
If you're cracking a 500 page book every time you want to split lines or run a regular expression, this will never take off. If there is a good fast (Ars had something that looked fast, but if there is no expanded help on a command beyond "returns int32", it's somewhat useless) documentation system it could be the wave of the future. Here's to hoping.
Even if nobody uses it, it's still better than command.com.
I read the internet for the articles.
I think Microsoft has succeeded well in their attempt to provide this shell. I found these comparisons interesting:
In monad:
msh> get-childitem | sort-object extension | select extension | where { $_.extension.length -eq 4 }
In ruby:
Dir["*"].map {|x| File.extname(x) }.sort.find_all {|x| x.length == 4 }
At least for me the former is easier to understand.
I've been wondering about the possibility of something like this for some time. While I'm sure it has its fair share of downsides, it looks pretty darn good right now.
;-) .
The *nix shell is wonderfully powerful, but can be highly inconsistent, is badly integrated ( sed, sh, awk, various network query tools, etc ), and falls down when manipulating more complex data. "scripting languages" are often clumsy at "shell" jobs, by contrast, and combining the two is often not very fun. I'd go insane without bash and Python, but I'm very near to going insane *with* bash as well
It's ten times worse on win32, where all the win32 admin automation options are crapware (cmd.exe), overly complex and clunky (WSH, VBScript), or difficult to integrate well into the OS (Python + pywin32, cygwin). IronPython looked really promising, and this looks more so, though I couldn't agree more with the criticisms leveled by the article author in the closing comments.
Seeing something like this that addresses those issues looks really exciting. The extended VFS namespace in the shell is particularly striking, especially when combined with one of MS's real strengths - network integration and AD. Too bad it'll be win32 only, because it looks like MS have finally "got it". They've gone for "everything is an object" not "everything is a file," (and similarly for object-streams not text-streams) but that's more appropriate for modern systems IMO.
Personally, I suspect that if this works out it'll massively increase the viability of win32 servers, and should really help bring down their admin time requirements. If MS are smart enough to ship a well integrated ssh daemon in the OS with msh hooked up to it, if they let you hook msh to a serial console, and if they let you boot into single-user msh-only mode, I might be seriously tempted by a win32 server for a few of our applications. The extent to which the miserable state of admin automation on win32 has kept me away from the platform is remarkable.
Good on MS.
Being that the place I work for is an all MS shop, I am looking forward to this new shell. We do our work via cmdline...most of us learned our first computers using cmdlines, and we stick to them today - it's quicker and easier than using a GUI. The way that MS integrated this new command line into every facet of the OS is very interesting and very, very powerful. It will definitely open up a lot of interesting possibilities.
Trust, once misspent, is hard to regain.
Modded overrated? Someone must really hate Haskell.
I installed and the beta and tried it. First thing i tried to do was "dir", which showed me just a few of the files in the current directory, one per line. OK, i thought, that's a poor choice of default behavior, but surely there are command-line arguments to show hidden files and display more than one item per line, like "dir /w" or "ls -a".
So, i typed "help dir". Nothing in the help implied either option exists for MSH's "get-childitem" command!
It appears that MSH has taken a big step toward making every command general-purpose, but in doing so, they've made it really painful or non-obvious to do common things. Do i really have to write my own batch script to get the equivalent of "ls" default behavior?!
Instead of incompatible field/record separators and order, and the text processing needed to adjust them, you end up with incompatible field names and structure, and the regexp/globbing/renesting needed to adjust them.
Been that way with every attempt to throw objects at the interworking problem to date. I don't expect msh/.net to be any different.
Someone had to do it.
Does it run Linux?
The question I still haven't found the answer to, is; Can irssi now be ported to winloss, and function with the msh shell?
And here I thought I was all alone, a single voice crying out "beware!" to millions of deaf ears...
Seriously, this is one of Microsoft's big targets at the moment - to be the man in the middle. The goal of Microsoft is not dominance by monopoly; rather, it's one of many stops on the way to being the middle-man for everyone; dominance by ubiquity. They want to be at the center of it all; the monopoly is just a means to an end for them. I've often wondered how much longer it would be before Microsoft started to push "their" ads and sites (which in turn generate side revenue) but then I realized that crap like MSN already does this. Slate is MSN with a premium attached; kinda like subscribing to cable TV so that you can get local channels that you could have gotten for low-cost or no-cost. Hasn't anyone noticed that Windows XP calls Internet Explorer "The Internet", instead of what it really is (and yes, I think it should be renamed "Large Steaming Pile of Dog Crap")? Again, we see MS trying to assert themselves "in the middle". Programming for Windows means "being in the middle" and "making decisions for everyone else". More of the same thinking.
>> Registry + ActiveX + functional shell (finally) + .NET = cataclysmic user-base catastrophe waiting to happen
>> Windows admins are screwed. Get out of IT now if you're still sane, get out even if you're long past sane. Life will become hell very soon.
As if it already isn't?
As if we don't already have daily fights for security against legions of web-browsing idiot users who think "The Internet" is the same as the Big E on their screen? As if the constant onslaught of "critical" patches weren't enough? Don't we 'Windows Admins' just love the ever-mutating strains of Virii that keep coming through?
Programmers don't have it too well either. What about the constantly changing API - the moving target that's known as Win32? It's great you just finished your in-house program this week to use technology "Y", but with new Microsoft "Z" tech, your program is almost obsolete overnight, and shortly thereafter, APIs for "Y" will be "legacy" status and abandoned. That means a rewrite for "Z"; and when you finish "Z", MS will point out how it doesn't work well either, so they come up with "A" and the whole fucking process starts over again.
I can see where Monad would address the issues that WinNT has had all along (i.e. how do I import 1,000 users from a text file and turn them into user accounts) but I can also see where it is just another vector for abuse. Monad continues to embody the same "we must be in the middle" thinking that Microsoft has had for a long, long time. The problem is that security is so poor that attacks are going for where Microsoft wants to be - in the middle, where you can control everything. Until there is a fundimental change in the group-think on the Redmond campus, and Microsoft as a corporation starts to really care about their customers, we will continue to have steaming loads of crap foisted upon unsuspecting IT staffers everywhere.
I had visions of Cheyenne Mountain AFS for a second. Doubtless MS is in there *somewhere* but I'd rather not think about it...
Patriotism is a virtue of the vicious
there is no way to define new classes
Isn't that just writing your own .NET class and importing the DLL, as he discussed with Windows Forms on page 6? Am I missing something?
This is definitely not a shell - it's Yet Another Scripting Language, maybe tied more tightly to .NET than most, but not a reasonable replacement for bash or even Command Prompt ...
maybe I'm missing something... but what's the _one_ thing that you never use in windows.... the CLI. maybe there's some deeper implication here... but I just can't get excited over something that nobody's ever going to use M$ CRAP
ignorance will killus all --eric
msh> [int]"5" + 5
.NET framework is being expanded. But whoe knows what languages they will pusg on top of it...
That says nothing of weither nor not C# the language is dying - since it is not C# syntax.
It deos say the
To me the relationship from MSH to C# looks a little like the relationship of Groovy to Java.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Interesting, what kind of chaos could you cause in such a system by introducing a command line program into the path called "Processing, please wait...".
It seems like if something is to be printed once you need a way to gaurantee it will be displayed forever, not executing something arbitrary.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Isn't this part of the blurb for Vista right now?
No. There has not been any indication that Vista will be sold in a "modular" fashion and allow the OS to run without a GUI (except in a limited way as is done presently with the Recovery Console). However, the next major release of Windows Server (based on the same Longhorn branch of code as Vista but planned for release quite some time after Vista is to debut) could be that modular MS operating system. Given that Vista is to be released in so many variants it has probably been modularised quite a bit already, so perhaps such a feat as GUI-less Vista could be achieved by hackers. Don't count on support or documentation from Microsoft.
I haven't read the newest documentation, so I could be wrong
Since I am not a Microsoft employee and I assume that is the case for you as well, we are both in the same boat until Vista is actualy shipping. Although the feature list of Vista is more established and it is well into Beta, anything could change right up until the hour it is released to manufacturing. And given Monad is in truth even further out, its capabilities are even more in flux.
a monat is 30 or 31 days, once in a year only 28 or (almost every 4 years) 29 days.
From TFA (pg11):
msh> remove-item *[1-3] -confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\segphault\Desktop\testdir\file1".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):
Man. This IS the best thing since sliced bread (on Windows). In contrast: Explorer has a more binary behaviour. Do it... or not.
Meme of the day: I browse "Disable Sigs: Checked". So should you.
/bin/bsh is the bourne shell on many systems
gsh is the genome shell and a command line environment for genome analysis.
There is also a terminal emulator called gsh (stands for "graphical shell")
So too bad.
They are stuck with msh
Even mash is taken....
LedgerSMB: Open source Accounting/ERP
I disagree on this. I like bash as a shell, but for scripting it has some of the most obtuse, verbose syntax I've seen. You're better off with Perl or Tcl if you want something simple and lightweight.
LOAD "SIG",8,1
A familiarity with BASIC or PASCAL lends itself quite well to BASH. You can look up the Advanced Bash Scripting guide on tldp.org, or you can check out my own Linux installer written in 15k of BASH shellcode.
fast as fast can be. you'll never catch me.
Now I understand you don't trust them, but how will you respond if you can't say their product sucks?
That sort of situation isn't new: there have been plenty of companies that have come out with good technology that was proprietary and unavailable in open source form or from other vendors. How do people deal with it? By making cost/benefit/risk analyses. Is the licensing cost worth it? Is the risk of being tied to a single vendor worth it? Frequently, the technologically best solution isn't the best solution from a business point of view.
Let's say it's the Longhorn Server, WinFS, Monad, and everything MS has been touting works.
Keep in mind that every major technology Microsoft is planning for Longhorn (WinFS, Avalon, Monad, etc.) is already available on Linux, often in multiple implementations, so even if Longhorn was released tomorrow, Microsoft would still be years behind.
Meanwhile, how's the Linux desktop coming on?
I'm a software visionary. I don't code.
If there is anything notable about this it's classic MS methodology of product creation.
Take what others have done, change some thing just enough to market speak "it's new and aren't we innovative" and then sell it to....
those who don't know better..... which seems to be in endless supply...
Let's face it, if there is anything that says Linux and the likes are becomming a serious competitor to MS, its what extream changes MS seems to be making so to parrallel Open Source Software.
Apparently even they see the direction of the market and they certainly want to detour it towards them.
We all know what deceptive tactics MS applies.
See FOSS really is good for the market.... Real competition works.
And its ony real because MS couldn't find dishonest tactics to work against FOSS. And they Did try, and Try and Try...
But it doesn't mean they won't stop trying to apply dishonest tactics.
The Common Language Infrastructure (CLI) is nothing more than the collecting up what others have done in the way of programming concepts and datatypes and presenting it in a single package in a non conflicting manner. The CIL (Common intermediate Language) is only translating these higher level abstraction into a lower common denominator which is then runs on an engine.
Even the concepts of these different levels/layers is of the works of others.
Its like taking advanced math and translating it down to processes of addition before doing the calculation.
eventually all programs get translated down to binary.... machine language, the machines language..... its all nothing but translation.
How many ways can you translate something?
That's not what matters here. What matters here is how well what ever way you come up with or decide upon, how you market it.
MS is a Marketing Software Company first and formost, followed by its legal staff to insure where ever it breaks the law it will have gained more then any judgement against them. And third place still is NOT its department of innovation but its department of buying out, shutting out and otherwise reinventing what others have done and claiming its their mastery of innovation, in their marketing spill.
This is not Bashing MS.... Its verified fact.
Support Criminals, buy MS....
I've read the article and many of the comments here both in support of and against this shell.
The stupid part about it all is that it really just comes down to being another langauge. As such many of the arguement against are obviously biased towards their individual mindset of what they are use to. And those in support are typically not so set in their ways regarding scripting.
But the world is not going to stop all the other languages they speak and start suddenly using MS speak.
Ultimately programming languages are just higher level abstractions that get translated down to flipping binary bits.
Translation that can be done in many different ways.
MS has long promoted user stupidity in regards to the shell.... That alone will retard acceptance and use of this.
And the competition of FOSS will keep on keeping on. Without competition or developers outside of MS, MS would have neither the motive nor source of ideas... to advance at all.
We do the monster MASH!
It's a graveyard smash...
we do the MASH!"
Personally, I'm waiting for someone to strings it and discocver that it's really BASH.NET
Got time? Spend some of it coding or testing
i don't believe this shell will pull unix admins over the line and want them to use windows. it will be a great addition for NT admins, at least for the ones that are in need for one (as most nt admins i know don't know how to script their way out of a one-way-street). for us, old unix chaps, this MSH is nothing but a shell to windows which add nothing to our interest. i mean, it is still completely different from anything unix, and it will never be like it.
it's not because they slam some shell onto windows unix admins will suddenly like this complete mess known as windows.
On a long enough timeline, the survival rate for everyone drops to zero.
Just in futzing with it for a bit I have some major beefs here. Yeah I know its just beta and that some if not all of this stuff is in flux but this is what I noticed.
.NET IDE... why not adapt that for a cmd line interface ? ie pull down lists of functions with a properties windows and the ability to explore the help information and view examples ? All in a tabbed interface. Sweetness.
1) They still have the problem of cuting and pasting GUI environment info to the cmd shell window.
2) They are still limited to crappy display levels for the cmd shell window
3) If your building a verbose object oriented language you need a better refferencing system. Insane long wordy names are in theroy good and makes learning easier. But for repetative stuff it gets old typing them. Sure you can denote aliases... but why not always denote one by default? Just establish a best practices for creating a unique shorthand of the longer name.... and build it into the script to check with help to make sure its not walking on anything else. I garountee anyone that uses this thing for any length of time is going to create a shorthand for it... if there is one by default it will make it easier for people to talk it without first establishing what they all call their aliases for which function.
4) More works but is not listed under help. It has a flaw in that when you advance a single line it continually types the instructions just under the new line without deleting the old line... ie if you advance by line you then have alternating document info and instruction lines rather than the document txt incremeting above the instruction line ie...
(q)for quite (cr) for next line (space) for next page
Line of text from the file
(q)for quite (cr) for next line (space) for next page
Line of text from the file
(q)for quite (cr) for next line (space) for next page
Line of text from the file
Extremely annoying.
Some other thoughts.
Why are they trying to limit themselves to creaky old txt displaying methodologies ? Yes a command line consists of text information primarily but the reason it evolved in such a constricted interface was that there was no other option at first. Just because it is a command line does not mean it could not also be a gui. Give it the power of both. For instance lets say I open my computer. I get the standard drive icons etc and at the bottom I get a prompt. If I double click C or type cd c:\ at the prompt the same results happen on screen. Lets say I drag a file down to the command line.. now a token appears there for dealing with that file. I have a graphical rpresentation as well as text information and I can interact both with a mouse and with cmd line input.
Additionally they spent a crap load of time developing a pretty slick interface in the Studio
The marriage of the command line and the GUI is the next generation. It does not have to be EITHER OR. Both have strengths and both have weaknesses. Instead of being stuck with one or the other create a system that allows you freedom to use both sets of strengths to offset the others weaknesses.
I don't ask you to be me. I only ask you not expect me to be you.
I think that might be why I find it so easy to work with shell scripts. I'm not a programmer. Some day I'd love to write C or something, but I'm a sys admin and I enjoy it. Bash scripts have always been easy to follow, easy to change and create, and perhaps the verbose nature of it makes it so. I also like the fact that you don't need to learn a whole language just to use it to navigate and manage your file system.
I think many programmers lose sight of these things when they've advanced to more complex systems. "Yo, you should be using Perl for everything. It's better. I wrote a one line perl script that can dry clean my underwear. It rules." Sometimes I just want to copy a file without regular expressions =)
- It's not the Macs I hate. It's Digg users. -
I'm very surprised with how well MSH actually is. The amount of neat things you can do with it is very neat :). a good video to see some of this in action can be found here:
http://download.microsoft.com/download/e/8/2/e82a4 a8d-b2a0-4ae9-9160-a8e285d1b395/jeffrey_snover_200 4_demonstration_of_monad.wmv
just need to get it to work in rxvt now...