Slashdot Mirror


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."

99 of 668 comments (clear)

  1. No Thanks by md81544 · · Score: 2, Insightful
    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.
    1. Re: No Thanks by Transcendent · · Score: 2, 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.

    2. Re: No Thanks by torpor · · Score: 5, Informative

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


      Of course it does, silly.

      --
      ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
    3. Re: No Thanks by Anonymous Coward · · Score: 2, Insightful

      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...

    4. Re: No Thanks by lazy_arabica · · Score: 5, Insightful

      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.)

    5. Re: No Thanks by SourKAT · · Score: 2, Funny

      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?

    6. Re: No Thanks by grasshoppa · · Score: 4, Insightful

      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.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    7. Re: No Thanks by Nimrangul · · Score: 3, Interesting

      Why is everyone immediately saying cygwin? Windows Services for Unix is the official release of ksh for Windows.

      --
      I'm sick of following my dreams - I'm just going to ask them where they're going and hook up with them later.
    8. Re: No Thanks by bersl2 · · Score: 2, Insightful

      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.

    9. Re: No Thanks by SilverspurG · · Score: 4, Insightful
      To me, Monad is an exciting effort to try to reinvent the command line.
      The biggest hurdle for the Monad shell is that Microsoft has painted themselves into a corner. The vast majority of software running on a Windows platform was not written with command line operability or scripting in mind.

      The Monad shell may be nice. Heck, it may turn out to be superior to any *nix *sh shell. When it comes right down to it, though, the Windows developers are not going to begin rewriting all of their software just to make it command line compliant.

      Monad is doomed, not by Monad, but by Windows.
      --
      fast as fast can be. you'll never catch me.
    10. Re: No Thanks by Curtman · · Score: 5, Funny

      Why do the unix zealots always dismiss...

      Because we're Unix zealots dumb ass. Get with the program.

    11. Re: No Thanks by brpr · · Score: 2

      When it comes right down to it, though, the Windows developers are not going to begin rewriting all of their software just to make it command line compliant.

      What do you mean by "command line compliant"? Most Linux GUI software isn't usable from the command line, so how is Linux any different in this regard? If anything, because of its .NET object base, Mono should be easier to integrate with GUI apps than bash.

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    12. Re: No Thanks by B'Trey · · Score: 2, Insightful

      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 Monad will have capabilities and feathers that Cygwin/bash won't have. That'll be a huge boon to those of us who have no choice but to deal with Windows in our profession.

      --

      "The legitimate powers of government extend only to such acts as are injurious to others." Thomas Jefferson.

    13. Re: No Thanks by NickFortune · · Score: 4, Insightful
      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 :)

      --
      Don't let THEM immanentize the Eschaton!
    14. Re: No Thanks by callipygian-showsyst · · Score: 2, Interesting

      and Microsoft has their own product, free download, called "SFU -- Services for Unix" that gives you a ksh shell and all the Un*x utilities." We actually stopped running BSD here and started running XP with SFU (and Cygwin) because it's a better desktop Un*x than the real thing.

    15. Re: No Thanks by brpr · · Score: 2

      Many Linux GUI programs are just frontends. There is very little I can't do from the command line and/or by editing a text file.

      OK, fair point. But on the other hand, the ability to use all the libraries in the .NET framework will give a pretty decent equivalent to the library of command line tools on Linux. Say, fetching a webpage would still be easy.

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    16. Re: No Thanks by X0563511 · · Score: 2, Interesting

      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.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    17. Re: No Thanks by julesh · · Score: 2, Interesting

      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 netsh, but they're not there yet. This is what monad is supposed to address.

    18. Re: No Thanks by julesh · · Score: 2, Informative

      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".

    19. Re: No Thanks by ucblockhead · · Score: 2, Informative

      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.

      --
      The cake is a pie
    20. Re: No Thanks by Osty · · Score: 2, Interesting

      Wow, that sounds much easier than the UNIX way....

      Nobody said it was easier than the UNIX way, though for day-to-day operations it shouldn't be any more difficult. Where you'd find yourself writing a bash, perl, or python script in *nix, you'd write a msh script in Monad. Where you'd find yourself needing to write an actual application to do some work (think ps or grep), you'd write a cmdlet as a .NET assembly (or even write another msh script). The difference is in how much more powerful MSH scripting is because it pipelines objects rather than arbitrary strings. As has already been pointed out, you don't have to rely on awk or cut to parse out fields you care about (assuming they're even there -- you can't write a generic awk or cut script for various input, because the fields may be different across your different input streams). As well, because these are objects being pipelined, you can run methods on them directly.

      Take the example of killing a certain process (let's ignore the killall app for now). In *nix shell scripting, you have to call ps, then parse the output with something like awk to match the right process name and retrieve the pid, and then run kill with that pid. You can't make the processing chain generic, because ps gives you different fields in different orders depending on the options you provide. In Monad, you call get-process (which is aliased as ps), filter the output with where-object (aliased as where) to find the $_.ProcessName -eq "your process", and call the resulting object's Kill method. In such a trivial example, there's no reason to make the processing chain generic, but you could write a function that takes a System.Diagnostics.Process object and does whatever it wants to it. Then you can use that function with anything that will give you a System.Diagnostics.Process object. It doesn't matter what the output looks like (by default, get-process displays Handles, Non-Paged Memory, Paged Memory, Working Set, Virtual Memory Size, CPU percentage, and Process Name, but there are many more properties and methods available to you), because you're getting the object, not the textual representation as you would in *nix.

      As many have already said: Those who do not understand Unix are condemned to reinvent it, poorly

      You assume they're trying to reinvent *nix, rather than build something better. The core idea of pipelining objects may not be unique, but it's a very powerful concept and it's something that *nix simply doesn't have right now. You can dismiss this all you like, that's fine. I'd suggest you at least take some time and play with the beta first, so that you can make a truly informed opinion before dismissing it entirely.

      As an example of the power of Monad, consider that a wget-like cmdlet has been written (get-url, not part of the basic set of cmdlets available with Monad, but it shouldn't be too hard to find the script on the beta newsgroups), in 40 lines of well-formatted script (ie, including empty lines, brackets on separate lines, etc -- compress it, and it's even less lines of code). It doesn't have all of the options of wget, but the capability is there, and it gives a good example of what you could do with a little bit of scripting. Now consider that Monad can easily transform output to xml, and you can use get-url, Monad's XML support, and a bit of pipelining to write an RSS reader in a trivially few lines of script. I'm not going to claim that python or perl couldn't do that just as well. That's not the point.

    21. Re: No Thanks by stor · · Score: 2, Funny

      +5 for this tripe?

      SFU is a joke. What kind of circus you running there?

      Cheers
      Stor

      --
      "Yeah well there's a lot of stuff that should be, but isn't"
    22. Re: No Thanks by leonard_chung · · Score: 2, Informative
      The thing here is that with Monad is that folks aren't required to write specifically for Monad.

      Since Monad can instantiate objects and call methods on any .NET Framework class that's public, any windows developer who writes anything using the .NET Framework will automatically have their classes accessible to Monad.

      This is the case with many developers who are writing for any sort of managability. If they want an even nicer syntax, then they can custom write cmdlets which would then use a full verb-noun semantic for an even nicer user experience, but it's not required.

      Finally, it's really easy to write Monad cmdlets if you already have the .NET class implemented. The most basic version of get-process is a grand total of 5 lines of code. Leonard

  2. Here's a Screenshot by blackmonday · · Score: 5, Funny

    Here's a Screenshot:

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

    C:\>


    1. Re:Here's a Screenshot by ShyGuy91284 · · Score: 3, Funny

      Damn, and I was sure they would finally ditch the concept of drive letters this time!!! *Sarcasm*

      --
      In undeveloped countries, the consumer controls the market. In capitalist America, the market controls you.
    2. Re:Here's a Screenshot by mpeg4codec · · Score: 2, Informative

      The previous text is the interface to XP's default shell, cmd.exe.

  3. This is what Microsoft has been "fighting" for! by Anonymous Coward · · Score: 5, Funny

    A command line. How innovative!

  4. This is fantastic news. by Anonymous Coward · · Score: 4, Funny

    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?

  5. Monad? by Deal-a-Neil · · Score: 5, Funny

    What kind of name is that? Sounds like a command shell that had one testicle removed.

    1. Re:Monad? by jockm · · Score: 2, Insightful

      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
    2. Re:Monad? by QuestorTapes · · Score: 3, Funny

      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.

    3. Re:Monad? by dubdays · · Score: 2, Funny

      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."

  6. monad by yakumo.unr · · Score: 5, Interesting

    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.

  7. Re:That's all well and good by Saeed+al-Sahaf · · Score: 2, Insightful
    The question is, who would really be interested in it at all?

    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
  8. I guess the site's running it .... by SourKAT · · Score: 5, Funny

    ... 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.
  9. First impressions by Alioth · · Score: 4, Insightful

    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.

    1. Re:First impressions by SnprBoB86 · · Score: 3, Insightful

      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.

      --
      http://brandonbloom.name
    2. Re:First impressions by Des+Herriott · · Score: 5, Insightful

      "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.

    3. Re:First impressions by slavemowgli · · Score: 4, Insightful

      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.

      --
      quidquid latine dictum sit altum videtur.
    4. Re:First impressions by Ingolfke · · Score: 3, Insightful

      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.

    5. Re:First impressions by Ravatar · · Score: 4, Informative
      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
    6. Re:First impressions by nachoboy · · Score: 2, Informative
      It will probably fail because MS has been telling all their sysadmins that command lines are worthless and that the only people who use command lines are communist dirty hippies. After decades of telling their users that they don't need a command line, that the GUI is better then the command line, that command lines are dangerous I don't see how they will change all those minds. What are they going to say? "Sorry we have been lying to you for a decade"?

      Maybe it's because I come from a more Microsoft- than *nix- centric background, but since where and when have Microsoft ever made any sort of statement even resembling anything close to what you've said above? Sysadmins have plenty of tools at their disposal. See %windir%\help\ntcmds.chm for tons more info than I can provide here.

      I use Windows at home and at work and find the command line environment very powerful and usable. I admin my machines (3 at home, 3 at work, 1 laptop, and several remote family member's pc's) almost exclusively via the command line. The set of default tools has increased dramatically in the last 10 years, and any Microsoft OS released in the last 5 years includes all of the following:

      sc - service controller for starting/stopping/managing services on local or remote machines
      diskpart - create/modify/delete local disk partitions (including advanced configurations like RAID arrays)
      bootcfg - modify boot entries
      fsutil - file system tools (reparse points, sparse files, hardlinks)
      netsh* - network configuration tool to manage interfaces, protocols, routes, firewall, etc.
      wmic - complete WMI (Windows Management Instrumentation) control
      cacls* - modify NTFS permissions
      systeminfo - query basic configuration information for local or remote machine
      findstr - text searching, and yes, it handles regular expressions
      msiexec* - not strictly a command line tool, but supports installation/configuration/uninstall of any .MSI package.
      reg - modify the registry (including online and offline hives, and other users' hives)

      I do find a couple of things lacking, so I customize all my Windows installs to include the following (all free except for the last, which requires that you own WinZip):

      File Hashing: By the time Microsoft came out with fciv, I was already sold on fsum.
      HTTP Downloads: I use wget for Windows.
      Patch Scanning: I use MBSA for an instant report of missing patches so I can avoid Windows Update.
      cab Compression Tools: Uncompression is supported natively via "expand"; need cabarc from the support tools to compress.
      zip Compression Tools: Free add-on to Winzip works here.

      Most people I know (Windows and *nix users alike) are very uninformed about Windows command line capabilities. However, this does in any way mean that the command line is crippled, or unable to perform the same admin tasks that are possible via the GUI.



      *also existed in Win2000 or earlier

    7. Re:First impressions by dcam · · Score: 2, Insightful

      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.

      --
      meh
    8. Re:First impressions by leonard_chung · · Score: 3, Interesting
      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 people get better with Monad, it's expected that they'll switch to the Monad aliases for these functions (intuitively, get-alias for the list) for shorthand notation, or use Monad's autocompletion.

      The other benefit of longer names is that within scripts, people can use the longer forms to make scripts easier to read and understand.

      Leonard

  10. whoosh! by lheal · · Score: 5, Insightful

    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.
    1. Re:whoosh! by SnprBoB86 · · Score: 4, Interesting

      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

      --
      http://brandonbloom.name
    2. Re:whoosh! by diegocgteleline.es · · Score: 3, Interesting

      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.

    3. Re:whoosh! by ArbitraryConstant · · Score: 4, Interesting

      " And all of that will require processing power. All of those objects have to be converted each and every time they get passed. Even the conversion to text will take cycles."

      Are you kidding? Parsing text is one of the hardest things for a modern processor to do. Having fields available in a consistent internal representation allows you to do stuff based on them without having to parse anything, and you don't have to parse things. How many regexen do you write in a typical shell script? I'm not saying there are no disadvantages to Microsoft's way, but speed isn't one of them.

      Also, you don't have to launch so many processes with MSH way. *nix shells can be prohibitively slow if you use an iteration strategy that results in lots of processes being launched, but sometimes it's hard to set things up as a pipe because you often have to do more complex parsing.

      These things aren't so much of a disadvantage for larger programs that often end up in another language, but small one-time scripts will probably be easier.

      I'm not going to use Windows, but if someone can come up with something better than that stupid Python shell replacement on UNIX I'll give it a shot.

      Actually it seems to me that new tools for the current shells could serialize objects and pass them through the pipes we have.

      --
      I rarely criticize things I don't care about.
    4. Re:whoosh! by Eudial · · Score: 4, Insightful

      $ 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...

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    5. Re:whoosh! by brpr · · Score: 2, Insightful

      No, the objects will have to be rebuilt for each and every use

      What on Earth do you mean by this? The objects will not have to be rebuilt every time one of their methods is called. Perhaps you mean something else, but it's hard to see what that might be.

      Even just giving a cmdlet the location of a bunch of objects in memory and having it call their methods one by one will take time, much more time than running regular expressions over text streams.

      Rubbish. A regexp parse itself will make many method/function calls. And why would you need to call the object's methods "one by one"? Surely you would only be interested in one or two of its methods?

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    6. Re:whoosh! by julesh · · Score: 2, Insightful

      I thought it was fairly obvious -- this works pretty much like piping data, except that instead of throwing text around, they're throwing structured objects instead.

      So, in this case, the "get-process" commandlet's author determines what data is available in its output (same as the "ps" author determined the availble information under Unix).

      Basically, it's just as flexible as text output and parsing, without the overhead of writing and debugging regexps/awk scripts to get the data you want, as it's available in a much easier-to-use way based on object structure.

    7. Re:whoosh! by julesh · · Score: 2, Informative

      Let me think, Can you rotate, resize and compress a JPEG, GIF or PNG
      on the MS$ command line?


      You can if you install the appropriate tools to do so, yes. Same as with any other OS with a command line system. I have ImageMagick on my system, so yes I can.

      Can you do this ssh user@domain.com.

      Yes, if you have ssh installed.

      Can you run a firewall script from the cmd?

      Depends what you mean by "firewall script". I don't really understand what you mean, but you might mean something like "netsh firewall set opmode enable", which is the command to turn the firewall on. There are similar commands for opening/closing ports, switching notifications on and off, and so on.

      Can you chmod or chown?

      You can use those exact commands if you've installed cygwin or something similar, or if you'd rather just use the default utilities, cacls can achieve just about anything you want.

    8. Re:whoosh! by brpr · · Score: 2, Informative

      The real world. How many method invocations will your structured 10kb of data require to find the relevant data items? Think about it--there's a reason xml stream parsers are much faster than parsers which load the entire xml doc into an object model.

      You're really, really confused. Take a simple example, such as getting the process ID of a task from that task's name. The obvious way to do it in bash is to do a ps ax, then grep through the lines of output and finally use awk to separate out the process id field. With Monad, you could (probably) just make a method call like OperatingSystem.GetPID("TaskName") and get the information you wanted directly and efficiently, without any parsing overhead. If you think that the most efficient way of handling structured data is to serialize it into text streams and then parse it with primitive parsing tools, you're just plain nuts. The most efficient way to handle structured data is to actually process it as structured data, not as a text stream. Presumably, in those cases where your data actually is a text stream, Monad would allow you to process it as such. But text streams are a poor way of representing most structured data.

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
  11. One Perl by Doc+Ruby · · Score: 3, Interesting

    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?

    --

    --
    make install -not war

    1. Re:One Perl by Telastyn · · Score: 3, Insightful

      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.

    2. Re:One Perl by Doc+Ruby · · Score: 2, Interesting

      Microsoft ("they?") doesn't own Perl - and they don't have to. I can install Perl on a Windows machine without Microsoft having anything to do with it. The idea that a sysadmin tool has to be owned by the owner of the OS is crazy, but certainly consistent with the "Papa Microsoft" monopoly mindset.

      In fact, I wonder why we don't see more "Windows Distros". Bundles of Windows with preconfigured app/content packages. We see some insignificant bundles by computer retailers, like Dell, which include other apps with Windows. But those bundles are to sell computers. How come I don't see Windows upgrade licenses bundled with, say, an OpenOffice.org package, preconfigured to work right? Is there something in the Windows reseller license which requires that only Microsoft can bundle? Or just something in the Windows marketing agenda that prevents them from allowing those kinds of deals? Or merely apathy, and the monopoly mindset that prevents entrepreneurs from reselling Windows OS products bundled with non-MS apps?

      --

      --
      make install -not war

  12. One benefit to Monad. by Deal-a-Neil · · Score: 3, Funny

    .. it won't be so startling when you get the blue screen of death, seeing that you're already in a text screen mode.

  13. Anything would better! by toupsie · · Score: 3, Insightful

    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.
  14. Or you could just download the release-quality one by mcc · · Score: 4, Funny
  15. I find it ironic by v1 · · Score: 2, Funny

    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.

    --
    I work for the Department of Redundancy Department.
  16. Re:That's all well and good by Kafteinn · · Score: 2, Interesting
    The question is, who would really be interested in it at all?
    The more power to the user the more power to botnet controllers!

    One spyware infested crazy windows zombie machine botnet to rule them all!

    Microsoft will continue to make unsecure software but this time with a way for the botnet controllers to actually do something with the botnets.
    --
    Hitler's in the fridge.
  17. Re:That's all well and good by diegocgteleline.es · · Score: 2, Insightful

    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

  18. Re:That's all well and good by CaroKann · · Score: 5, Insightful

    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.

  19. Re:What I'm wondering... by Utopia · · Score: 2, Informative

    Windows has had symbolic links since Windows 2000. It was called junction points.

    In XP it was renamed as reparse points.




  20. backslashes by hey · · Score: 2, Insightful

    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'

    1. Re:backslashes by Tony+Hoyle · · Score: 2, Informative

      That's just a cmd.exe (and explorer.exe) limitation.

      The NT kernel fixed the backslash brokenness years ago.

    2. Re:backslashes by TheAncientHacker · · Score: 3, Insightful

      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...

    3. Re:backslashes by slavemowgli · · Score: 2, Interesting

      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.

      --
      quidquid latine dictum sit altum videtur.
    4. Re:backslashes by m50d · · Score: 3, Informative

      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.

      --
      I am trolling
  21. Monad?!?! by 3vi1 · · Score: 3, Funny

    "What should we name it?"

    "Let's combine 'Microsoft' and 'Gonad'. It'll make Unix jealous."

  22. shell bias by SparafucileMan · · Score: 2, Insightful

    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.

  23. They tried this before by infonography · · Score: 5, Funny

    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

    --
    Sorry about the writing. Robot fingers, you know? Cliff Steele in DOOM PATROL #23
    1. Re:They tried this before by grouse · · Score: 2, Informative

      The link says the story might be apocryphal, but David Korn confirmed it right here on /.

  24. Groovy by Anonymous Coward · · Score: 2, Informative

    Some bits about the shell:

    Natively, both forwardslash and backslash are allowable as separators. You can use both and even intermix them. So 'C:/program files/Mozilla/' should work just fine.

    The verbosity is a bit annoying, but that can be taken care of via aliasing. Also, all options are shortenable as long as they're disambiguous. Furthermore, you can alias everything just like you can in unix, so if you don't like get-process as a name you can just alias it to gp or ps or whatever you like.

    Why it's better than using Perl: because it has built-in OS hooks. You don't get the list of processes back when you run get-process: you get a streamed list of processInfo objects. If you want to store them and use them later, you can. If you want to kill a specific process, you can run process.kill on it. Want to browse the registry or AD the same way that you browse the filesystem? You can do that too. Want to format anything in a certain way? You can pick and choose what columns to display and how to display them easily, and you can set these as the defaults for these objects.

    I'd strongly recommend trying it. As a linux user and a windows user, it has a lot to recommend it. It has much of the good parts of unix-style ideals - small parts, working together and all that is where the name comes from (it's a Leibniz idea, in case you were wondering). It's very composable and mixable. It works quite a bit better than any other scripting language in exposing the native APIs. It almost allows lamdba closures; it is a lot closer to lisp than to perl or bash.

    Try it.

  25. Ok, ok... fun's over--seriously now... by nightcrawler.36 · · Score: 4, Insightful

    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
  26. Re:Fist object oriented shell. by Anonymous Coward · · Score: 2, Informative

    What the fuck where you trying to say?.

    Not to be pedantic about your pedantry, but I think you meant were, not where.

  27. Does this mean? by janus_god · · Score: 3, Funny

    Does this mean that tracert will become traceroute and dir become ls? Good god the implecations are huge.

  28. Re: No Thanks (not UNIX, VMS!) by Ingolfke · · Score: 4, Informative

    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 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.

  29. Re:If it's good.... by IamTheRealMike · · Score: 4, Interesting
    That would be hard, MSH leverages .NET quite extensively. You might see a Mono Shell, or a Python Shell using the same concepts though.

    It's rather sad to see people dismissing this so quickly. I can guarantee if this was an Objective-C based shell from Apple people would be slobbering all over it by now, and saying how innovative Apple were, probably with some jabs at Linux too. I remember seeing an initial presentation about MSH a while back and the thinking behind it impressed me then, I'll be keen to try this when it's fully released.

  30. 30 years in computer years? About 1000 years by Moderation+abuser · · Score: 4, Funny

    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.

    --
    Government of the people, by corporate executives, for corporate profits.
    1. Re:30 years in computer years? About 1000 years by rcamera · · Score: 2, Interesting

      a shell scrip from 30 years ago MAY run on a current /bin/sh. i don't have my o'reilly unix in a nutshell with me right now (i keep it at work), but as i recall, there's a whole section titled 'obsolete commands'. these commands may not exist on a specific system. good luck getting your shell script to work when the commands within the script are invalid.

      --
      Wave upon wave of demented avengers March cheerfully out of obscurity into the dream
  31. lol, personalized error ... by da5idnetlimit.com · · Score: 3, Funny

    "Server Error in '/' Application."

    Is computing really becoming pervasive ?
    At least it has a sense of humor 8)

    'Server Error in '/' Application.

    Runtime Error
    Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

    Details: To enable the details of this specific error message to be viewable on remote machines, please create a tag within a "web.config" configuration file located in the root directory of the current web application. This tag should then have its "mode" attribute set to "Off".

    Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's configuration tag to point to a custom error page URL.

    '

    --
    It takes 40+ muscles to frown, but only four to extend your arm and bitchslap the motherfucker
  32. what can UNIX learn from this? by ArbitraryConstant · · Score: 4, Insightful

    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.
    1. Re:what can UNIX learn from this? by The+Cookie+Monster · · Score: 2, Interesting
      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.
  33. modded down for speaking badly about my own post by bersl2 · · Score: 2, Funny

    WTF?

    I need sleep...

  34. massive case of second system effect by cahiha · · Score: 3, Interesting

    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.

  35. Meme of misuse of term 'meme' by screwthemoderators · · Score: 2, Insightful

    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

  36. Quick Tour of Monad by SteveX · · Score: 4, Interesting
    I wrote a short article on Monad 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.

  37. Re:If it's good.... by mi · · Score: 3, Interesting
    It's rather sad to see people dismissing this so quickly.
    That's the weakness of the Microsoft brand. Whatever they do is usually designed poorly. Even when the design is Ok, the implementation is bad. Even if properly implemented, the thing will be crippled by several of -- at least -- the following:
    • having to support legacy concepts (such as drive letters);
    • licensing concerns (like XP workstation allowing only one user at a time);
    • wide-spread security concerns resulting in the feature being turned off by default on most installations;
    • wide-spread fears of accidental and intentional incompatability;
    • being only available as part of an expensive (and extensive!) upgrade;
    • etc.

    Their bad (as in both -- nasty and foolish) ways of doing things are catching up with them all the time.

    --
    In Soviet Washington the swamp drains you.
  38. Re:Drop the marketing jargon for a minute! by moonbender · · Score: 4, Informative
    For about ten years since the dawn of Windows 95, Microsoft has spent a fortune downplaying the power of a CLI in favor of the all-powerful GUI. After all, why is it that cmd.exe and family are so incredibly anemic? [...] Everything must interact with the GUI, leaving only limited functionality to the shell.

    Actually, I think I have heard/read that since Windows 2000 (and maybe earlier for the NTs), every administration task in Windows was required to be manageable via command line, as well. Something like that, at least - there certainly are a lot of command line apps in /system32 that I never ever came close to using.
    I don't know what exactly makes cmd.exe anemic - it's perfectly fine, in my opinion. It's not as powerful as bash or the other Unix shells, and the scripting is terrible, but it's just fine for basic interactive file management and the execution of command line apps. It does name completion (command.com didn't), which is basically THE killer feature for me.

    There is no clear way to interface with the system, such as with kill -SIG PID (granted, this is because Windows is void of a kill binary); the intent behind this is likely the design philosophy of Windows.
    C:\Documents and Settings\ms>taskkill
    ERROR: Invalid Syntax. Neither /FI nor /PID nor /IM are specified.
    Type "TASKKILL /?" for usage.
    Ships with every Windows post 2000, I think.

    As for other interfaces with the systems, like I said, there is a lot more than what you expect. The NET command certainly is well-known and used for about a thousand things, notable starting and stopping services. It certainly beats the rc.d scripts from my point of view, although I guess that's just because I'm used to it.

    That said, one of the first things I do in a fresh Windows install is get Cygwin along with some Unix essentials - grep, wget, etc. And ls for the pretty colors. ;)
    --
    Switch back to Slashdot's D1 system.
  39. Yes you can by DigitlDud · · Score: 2, Informative

    The entire .NET class library is exposed to MSH. And the class library almost entirely wraps all Win32's functionality. So yes, you can do anything. The design philosophy behind Longhorn is that any UI configuration must be exposed in the CLI. On and by the way, you get lossless JPEG rotation in Longhorn.

  40. Re: No Thanks (not UNIX, VMS!) by Prothonotar · · Score: 2, Insightful

    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
  41. Re:That's all well and good by moonbender · · Score: 2, Insightful

    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.
  42. Re:If it's good.... by IamTheRealMike · · Score: 3, Insightful
    having to support legacy concepts (such as drive letters);

    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).

  43. Re:Drop the marketing jargon for a minute! by Gorath99 · · Score: 2, Interesting

    Actually, if you're using WSH and not batch files (and there's no reason why you shouldn't on win2000 and up), the scripting really isn't that bad. In fact, it's much nicer than scripting in bash with its awful syntax and near-inability to cope with data containing spaces. Damn powerful too as long as your apps expose meaningful DCOM objects. (Most MS apps do nowadays.)

    I still script quite a bit in bash, since it's simply more portable, but scripting in Windows really isn't all that painful anymore.

  44. Re:See... by ZorbaTHut · · Score: 2, Insightful

    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.
  45. A few very handy things I would like to see by chiok · · Score: 2, Interesting
    Is there a way to get a 4DOS style history or something like bash's history-search-backward & history-search-forward? That might be a deal breaker for me if not.

    Also, the 4DOS wildcard rename feature has unfortunately not been adopted.

    What no tabs?!?

  46. Re:See... by geomon · · Score: 2, Funny

    When you update your installation and suddenly all your scripts break.

    Of course nothing ever breaks with a Windows update.

    --
    "Rocky Rococo, at your cervix!"
  47. Re:If it's good.... by mi · · Score: 2, Interesting
    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.

    Sorry, this is just laughable. So, you, consider "D" to be easier to associate with a "cD-rom", than "/cdrom"? You are not even trying to justify the "A" for "floppy disk" :-)

    The reaction of computer scientists should be your guide. These people tend to know answers to questions, which you don't know enough to even ask.

    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.
    Oh, that's easy. You named it yourself: "for personal use". To ensure, it is available for personal use only you may only be allowed to run a single instance of it, unless you purchase the server license. Or it may not be available to telnet sessions. Or something bizarre like that.
    Microsoft backport far more stuff than Linux vendors do
    They better... With sh, csh (or whatever Unix shell rocks your boat) you can do anything. It may not be pretty, but it will work. Witness configure-scripts. With cmd.exe you can't even pass all of your own arguments down (there is no equivalent of "$@") -- forget about procedures, loops, etc.
    The guys working on MSH have blogs, I read a few, and they seemed very sharp to me.
    Oh, I'm sure, there are plenty of smart individuals working for Microsoft. However, the firm's organization and its dirty unatoned past (and, likely, present) will continue to weight on the firm's products -- and their reputation -- for some time... And these -- the reputation and perception -- are the subject of the thread.
    --
    In Soviet Washington the swamp drains you.