Next-gen Windows Command Line Shell Now in Beta
Suddenly_Dead writes "Microsoft's new command line shell, MSH or Monad, has entered the beta phase. Channel9 Wiki has information on how to download this (complete with Guest ID), and other related info."
I'll stick with bash or ksh, thanks very much. But thanks for trying.
Well, Windows network admins? Say what you will about Windows, most of it's true. But lot's of serious companies use it, and some of them even hire smart people to admin their systems. Could be usful for something like that, maybe.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I've had it since yesterday.
My first impression - well, it will be fine for scripting, but as it stands it's appaling as an interactive shell - possibly slightly worse than cmd.exe as an interactive shell, and falling far short of bash/tcsh et al. The defaults for the commands seem way too verbose. If you're just passing objects around in a script that's fine - but for interactive use, it's just awful.
Oolite: Elite-like game. For Mac, Linux and Windows
That was the sound of the point, flying past Microsoft's Collective brain.
The Unix shell is the implementation of the Unix philosophy of small parts working together. It's the antithsesis of Windows' philosophy of providing everything possible through DLLs distributed with the OS.
For a shell to be useful, you need lots of little tools. Otherwise you're just trying to provide an isomorphism to the GUI, with command line switches and arguments taking the place of check boxes.
On the other hand, I suppose it's better than nothing.
Raise your children as if you were teaching them to raise your grandchildren, because you are.
And all it took was a simple search to come up with the answer.
One shell to rule them all...
What do you know I wrote a novel
Trying to script using cmd, vbscript, wsh, wmi, adsi technologies compared to the userland in Unix systems for core system administration is a complete hassle. I have ended using Perl w/ Win32::* extensions and a lot of backticking and substitutions to get the job done. I will be looking forward to any improvements that Monad provides. I really hope that Microsoft looks toward BSD (Mac OS X) and Linux systems and takes to heart the ease that shell scripting in these systems provides. And for God's sake, make it easier to determine the IP address associated to a printer in a clustered virtual print queue! (Hint: you have to use an undocumented DLL that can only be found in a locked filing cabinet stuck in a disused lavatory in an unlit cellar with a sign on the door saying 'beware of the leopard' section of the Resource Kit).
Strange women lying in ponds distributing swords is no basis for a system of government.
People who uses windows, obviously. Most of Microsoft users do not analize what they use - they just use it, and they've though that buttons are better than scripting just because Microsoft has been telling them that for years. Now that microsoft says scripting is useful, they'll think it's useful. They don't know if scripting is "good" or "bad", they're not CS people (and even if they are they may be clueless) so they think whatever they're told to think
A windows shell, without the various limitations of the DOS shell, would be very useful in more ways than I can count. For example, DOS .bat files are still used a lot, especially in cases where you want to run an application, like a Java based program, with it's own system environment setup.
Lots of people are "bashing" this up agianst various Unix shells, but what does it matter? Windows needs something like this, period.
Why do the majority of 'out of the box' unix scripts run in plain sh?
Because in single user mode, or on a minimal install, that's all that guaranteed to be there.
While they are on their way to being more Unix-like how about fixes their broken backslashes. It would be nice to be able to do:
cd '/Program Files/Mozilla Firefox'
fellows, does it really matter? i hear Monad is quite good. but then so is bash. so is emacs shell. or perl/python/lisp interpreter of the day...
honestly, the shell is just another language, the utility and efficiency of which depends on the environment, the use, the user, and a million other things.
so stop bashing Monad as a unix wannabe. unix didn't invent the commandline anyway. this is like a blind man making fun of a deaf man.
When I first read this, I too thought MS was just retooling some form of CMD to compete with the new-found craze in command lines. But then I read about it on Wikipedia.org. It's considerably more than most of you are thinking. I'm not going to point out what it does here, go read about it(if you don't know what it is.). But how much of this is Microsoft bashing and how much of this is a legitimate analysis of the quality of computer user tools? I think we're seeing a world where things are starting to settle in to what they should be. Windows are going to be desktop machines, *nix are going to run servers(not IIS) and Macs will continue to win the hearts and minds of artists, universities and affluent kids. MS is not reinventing UNIX. They're simply providing *NIX-like tool for "Windows" developers'. It's called competition and it's good for us. It gives me yet another option to choose from. Welcome it! you don't have to use it if you don't like it.
- nightcrawler "Reality is an illusion, albeit a ver persistent one..." -A.Einstein
(warning, broken english ahead)
Personally, I'm glad to see this.
I don't undersand the critics, it seems a nice and useful and expressive tool for "power users" (yes, I presently run cygwin on every win-pc i have access to...), with the chance of being pretty elegant, too.
shame on us "advanced" linux/unix users, the object-scripting tecnology is available now in several incarnations (my preference goes to Ruby) but we refuse to introduce new standards, we rely costantly on what has been decided at least a decade ago. we joke about the so called "microsoft boldness", but i think we don't have a much better attitude if we prefer to act a bit too much as if we were a bunch of uncoordinated people lacking trust on ourselves....
it's obvious that this way our "environment of choice" can't be appealing to most of the new developers, both at individual level and company level...
and for what concern a cross-language vm, parrot isn't finished yet.
better wake up NOW, or our preferred environment is going to die quite quickly.
as for microsoft latest advances, i praise them, as i would do if the company name was different. it's nice to see that some company is still making investments in the server and desktop market.
I don't think many of us care that the command names are a little hard to remember. I have just as much trouble remembering stuff from APIs with nice names like Java.
No, this highlights a weakness in UNIX shells: we have to parse things. It's slow and it's a huge pain. It seriously limits what we can do. grep, sed etc can be used to manipulate streams but nobody ever implements the complete grammar of the input they can get. They implement some subset that's good enough for the job at hand and tweak it when it screws up. It's worked well for decades, but that doesn't mean we can't do better.
Having a data structure passed along a pipe like MSH does is a huge advantage and very efficient, but I think most UNIX people can agree that it's not worth it to bring everything into the same process. What's an alternative? Serialize the data structure (in some human readable form to stay true to UNIX tradition) and pass that down the pipe, from one process to another. That would work with the pipes we have now and the shells we have now, we just need new tools and a serialization protocol.
I rarely criticize things I don't care about.
Firstly, you're name speaks volumes about old FUD. Secondly, although Unix might be getting steamrolled, Free Software un*x wasn't, isn't, and will never be. Thirdly, I think its a funny story whether you're a fan of unix or not. On topic, it sounds like MS had finally figure out that they have to work harder to undermine the un*x installation base- nothing else
http://en.wikipedia.org/wiki/Signature_bloc
It may be from the way I/O streams are modelled in the functional programming language Haskell, with a bastardised version of "Monads" from category theory. As the major advantage of the command line is composing complex I/O streaming commands, the name may be vaguely relevant.
And in a few years time, when everyone accuses Open Source of just copying microsoft "innovations" in the CLI world, I would like to remind you that XMLTerm has been around for ages now, so not only has the open source world delivered quality conventional CLIs, it has delivered next-generation integrated CLI+GUI. (and though in its turn, XMLTerm has striking similarities to a Common Lisp CLIM Listener from decades ago...).
Microsoft are the ones playing catch-up here: but that doesn't mean one should rest on one's laurels. While MS might no longer attract the best brains in the industry (did it ever?), they can keep throwing their stock-scam money at a problem for a very long time.
I wanted to expand on your comment about how MSH could prove to be fairly useless because there's going to be no standard userland tools to go with it.
.conf files and a standard system image, you've got your system back and running in minutes. This is just an example of how powerful the CLI is - and you don't have to be a career programmer to make extremely useful and powerful scripts.
It's not just the normal userland tools that will be a setback. It's everything else, too.
In a Unix-style system, almost everything is ASCII text based. While there's GUI interfaces for a lot of stuff now a days, most configuration, logging, etc are done with text. This makes a powerful shell the perfect companion to those applications - you can process the text and do whatever you want with things so incredibly easy.
You can practically backup the entire configuration of a system to a floppy disk. A few
So, without the same methodology as a Unix system, a powerful CLI on windows will probably have minimal impact to the system at large. Hey, I'll be glad to have it as a standard feature, but it won't change my life.
- It's not the Macs I hate. It's Digg users. -
Having tried to use the VMS shell once, if Monad is based on VMS, then Monad and Microsoft deserve each other. :)
"Every man is a mob, a chain gang of idiots." - Jonathan Nolan, Memento Mori
Why, exactly? There are plenty of alternatives for scripting - both by Microsoft (WSH) and of course there's also Python, Perl and everything else. And for interactive usage, the existing cmd.exe is sufficient, to me anyway. Once I figured out how to enable auto-complete I didn't really miss anything from the Unix shells. Hm.
Switch back to Slashdot's D1 system.
Whilst the UNIX style unified directory hierarchy is aesthetically pleasing to computer scientists, I've never been convinced that it's really more usable. On Windows, people can learn a few simple letter to concept mappings "A" is the floppy disk, "C" is the stuff inside the Computer, "D" is the cD-rom drive, "E" is their usbEE kEE. Obviously not all systems will be like that, but it's common enough. On UNIX systems the location of floppy disks, installed programs, mounted USB keys and so on tend to move around unpredictably.
Incidentally, talking of legacy concepts, what do you think "mounting" is? It dates from the time when you had to mount tapes onto their reels!
licensing concerns (like XP workstation allowing only one user at a time);
I don't see how this would affect a command shell designed for personal use. I also don't understand how it only allows one user at a time - in the copies of XP I've seen multiple users can log in at once, then you can rapidly switch between them. If you are thinking of X and terminal servers, well, you can have a command line without that. Look at MacOS.
wide-spread security concerns resulting in the feature being turned off by default on most installations;
There's no evidence I can see that suggests this would be off by default. Actually MSH could be a lot more secure than the UNIX shell as it can be fully controlled by .NET Code Access Security, which is more fine grained than traditional UNIX permissions.
wide-spread fears of accidental and intentional incompatability;
By adding a new end-user feature? That never stopped them adding themes, Media Player, MSN Messenger, etc. Compatibility concerns for something totally new are far less serious.
being only available as part of an expensive (and extensive!) upgrade;
In contrast to what? Microsoft backport far more stuff than Linux vendors do, and Apple basically doesn't backport anything at all. That's $120 per upgrade, thanks very much.
Seriously. The guys working on MSH have blogs, I read a few, and they seemed very sharp to me. The MSH API seems quite lightweight and I suspect you'll be able to create new commandlets very easily - far easier than you can create new command line tools on Linux. Some of the examples they showed would require thousands of lines of code to write on Linux once you take into account the build system, the fact that they're usually written in C, the text parsing with extra checks for buffer overflows etc. Yet using the MSH API they fitted onto a single screen of text.
I'm not too worried, I don't use Linux over Windows just because of bash (surprise), I use it because it's Free (and it has some other neat features I like). Actually, most UNIX shells suck ass. Their builtin programming languages are hideously primitive, unintuitive, and are easy to screw up. Getting basic information out of common tools requires a guru-level knowledge of sed, awk and Perl style regular expressions which are themselves primitive, backwards and unintuitive.
You'd have to work pretty hard to produce a command line worse than the UNIX one (and no, cmd.exe does not count as "working hard", I suspect it's had about a weeks worth of work in the last decade).
When you update your installation and suddenly all your scripts break.
Alternatively, when you keep having to add new data on the *end*, instead of next to the columns that it's logically related to.
Breaking Into the Industry - A development log about starting a game studio.