Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Windows Operating Systems Software IT

Next-gen Windows Command Line Shell Now in Beta 668

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."
This discussion has been archived. No new comments can be posted.

Next-gen Windows Command Line Shell Now in Beta

Comments Filter:
  • No Thanks (Score:2, Insightful)

    by md81544 ( 619625 ) *
    Does this remind anyone of the old quote:
    Those who do not understand Unix are condemned to reinvent it, poorly

    I'll stick with bash or ksh, thanks very much. But thanks for trying.
    • Re: No Thanks (Score:3, Insightful)

      I'll stick with bash or ksh, thanks very much. But thanks for trying.

      Ok, but does bash or ksh run on windows? This is for their own OS, not unix.

      So to answer your question... no... it doesn't remind me of that quote, because it has no relevance to it.
      • Re: No Thanks (Score:5, Informative)

        by torpor ( 458 ) <ibisumNO@SPAMgmail.com> on Sunday June 19, 2005 @11:12AM (#12856452) Homepage Journal
        Ok, but does bash or ksh run on windows? This is for their own OS, not unix.


        Of course it does, silly [cygwin.com].
        • Re: No Thanks (Score:2, Insightful)

          by Anonymous Coward
          Yes, cygwin makes common Unix shells available on windows, but it's just a CLI. It doesn't interact with the rest of windows, the registry, other user space apps, etc. It's basically just a way to interact with your file system... Monad is a big step ahead for windows...
          • Re: No Thanks (Score:5, Insightful)

            by grasshoppa ( 657393 ) on Sunday June 19, 2005 @11:20AM (#12856504) Homepage
            Yes, cygwin makes common Unix shells available on windows, but it's just a CLI. It doesn't interact with the rest of windows, the registry, other user space apps, etc. It's basically just a way to interact with your file system... Monad is a big step ahead for windows...

            Talk about proving the quote right.

            That's all bash is. That's all it does in linux too. You use other programs to do the work, bash is simply an interface to the file system. And a damn elegant one at that.
            • Re: No Thanks (Score:3, Insightful)

              by B'Trey ( 111263 )
              Yes, that's how *nix does things. Small, sharp tools. Wonderful paradigm, and if you want to say that it's a better way to do things, well, someone may argue with you about it but I certainly won't. But, for better or worse, it's not how Windows does things. Monad looks to have lots of hooks into the Windows kernel and various low level functions that simply aren't available as an independent utility. It's still early, so it's difficult to say how things are going to turn out, but it seems likely that
              • Re: No Thanks (Score:3, Interesting)

                by X0563511 ( 793323 ) *
                I think this is going to be the next big bug. IE move over.

                Really, it's new territory for them, they have a poor track record, and this has "lots of hooks into the Windows kernel and various low level functions". Sounds dangerous.
            • Re: No Thanks (Score:3, Interesting)

              by julesh ( 229690 )
              It's basically just a way to interact with your file system... Monad is a big step ahead for windows...

              Talk about proving the quote right.

              That's all bash is. That's all it does in linux too


              The problem is, UNIX is built around an "everything's a file" abstraction, so having a file-based CLI works wonderfully for it. Windows doesn't really support that abstraction nearly as well, so for many essential system tasks you need non-file-based interfaces. MS have been starting to provide these with tools like
      • ### Ok, but does bash or ksh run on windows?

        Sure they do, like almost all Unix software, either via the full blown Cygwin or via the more lightweight MSYS.
      • Try Cygwin. And Monad doesn't run on all Windows platforms, unlike Cygwin. It would only work on LH and XP (if they decide to port it back).

        The OP is trying to say that they are reinventing Unix with LH, evidenced by the new virtual folders, file permissions, new scriptable shell and so on.
      • Ok, but does bash or ksh run on windows?
        Yes [cygwin.com]
      • Yes they do actually, ever heard of the cygwin portability library/distribution.

        Because of that I have all manner of unix/linux/bsd utilities that have been recompiled for windows. I can diff, patch, make, ./configure, gcc, vi(m), emacs, bash, ksh, lynx, wget, scp, ssh and even use x.org to my hearts content. It's a good compromise when you have to stay on windows for one reason or another.

      • Ok, but does bash or ksh run on windows?

        As a matter of fact ... [cygwin.com]
      • I guess you've never seen bash [wanadoo.nl] or ksh [att.com] for Windows then.
      • by SourKAT ( 589785 )
        With the number of replies you got, don't you feel just a little bit stooooopid? You do know that Life's like a box of Chocolates, don'tcha?
      • Re: No Thanks (Score:4, Interesting)

        by Nimrangul ( 599578 ) on Sunday June 19, 2005 @11:24AM (#12856531) Journal
        Why is everyone immediately saying cygwin? Windows Services for Unix is the official release of ksh for Windows.
        • Re: No Thanks (Score:3, Informative)

          by julesh ( 229690 )
          Why is everyone immediately saying cygwin? Windows Services for Unix is the official release of ksh for Windows.

          'cause 95% of us think that ksh is a horrible, horrible shell, and that bash "rulez".
        • Re: No Thanks (Score:3, Informative)

          by ucblockhead ( 63650 )
          Probably because cygwin takes ten minutes to install and is a snap to use while SFU is a royal pain in the ass to install and maintain.
      • Yes; to add to what others have said, Microsoft even distribute (pd)ksh as part of Services for Unix [microsoft.com]; see "Robust Scripting Environment" on this page [microsoft.com].
    • Re: No Thanks (Score:5, Insightful)

      by lazy_arabica ( 750133 ) on Sunday June 19, 2005 @11:17AM (#12856489) Homepage
      Why do the unix zealots always dismiss ANY attempt to make the user experience more high-level / semantic-oriented (especially if it comes from Microsoft) ? I am a Unix-user, but I'm also very interested in MSH, some of its features sound really innovative and powerful. I'll probably stick with bash too though, until Unix becomes deprecated (because I don't think it will ever evolve, since so many people, like you, think the perfection has been invented 30 years ago.)
      • I don't think perfection will ever exist; I'm simply quoting from my experience. I'm a programmer who uses both UNIX (AIX/Solaris AND Linux) as well as Windows. And the only way to write decent scripts on Windows is via Cygwin (see many responders to my original post).

        I'd welcome something brilliant in MSH but somehow (given their lack of creativity) I'm not holding my breath. Love and Peace and all that - I'm not interested in flame wars.
      • Re: No Thanks (Score:3, Insightful)

        by bersl2 ( 689221 )
        He's not talking about Unix per se when he says "Unix"; you should instead read it as "the Unix Way," which will not likely end up deprecated for a long time.
      • by Curtman ( 556920 ) on Sunday June 19, 2005 @12:05PM (#12856742)
        Why do the unix zealots always dismiss...

        Because we're Unix zealots dumb ass. Get with the program.
      • by Moderation abuser ( 184013 ) on Sunday June 19, 2005 @12:50PM (#12856944)
        The fact that the Unix command line has stood the test of time when virtually everything else has been redesigned and redesigned and redesigned is an amazing testament to the thinking which went into it.

        They basically got it right.

        They must have, otherwise it *would* have been redesigned or have fallen by the wayside decades ago. Decades, in IT. *Decades*. Think about it.

        Sure, something may well come along which is "a better way" but I doubt it'll be MS who come up with it, they don't have a philosophy so I don't see how they could.

      • Re: No Thanks (Score:5, Insightful)

        by NickFortune ( 613926 ) on Sunday June 19, 2005 @01:08PM (#12857029) Homepage Journal
        Well, it might have something to do with the Windows zealots have sneered at all things *nix for years on end. That does tend to bring about a certain amount of crowing when Redmond, years after trumphantly declaring a technology obsolete, copies it amidst much fanfare and proclaims it to be the Way Forward.

        Yep, that'd do it for me :)

    • Um...parent should be modded troll, not insightful. What, Microsoft isn't allowed to develop their own shell based on what those who will use it (mostly /. types) think a shell should be?
    • by Ingolfke ( 515826 ) on Sunday June 19, 2005 @12:38PM (#12856892) Journal
      Those who do not understand Unix are condemned to reinvent it, poorly

      Actually, in this case it should read...

      Those who do not understadn VMS are condemned to reinvent it, poorly

      Monad is heavily influenced by VMS, not the UNIX shell.

      From an interview [microsoft.com] w/ the Monad developers.

      MSFT Jeffrey Snover (Expert):
      Q: I've heard Monad has VMS roots... will we have a utility or functionality similar to VERB to create our own verb commands and parameters?
      A: We are very influenced by the VMS (and AS400) environments. That said, we don't have the same set of utilities. Do define you own command, you write a .NET class derived from our base class and tag it with a NOUN and VERB. The properties of that class become PARAMETERS.
  • by blackmonday ( 607916 ) on Sunday June 19, 2005 @11:06AM (#12856426) Homepage
    Here's a Screenshot:

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\>


  • by Anonymous Coward on Sunday June 19, 2005 @11:07AM (#12856431)
    A command line. How innovative!
    • I just finished reading "In the Beginning... was the Command Line" by Neal Stephenson. If you haven't read it, it is worth the read. After reading it, it made me want to throw away my windows box, and stick with my linux box, heh.

      Here's a quote that I thought fit this article. "The cosmic operating system uses a command line interface."
  • by Anonymous Coward on Sunday June 19, 2005 @11:09AM (#12856434)
    Windows gets more and more like Linix every day. At this rate, I soon won't be able to cut-n-paste between applications! Bring it on. Have they ported xcdplayer yet?
  • Monad? (Score:5, Funny)

    by Deal-a-Neil ( 166508 ) on Sunday June 19, 2005 @11:09AM (#12856437) Homepage Journal
    What kind of name is that? Sounds like a command shell that had one testicle removed.
    • Re:Monad? (Score:3, Insightful)

      by jockm ( 233372 )
      And all it took was a simple search to come up with the answer [wikipedia.org].

      One shell to rule them all...
    • I'm not sure where they got that name from, the beta site has displayed "Microsoft Command Shell" since it was put up a long time ago. Anyone know where the name Monad comes from?

      As a side note, MSH rocks! The idea that everything is an object that can be piped elsewhere is simple yet adds a world of power.
    • Yeah, that name sucks. May as well call it Eunuchs. Oh, wait... ;>

      Most names people make up for products are stupid. This one might not even make it into release.
    • Re:Monad? (Score:3, Funny)

      by dubdays ( 410710 )

      Sounds like a command shell that had one testicle removed.

      No, it's plural. You know, like:

      "Yo, you ain't no playa. I got mo nad than you, yo."

  • monad (Score:5, Interesting)

    by yakumo.unr ( 833476 ) on Sunday June 19, 2005 @11:10AM (#12856439) Homepage
    It is , I beleive, the fist object oriented shell.

    All the others use strings for piping.

    Most *nix users i've seen writing online that tried it for a good while to really get used to it thoguht it was really good.
  • by SourKAT ( 589785 ) on Sunday June 19, 2005 @11:12AM (#12856455)

    ... doesn't have a web interface...

    Visitors We are sorry but this site is experiencing difficulties at this time. Please return shortly! Thank you for your patience. Webmaster - please contact support as soon as possible.
  • First impressions (Score:5, Insightful)

    by Alioth ( 221270 ) <no@spam> on Sunday June 19, 2005 @11:14AM (#12856469) Journal
    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.
    • There autocompletetion as well as an abreviation usage system. If you still don't like the verbose names, alias them.

      It's that simple.

      Short, cryptic names hinder usablity by greatly increasing the learning curve. "get-process" is far more intuitive than "ps", as "where" or "filter" is far more intuitive than "grep". If you find yourself typing "get-process" a million times, learn to type faster or alias it to something shorter.
      • by Des Herriott ( 6508 ) on Sunday June 19, 2005 @12:28PM (#12856854)
        "get-process" is far more intuitive than "ps"

        No, it is not. Neither is intuitive - a complete newcomer would have no chance of guessing either command. Both must be learned. Given that, I'll take the 2-character command over the 11-character command any day.
        • by Ingolfke ( 515826 ) on Sunday June 19, 2005 @12:42PM (#12856912) Journal
          Both must be learned.

          Both must be learned and remembered. Longer names allow for an easier to remember naming convention that can then help you remember or find the command you wanted. Two letter commands are certainly easier to type, but as others have mentioned the command completion in the interactive shell should take care of that.
          • The intent behind the longer names is really for initial learning curve and scriptability.

            In Monad, if I know how to get processes using get-process, I now know the "get" verb. Since the convention is standardized, if I want the content of a file, get-content is a good bet for the right command.

            If I really don't know, I can do

            get-command -verb get

            to get a list of all of the commands that are getters.

            Compare this with ls and cat which are just brute memorization. And good luck with apropos.

            As

        • Re:First impressions (Score:4, Informative)

          by Ravatar ( 891374 ) on Sunday June 19, 2005 @12:58PM (#12856986)
          Then use ps, it's a built-in alias for get-process.
          MSH>help ps

          NAME
          get-process

          SYNOPSIS
          get-process -Id id | -ProcessName name

          SHORT DESCRIPTION
          Lists processes currently running

          DETAILED DESCRIPTION

          -Id id
          [int[]]
          [pipeline input allowed]
          Comma separated list of process identifiers that specify the processes to ge
          t

          -ProcessName name
          [string[]]
          [pipeline input allowed]
          Comma separated list of process names that specify the processes to get

          -Exclude name
          [ArrayList]
          Comma separated list of process names to be excluded from the output.

          ---
          The Command will enumerate processes from local machine and output System.Di
          agnostics.Process object(s). The command will write the process object to th
          e output pipeline one by one. The Command will take parameters like ID(Proce
          ss Identifier) or Process Name from command line. The Command will return th
          e corresponding system.diagnostics.process for the supplied ID or ProcessNam
          e parameter(s).

          This command also supports the ubiquitous parameters:
          -Debug (-db), -ErrorAction (-ea), -ErrorVariable (-ev)
          -OutputBuffer (-ob), -OutputVariable (-ov), and -Verbose (-vb)

          NOTES
          Exclude only works for process name.

          EXAMPLES
          get-process
          Returns all running processes

          get-process svc*
          Returns all processes with names starting with svc

          PROVIDER SPECIFIC

          DYNAMIC PARAMETERS
      • by slavemowgli ( 585321 ) on Sunday June 19, 2005 @12:29PM (#12856862) Homepage
        That, frankly, is rubbish. Someone who doesn't know about the commands and what they do will have to learn their names anyway; it doesn't matter, for example, whether you have to remember "get-process" or "ps". In fact, it might be easier to remember "ps", as it is shorter and more concise.

        As for the suggestion to alias commands so you don't have to type as much - wow, that's even more braindead. Part of the appeal of Unix is that the commands are pretty much the same everywhere - I can use grep to grep for things, for example, and expect it to work more or less the same on every platform. What you're advocating is the creation of an entirely individual set of commands, so administrators will either have to keep both sets of commands in mind (even more of a hassle), or be unable to (easily) understand each other because one abbreviated "get-process" as "gp", one used "ps" instead, and so on.
      • by dcam ( 615646 )
        If you still don't like the verbose names, alias them.

        It's that simple.


        This is not a good argument. Default names become the standard. There are many reasons for this, but the top ones:
        1. You go to someone else's machine, they have a different set of aliases
        2. Re-install, have to realias it.

        Good defaults are important.
  • whoosh! (Score:5, Insightful)

    by lheal ( 86013 ) <{moc.oohay} {ta} {9991laehl}> on Sunday June 19, 2005 @11:14AM (#12856470) Journal
    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.
    • Haven't tried it, eh? It shows...
    • Re:whoosh! (Score:5, Interesting)

      by SnprBoB86 ( 576143 ) on Sunday June 19, 2005 @11:37AM (#12856600) Homepage
      All of these little "tools", Microsoft is providing. Take a look at the samples for MSH and you will that the commands are heavily inspired by Unix.

      This tools are "commandlets." Being able to pipe .Net objects into mini applications with the full .NET framework available for use will be increadably useful.

      I can see MSH being a HUGE improvment over Bash. For example:

      MSH> get-process

      (IMAGINE A PROCESS LIST HERE, OR SEE THE LINK... damn /. junk filter)

      Want to filter that by virtual memory consuption?

      MSH> get-process | where { $_.virtualmemorysize -gt 150000000}

      (IMAGINE A PROCESS LIST HERE, OR SEE THE LINK... damn /. junk filter)

      In Unix, you have to parse string output and all sorts of bullshit in order to access a data field of some conceptual object, but with MSH I will be able to simply access it directly in a type-safe way. That is a huge improvement.

      See more here: http://weblog.infoworld.com/udell/2004/11/02.html
      • Re:whoosh! (Score:5, Insightful)

        by Eudial ( 590661 ) on Sunday June 19, 2005 @12:38PM (#12856894)
        $ ps vOr

        List processses, order by memory consumption, saving 52 keypresses.

        If you absolutely -must- sort out those that have less than n mem usage, try
        $ ps vOr | awk '{if ($8 > 15000) print $_ }'

        Still 15 less characters than your example...
    • Re:whoosh! (Score:4, Interesting)

      by diegocgteleline.es ( 653730 ) on Sunday June 19, 2005 @11:43AM (#12856635)
      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.

      It's just me, or you just said the same thing twice?

      Unix has a lot of command-line tools, but it also has tons of libraries with no commandline attached to them.

      There's nothing wrong with the Microsoft's DLL aproach either, they just have to provide a command line for the DLLs they want, programs which will happen to parse the command-line switches and pipes and use the DLLs to execute the real job. It's in fact a "perfect" policy/mechanism balance. Many unix command-line tools don't provide a library to be used by programs, very often I wish they would.
  • One Perl (Score:4, Interesting)

    by Doc Ruby ( 173196 ) on Sunday June 19, 2005 @11:16AM (#12856482) Homepage Journal
    What's wrong with just running the Perl debugger, for an interactive shell? If the *nix shells were as limited in their reach into the OS APIs as the Windows commandline UIs have been, I'd use "perl -de 1" instead of bash or sh. As it is, I use that Perl shell for most commandline programming, especially for any data processing tasks. And a Perl shell has thousands of existing scripts, most of which work on Windows as well as any other platform, and are easily customized to script Windows apps. Even more, the Perl platform has lots of modules that embed programmable clients to Windows apps into scripts, and lots of scripts that bundle them together. Why not use old all-encompassing Perl, rather than the new, strictly limited Monad?
    • Re:One Perl (Score:3, Insightful)

      by Telastyn ( 206146 )
      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.
  • by Deal-a-Neil ( 166508 ) on Sunday June 19, 2005 @11:17AM (#12856488) Homepage Journal
    .. it won't be so startling when you get the blue screen of death, seeing that you're already in a text screen mode.
  • by toupsie ( 88295 ) on Sunday June 19, 2005 @11:17AM (#12856491) Homepage
    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).
  • We've had two recent articles on it, and I know there was at least a third in the distant past.

    And with as verbose as it is, you might as well use a compiled program, or go with Perl or Python.
  • by v1 ( 525388 )
    how MS bashes linux, and yet is trying to become more and more like it...

    Probably a very common business tactic, bash the competition and at the same time assimilate its best features, but still, poor style.
  • backslashes (Score:3, Insightful)

    by hey ( 83763 ) on Sunday June 19, 2005 @11:39AM (#12856610) Journal
    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'

    • Re:backslashes (Score:3, Informative)

      by Tony Hoyle ( 11698 )
      That's just a cmd.exe (and explorer.exe) limitation.

      The NT kernel fixed the backslash brokenness years ago.
    • Re:backslashes (Score:4, Insightful)

      by TheAncientHacker ( 222131 ) <TheAncientHacker@nOSPAm.hotmail.com> on Sunday June 19, 2005 @12:20PM (#12856810)
      And yet another classic example of tunnel vision Unix bigotry. If it isn't exactly the way I learned it, it's broken.

      Here's a clue, try learning something new once in a while...
      • Re:backslashes (Score:3, Interesting)

        by slavemowgli ( 585321 )
        If it ain't broken, don't fix it. Is there a *reason* why they used backslashes instead of forward slashes, historically? Or did they just do it for the sake of being different (which, in this case, is just a polite word for "incompatible")?

        I'm not sure if going back to forward slash usage now would be a good idea, but variety isn't *always* a good thing. Some things are standard for a reason.
        • Re:backslashes (Score:4, Informative)

          by m50d ( 797211 ) on Sunday June 19, 2005 @12:51PM (#12856947) Homepage Journal
          Yes, there is a reason for it. The original MS-DOS didn't have directories and used / for command-line switches where unix uses - (e.g. copy /b or dir /p). When MS-DOS 2 came out with directory support, they wanted to stay compatible (so you could use batch files from DOS 1, etc.) but with the primitive state of the applications back then, using / as both the command switch thing and directory separator would confuse them, so MS decided to use \ as the directory separator instead.
  • Monad?!?! (Score:4, Funny)

    by 3vi1 ( 544505 ) on Sunday June 19, 2005 @11:40AM (#12856621) Homepage Journal
    "What should we name it?"

    "Let's combine 'Microsoft' and 'Gonad'. It'll make Unix jealous."
  • shell bias (Score:3, Insightful)

    by SparafucileMan ( 544171 ) on Sunday June 19, 2005 @11:41AM (#12856627)
    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.
  • by infonography ( 566403 ) on Sunday June 19, 2005 @11:46AM (#12856652) Homepage
    I didn't write this but I wish I had been there.

    " I've been attending the USENIX NT and LISA NT (Large Installation Systems Administration for NT) conference in downtown Seattle this week.

    One of those magical Microsoft moments(tm) happened yesterday and I thought that I'd share. Non-geeks may not find this funny at all, but those in geekdom (particularly UNIX geekdom) will appreciate it.

    Greg Sullivan, a Microsoft product manager (henceforth MPM), was holding forth on a forthcoming product that will provide Unix style scripting and shell services on NT for compatibility and to leverage UNIX expertise that moves to the NT platform. The product suite includes the MKS (Mortise Kern Systems) windowing Korn shell, a windowing PERL, and lots of goodies like awk, sed and grep. It actually fills a nice niche for which other products (like the MKS suite) have either been too highly priced or not well enough integrated.

    An older man, probably mid-50s, stands up in the back of the room and asserts that Microsoft could have done better with their choice of Korn shell. He asks if they had considered others that are more compatible with existing UNIX versions of KSH.

    The MPM said that the MKS shell was pretty compatible and should be able to run all UNIX scripts.

    The questioner again asserted that the MKS shell was not very compatible and didn't do a lot of things right that are defined in the KSH language spec.

    The MPM asserted again that the shell was pretty compatible and should work quite well.

    This assertion and counter assertion went back and forth for a bit, when another fellow member of the audience announced to the MPM that the questioner was, in fact David Korn of AT&T (now Lucent) Bell Labs. (David Korn is the author of the Korn shell)

    Uproarious laughter burst forth from the audience, and it was one of the only times that I have seen a (by then pink cheeked) MPM lost for words or momentarily lacking the usual unflappable confidence. So, what's a body to do when Microsoft reality collides with everyone elses?"

    source = http://www.flutterby.com/archives/1998_Sep/quickie s.html [flutterby.com]
  • by nightcrawler.36 ( 892551 ) on Sunday June 19, 2005 @12:04PM (#12856735)
    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.
  • by janus_god ( 853226 ) on Sunday June 19, 2005 @12:37PM (#12856891)
    Does this mean that tracert will become traceroute and dir become ls? Good god the implecations are huge.
  • by ArbitraryConstant ( 763964 ) on Sunday June 19, 2005 @12:58PM (#12856987) Homepage
    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.
    • They implement some subset that's good enough for the job at hand and tweak it when it screws up
      You're right on the money, but it hasn't worked well for decades, it's meant new changes can't be introduced to the system as everythings breaks.

      So when you ask "why does it do it that way?", the answer often starts with a description of how computers used to be used 30 years ago.
  • by cahiha ( 873942 ) on Sunday June 19, 2005 @01:18PM (#12857061)
    Microsoft programmers should look up "second system effect": they keep making the same mistake again and again.

    If you want to see some good (or at least interesting) directions people have taken shells into, there are Plan 9 rc (same idea as sh, but cleaned up), fish (better interactive features), and Tcl/Tk (shell-like programming for a full scripting language, including the ability to embed Java and C#/CLR objects). And if you want a full scripting language, Perl, Python, and Ruby fit the bill.

    A note to FOSS programmers: if you are really itching to clone Monad, please do yourself and everybody else a favor, implement your clone in Perl or Python: a Monad-like shell becomes almost trivial in those languages because they have all the reflection capabilities you need, and because they already have all the hookups to Java, C#, and COM that you might want.
  • Quick Tour of Monad (Score:5, Interesting)

    by SteveX ( 5640 ) on Sunday June 19, 2005 @01:32PM (#12857153) Homepage
    I wrote a short article on Monad [stevex.org] as well.

    Very cool shell; if you don't know anything about it, don't assume it's just a bash or ksh clone.. it's actually something fairly unique.

"An idealist is one who, on noticing that a rose smells better than a cabbage, concludes that it will also make better soup." - H.L. Mencken

Working...