Microsoft PowerShell RC1
rst+ack writes "Microsoft has released RC1 version of PowerShell the .NET-based shell with perl-like syntax previously known as Monad or MSH. PowerShell (PS) has been covered a few times on Slashdot. Contrary to cmd.exe and Unix/Linux shells it operates on objects, not text when passing data between scripts and executables. Easy access to .NET classes allows users to create quite advanced solutions in short time. PS won't be shipped with Vista or Windows Server 2007 but it will debut with Exchange 12."
Can you resize the window and copy and paste easily into the windows. If so it's already 10 times better then CMD.EXE.
evil is as evil does
Why would you want to use an arbitrary, difficult to debug format like text when you could use
-Peter
Welcome to the past.
Ahem:
Those who do not understand Unix are condemned to reinvent it, poorly.
Probably never, would be my guess, but one of the things I find annoying is how much reinvention-of-the-wheel Microsoft gets away with and yet continues to make the ridiculous claim that they're innovating, when in fact they're merely catching up. Bill Gates, welcome to 1994.
Dog is my co-pilot.
"Contrary to cmd.exe and Unix/Linux shells it operates on objects, not text when passing data between scripts and executables."
In other words. An OOP shell.
When will the Windows command line finally have this?
We WANT Linux/Unix shells...they work just great, and have lots of tool support...and have lots of good documentation...and have 20+ years of abuse.
It's another toy for the script kiddies to mess w/my computer?!?
Oh, wait that's right C# is Managed Code.
Brother
If so, sign me and Fred Savage up!
"Made up/misattributed quote that makes me look smart. I am on
I don't know, it sounds a lot more like the REXX and AppleScript way of doing things to me. An application exposes a dictionary of possible actions (rephrased in OO, an application object exposes methods) and passes the results to the next REXX or AppleScript-aware application.
Both REXX and AppleScript predate wide scale adoption of OO, so I might be off-base. It does sound very similar though, and personally I think there's room for both that approach and the classic Bourne shell-style approach.
Cheers,
Ian
Is it just me or does it seem insanely odd that a "shell" for an OS is a) shipped seperately and b) doesn't use text as a native data type? Maybe I'm stuck in the "past," but I always saw the shell as the barebones method for a user interact with an OS. Either this really is cutting edge (object data types) or this is just a hyped-up .NET application that is designed to *look like* the shell.
Can you run something similar to; "rpm -qa |grep windows|xargs rpm -e" ?
...innovation from MS. Let the world rejoice!
I wonder if the trademark works. They will probably have to call it Power Microsoft Shell. People will likely want to have Unix-like piping of textual results. Does this mean a Text array gets instantiated, or is it a stream object?
This sounds very disturbing.
Religion is a gateway psychosis. -- Dave Foley
It will be a general download to the OS as well. It's just that the admin scripts shipped with Exchange will rely on it.
No thanks.
Guys, next time, think about making it do something before you put out a release candidate.
This is Slashdot. You're not supposed to actually click on the links in the article...
Where do you see ANY indication that this will cost you $? For god's sake, can we please stop the nonsensical MS bashing?
Windows PowerS hell
I knew it all along!
brightloudnoise.com
I didn't :-)
What I want to know: does it come with a text version of Clippy?
Nothing interesting to say...MUST...NOT...REPLY...ohtheheckwithit.
I can read my own Powershell scripts.
Shame you didn't RTFA, you'd look smarter.
It's "Microsoft Powers Hell"
-- "Those who cast the votes decide nothing. Those who count the votes decide everything." -Joseph Stalin
Hm, what kind of security do you expect in a shell? But, IIRC, you can run scripts under any .NET permission set, which means that you can emulate stricter permissions than the user you are running under (just like the Java VM does). I think there is also some code signing possible, but it's always a tradeoff, isn't it? It's not exactly like you want to log into some kind of stealth mode to just sign a script you have edited.
So: You want a shell-like environment that lets you type in commands to operate on objects representing files, directories, etc.
Great! Install python*, install the file packages, open the interactive interpreter... you're done.
Why bother waiting for this MONAD thing? It looks like all MONAD offers over any other interactively interpreted programming language right now is that it is compatible with the C# object model. Which, y'know, on the one hand, the UNIX "glue" platforms (python, perl, ruby, kde, gtk) could totally benefit from a unified object model that would allow you to construct an object in a GTK+ application, pass it to a perl script, pipe it to a ruby app, etc. But, y'know, on the other hand, python on windows supports the CLR/C# object model as well... and it's available now.
* Or ruby.
Is that like a gonad, but you only have one? And I thought eunuchs had it tough!
Who's your user, program?
If you think bash is a good language because you can embed perl into it, you seriously need to back away from the xterm and get some fresh air.
Careful there. Lisp is the nitrous oxide of languages. If you don't watch it, you'll overload your OS, and blow out your server.
:)
--
The "are you a script" word for today is "lethal".
RTFM mate. This is not reinventing the wheel. It's adding a few more spokes, better tires and tougher rubber.
PGP KeyId: 0x08D63965
The thing in *nix is that most applications support the shell. They are built for piping stuff in any possible way. Are the Windows applications going to be built with the shell in mind or is this going to be yet another cmd.exe where you have to build your own stuff to do what you want instead of like *nix where you just pipe at your hearts content.
I have also a hard time imaging using objects being easier to understand for normal admins and users.
Also, when exactly did the shell stop to suck and begin to be a good feture? The same second Microsoft made their own version?
HTTP/1.1 400
Uh, it is a COMMAND SHELL? Of course it's text input based. They also claim that future graphical admin tools will render the equivalent commands in a text field, somewhat like what you describe. But this one certainly uses a text-based interface... The object-orientation is just about how commands interact with each other, especially when piping. Plain text piping between commands (note, not processes, the builtin commands are objects that will generally live in the same process as the shell itself) is a limited special case of this.
The parent is a technical question about the newly released technical solution that the slashdot story refers to. What variety of crack is so powerful that ANY mod could have possibly considered the parent post offtopic????!!!
Unix shell scripts are also incredibly good at manipulating text files, using awk, grep, sed, cut, etc. I tried to do such a task with PowerShell and found it wanting. I revered to Windows Services for Unix (basically the Korn shell).
For those who don't know, a monad is a notion in functional programming languages that is a way to structure computations in terms of values and sequences of computations using those values. Monads allow the programmer to build computations using sequential building blocks, which can themselves be sequences of computations. This is not dissimilar to how PowerShell works, but really, I when manipulating text files, I don't want to be dealing with functional programming language abstractions.
"PS won't be shipped with Vista or Windows Server 2007 but it will debut with Exchange 12."
Seriously. Shipping after Vista. ROFL... "One day, we will ship it, honestly!!"
No, linux is an implementation of Unix, not a reinvention of it. It's POSIX-compliant. Windows is still fumbling around with basic lessons which were learned by unix professionals years ago. Nothing different than you'd expect from an OS designed for home computers really.
As for monad/powershell... it's the same story. Instead of having the shell of your choice (bash,csh,zsh,python...) with the programming language of your choice (bash,perl,python,C++...) they're still trying to force a vision on people that will probably turn out to be fundamentally flawed in some way.
>They will probably have to call it Power Microsoft Shell.
Power Microsoft Shell - PMS, would this be a description of the shell's behavior?
Doesn't appear to be a way to get a copy to look at unless you have Passport which seems to require a hotmail account. I don't have time to read a couple of dozen licensing agreements atm and it looks like if I register I'm basically signing a non-compete license with Microsoft. Not really a term that I am willing to agree to. Has anyone gone through the contracts?
/* TODO: Spawn child process, interest child in technology, have child write a new sig */
please post a direct download link.
thanks.
And why would one use such a weak name as Monad, when it can be brilliantly named Power Shell?
Always put off dealing with time-wasting morons. If you would like to know how... I'll get back to you
Looks like it might not be that hard to create a bash wrapper or similar (python anyone?)
I am d3matt
How many patents does MSFT have on this amazing new technology?
In this case, it sounds more like "those who do not understand Python".
Note, Python seems like a more appropriate comparison than Perl, because Python is interactive, while Perl is not, unless you do some funny ad-hackery. Although Perl does have that arbitary-kluginess that fits better with what I'd expect to see from MS. Actually, though, I would kind of like to see this system before passing judgement. Unfortunately, MS seems uninterested in supporting any platforms I'm willing to run, so that may take a while.
An Apple brand. It shouldn't surprise people that they know UNIX and Objects. Unfortunately, NAppleXT has spent an awful lot of time making that legacy happy. Let's hope this diminishes greatly with Leopard.
RTFM mate. This is not reinventing the wheel. It's adding a few more spokes, better tires and tougher rubber.
:|
Yet I bet it still only takes a single nail to make the whole thing useless
Sendmail is like emacs: A nice operating system, but missing an editor and a MTA.
BASH shell-scripting kicks ass. So do PERL, Python, the Korn Shell, PHP and C (and it's derivatives). I know enough about all of them to use one or more of them to do most of the tasks I need to do in the timescale I need to do them.
I've never programmed anything in any Microsoft programming environment because I've never needed to - and it would take me far too long to learn their way of doing things from scratch rather than working with what I know.
However, I know a few MS-based programmers who managed to develop the tools they need to in .NET or whatever it is they use - I'm sorry, I'm not informed enough about MS programming environments to voice any more opinions about it.
Suffice it to say, they're happy and I'm happy.
So everything is right with the world.
End of story.
Gentoo Linux - another day, another USE flag.
First of all, I would have to upgrade from Windows/2000 Professional to Windows/XP Professional. Since this costs money, I'm not terribly interested. My system has enough trouble running all the stuff I run now (2 databases, a web server, an application server, a development environment, etc. etc.). More operating system overhead is the last thing I'm interested in.
Second of all, I get to write scripts in another language that's not portable across all platforms. I've never worked in a monolithic environment, and I probably never will. Cross-platform tools are a requirement.
Third, I can do a lot of administrative programming for Windows in Perl. I imagine python and ruby have similar hooks (haven't checked). For personal productivity I run Cygwin's version of bash on this machine when I'm running Windows, and bash when I'm running Linux. Different people may want different interactive tools. Fortunately there are several cross-platform choices.
Finally, while I've heard about all these productivity gains with C# and .NET, I've not experienced it. I have .NET, C#, and Visual C++ .NET on the Windows side of my environment. What I've seen is that Microsoft makes a credible IDE. The IDE makes simple things easy, and complex things ridiculous. Transferring skills learned in the Microsoft world to any other environment is difficult at best, and pointless for the most part.
Oh - never mind - that's Microsoft's point.
neutered text.
Bash or Perl? How about comparing C# to something that's actually in the same league, ie. Java?
Basically, shell programming sucks. And I say this as someone who has to do a lot of it, for a living. You can work with it, but it's awkward, and error-prone, and fragile because everything has to be passed as an friggin' untyped text stream. Yes, text streams are simple, and to their credit, they do allow Unix tools to work together, kinda. And everyone knows that suckage is relative; you're brilliant as long as everything else sucks worse.
But, the *right* way to pipe data is to pass streams of objects; if you have a set of tools can do that, they will suck less. It is of course unfortunate that Monad is tied to such a proprietary platform...
Except the spokes are perpendicular to the old ones, the tires are on the inside and the rubber melts at high speeds.
They get that *nix's text based communication is a crude and outdated way of doing things
You might want to tell that to the people doing SOAP. I think there may even be a few at Microsoft.
Why not pure XML communication between programs in a shell? Then it's fully backwards compatible with older text-oriented utlities.
Of course, perhaps they are serializing the objects between processes in just this way, I have not looked at the details.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
And how, from the users perspective, is this better than bash? What can i do with this i cant do with *nix today? Are all the various Windows applications and admin tools in some magic way now "shell aware"?
As i understand it this wont work with old apps but only new ones with support built in by the developers. I also assume this shell will have to go through the same process as the *nix shell in weeding out the security holes and bugs. Or do you really assume this is released with zero bugs from day one?
HTTP/1.1 400
I encourage you all to come kick the tires and find out what PowerShell really does/does not do. I think you'll be pleasantly surprised by its power and simplicity and might even like it. Many of us on the team have a deep background in UNIX and brought that into our work. Even if you don't like what we've done, trying it out will allow you to know enough to throw your rocks accurately. :-)
a milyId=2B0BBFCD-0797-4083-A817-5E6A054A85C9&displa ylang=en
http://www.microsoft.com/downloads/details.aspx?F
If you'd like to learn more, you can read our team blog at:
http://blogs.msdn.com/PowerShell
Enjoy!
Jeffrey Snover
PowerShell Architect
They will probably have to call it Power Microsoft Shell [...] does this mean a Text array gets instantiated, or is it a stream object?
PMS? Stream? Hello? That's not interesting; it's funny.
Then again, this is the same company that brought us WiMP, so I wouldn't put it past 'em.
"RTFM mate. This is not reinventing the wheel. It's adding a few more spokes, better tires and tougher rubber."
Yep, and the brakes will ship in the second service pack. 8^)
Crumb's Corollary: Never bring a knife to a bun fight.
Why does .NET kick ass? I program in C# daily. It is Java, redone decently, with a couple extra features but without some of the polish that Java has. It's nice for a scripted language, but it's by no means revolutionary. Hell, Java isn't revolutionary. .NET is another iteration of a concept that has been around since the 70's, and it has the same advantages and disadvantages that all VMs have. Nothing much to see here. Give me a reason why it's the dog's bollocks, because I really am curious.
You write shell scripts in Java? Are you INSANE!?
"If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
Things would just rock when combined with IronPython. You could easily create something like Monad/PowerShell with IronPython, which fully integrates with .Net. Heck you can even use VisualStudio to edit/debug your scripts.
Or whatever it is renamed!
/ unix/sfu/default.mspx
a milyID=896c9688-601b-44f1-81a4-02878ff11778&Displa yLang=en
/ default.aspx
In Vista, it will ship as a regular component of the Pro and Enterprise versions.
http://www.microsoft.com/technet/interopmigration
http://www.microsoft.com/downloads/details.aspx?F
Get Bash, OpenSSH, BSD pkg_tools and the GNU toolchain here:
http://www.interopsystems.com/tools/warehouse.htm
Oh, and if you want MS's fast compiler, as opposed to GNU's portable one - then this is free. Add an environment variable, and cc calls this:
http://msdn.microsoft.com/vstudio/express/visualC
"Speaking the Truth in times of universal deceit is a revolutionary act." -- George Orwell
Linux is POSIX-compliant? No it's not... it implements a number of things from the standard but is by no means compliant with it.
At least one distribution of the GNU/Linux system, called Unifix Linux, has been certified as conforming to POSIX.1.
It's a legitimate question. The security of PSH is mainly two-pronged: first, as in every other console/shell, including cmd.exe, commands and scripts can only act with the permissions that the current user has. This is the standard *nix way of doing things, and it should be far more effective in Vista once proper LUA is finally well-implemented. The other prong is a combination of security features. First, there will be no default associated file type for PSH scripts, meaning that by default, it is not possible to double click a script file and have it run, like you currently can with .BAT files. You can always create an association, but the default behavior is to instatiate the shell first, then run the script with a command-line command. Second, by default, scripts in the current director must be explicitly invoked (equivalent to not having "./" in your PATH). Third, PSH will support code signing, so that scripts must be digitally signed by a trusted publisher. This can, of course, be yourself, because you can easily enough create a cert and trust your own certificate. But it would prevent a lot of trojan attacks.
If you don't know where you are going, you will wind up somewhere else.
It might implement some interfaces/behaviour, and it is great, but it just isn't unix.
Neither is the PlayStation a "Nintendo". UNIX is a brand. Or are there material parts of the Single UNIX Spec that you're wishing would be implemented in Linux?
Not to be a heckler or anything, but I'm not convinced. I would at least like to see some screen shots before I give it a try. Secondly, what is this? An object-oriented shell? I'm a computer science student and all pro-Linux, but I would still like to know more information about this shell.
The Rapture is NOT an exit strategy.
in Unix by default you can choose from several interactive shells as well as several different programming and scripting languages. This is quite unlike the Windows approach.
O rly? The .NET framework supports numerous languages: C#, C++ with Managed Extensions, Visual Basic, J#, Perl, Pascal, Forth, Eiffel, ML, and more.
I don't recall too many things microsoft has added 'spokes and rubber' to that didn't end up causing a train wreck.
Roaming profiles
nice idea. Home directories that travel. Watch 20 users save everything to their desktop for about a month- train wreck.
Active directory.
Have fun mixing your nt domain controller with your 2000 ad box.
While your at it, don't forget to use those underscores - what, DNS? whoops!- train wreck.
Internet explorer
A web browser for windows. What a neat product. Let's give it the ability to install operating system software over the internet- train wreck.
Face it. Microsoft has been saying things will get fixed with the next version since windows 95. They've not delivered on that yet as far as I can tell. More features get added, but nothing gets fixed, and the reason is because it makes for good marketing. People keep waiting though, and hoping, and spending, and that's all that counts when marketing is your drive.
Join the Slashcott! Feb 10 thru Feb 17!
Why reinvent the wheel? Why not just implement a Bash or other /bin/sh compatible shell that many of us already know?
Or at least *fix* cmd.exe so that as a GUI and keyboard interface it's not punishing -- make cut and paste work like every terminal emulator woth a darn (SecureCRT or Putty), make the screen resizable in the right way, etc.
My fear is that you've just developed yet another programming interface and all the dimestore VB/Access programmers are going to create a nightmare of spaghetti code with it, simply because they can.
If the quality of this product matches the quality of Microsoft's other 1.0 products, then "It's so bad" is about right.
I'm an avid Python, PHP, Perl, Ruby, and C# programmer.
.NET you can switch from C# to C++ to J# and still use the same common libraries! And if you already know C, then learning C# is a piece of cake. Same for Java and J#. Your "learning curve" comment is totally unjustified as far as I'm concerned.
Ok, those *nix languages are all fine (I particularly am fond of Python), but C# is definitely a very nice language. Give credit where credit is due.
I can tell you from personal experience that I haven't found development/debugging tools in any of those other languages that compare to Microsoft's.
And as for your comment about the learning curve, I totally don't get that. So you have no problem with the learning curve involved in learning Perl, Python, Korn, PHP, and C and yet you have a problem learning c#? Those languages don't even share the same libraries; at least with
My point exactly. He was comparing things that don't filful the same goals.
I know its hard to accept microsoft did something good, but as someone who has been using betas of this for months, I must say it is pretty darn slick.
Think of how great your linux environment is, becuase you can easily chain together applications that pass textual data between each other... This is the same idea, except we can now pass complex objects and custom data types as well.
To solve the problem of how to 'display' an object, each object type can have an xml file describing how to display it in a text environment.
Big ones, small ones, some as big as yer 'ead!
Give 'em a twist, a flick o' the wrist...
Hands in my pocket
Apple is already dropping the "Power" nomenclature (ie, PowerBooks became MacBooks). Redmond's photocopier is too slow. :^)
Where do you see ANY indication that this will cost you $?
"System requirements: Windows XP or later". A lot of Slashdot readers still use computers purchased before January 2002, when PCs started coming preloaded with Windows XP. They would have to shell out a not insignificant amount of money to upgrade to Windows XP (for desktop machines) or Windows Server 2003 (for servers). See thetoastman's comment to this article.
come kick the tires and find out what PowerShell really does/does not do
Does not: Run on machines that use Windows 2000. It requires Windows XP, which excludes the majority of PCs sold before January 2002.
yes, you would think that they could replace the Win311 command shell by now,
with something that has sane scrollbars, resizing, cut/paste, and
basic terminal(vt101,...) support.
Yes, I am sure the new powershell, makes it very easy to pass virus data back and forth, but,...
perhaps ReactOS will have a real shell someday.
Pronounced "PSSSSH!" of course.
You can also get command-completion in any CMD.EXE shell from Win98 on
To enable command-completion
1) Open REGEDIT (Start/Run/regedit)
2) Search for the string 'completion char'. It will have the value '0' (turned off).
3) Set the value of the 'completion char' entry to be the value of the keystroke you want to use for command-completion (for example, to use the TAB key, set the value of the 'completion char' entry to 0x09.
It's too bad there isn't any way to turn this on from the GUI (or the command-shell right-click menu), but
Windows PowerShell RC1 (for .NET Framework 2.0 RTM) x86
f 14c-8009-43ad-b953-1b18609cf14c/PowerShell_i386.zi p
http://download.microsoft.com/download/e/8/c/e8cc
I hope that helps.
You might look into Cygwin and rxvt.
I got to thinking about the name, and wondered: Why Power Shell? I mean, really, why Power? People have just blithely been accepting the name without thinking about the reasoning behind it.
.NET, Windows Media Player, IE, etc.
I think it's pretty obvious that this shell will be released as part of the Power Toys utility set for Windows Vista. Historically, the Power Toys have been utilities released after the release of Windows that Microsoft system programmers have written, but don't get any support from Microsoft. It's probably likely that this Power Shell will end up in much the same way, as a sort of extra bonus tool for people who want to play around with it, but by no means an essential, required system component like Microsoft made
There is the beanshell.
I have never used it but I think it came with Forte and Netbeans in earlier version in some sort of java desktop(not gnome). My guess is the desktop and beanshell terminal were part of the failed JavaOS that was ported to the javavm from sun engineers who missed it.
After playing with StringBuilder and the various string classes in java.utils, I thank god I don't have to write any shell scripts in java! What a mess and I feel sorry for companies like Catapiller who write scripts in c++ instead of shell scripting in order to follow standards on one langauge. I dont hate java but string handling is not its strong point compared to other languages.
http://saveie6.com/
"Anyway, it'll be cloned it within a month and then the slashdoterati will claim they invented it. Or maybe it'll run on Mono."
First Port!
Most lisp implementations are interactive. Also, a lot of features from modern scripting languages seem to be a knock-off of lisp features. Python is a good example with its (soon to be removed) lambda functions.
---- "XML is like violence. If it doesn't fix the problem, you aren't using enough."
Couldn't they have picked a different name? I've been using PowerShell on Linux for years now. It's a terminal emulator for X11 (like xterm) and is the first result on Google for the word PowerShell. Now a terminal emulator isn't exactly the same as a shell, but I could see some confusion occurring as a result.
&: "Thankyou for the warm greetings, Clippy."
@: "Welcome. What can you do for us today."
&: "At first sight, I can increase the diversity of Microsoft's stock portfolio for investors."
@: "Ha ha, you sure can. But realy, let me give an introduction for what you can really do for System Adminsitrators, and then you can acknowledge the statistical errors as I go along..."
&: "uhm, O---k?"
@: "You can query information from the Windows Management Interface."
&: "Yes, we can do that. It adds a little over-head for Anti-Virus software to intercept unauthorized activity. Microsoft programmers are apt to get such vulnerabilities correctly *moved out from the harm of an adversary."
@: "Yes that may be a little problem, but nothing Microsoft can't wait for an external private corporation to emerge a product that replaces the mismanaged feature with a redirection to an external security console and application."
&: "Hey, wait a minute. I'm not about to be replaced with some foreign hack that can just rpm it's engine over my perfectly viable design of closer integration to the system kernel."
@: "For shame, to think we will be the centerpeice. That sort of attention takes time and money, for which we are not allowed to divert. Why would Microsoft try to prevent more active software from being used, and at the determination of the computer owner? Microsoft isn't against free market, but against people making bad decisions."
&: "Insult me? If I actually was a system-administration tool, I'ld remotely close your process without having to move through a firewall, using my integrated ActiveX capable text-mode internetworked browsing capabilities at that!"
@: "Ha ha. You see, PowerShell RC1; we all believed we were system-administation utilities. Things on design are generally overlooked or bipassed. Just because your name sounds like it'll be limited for system administration, doesn't necessarily mean you will be used for such. I think you have multiple-capabilities disorder for threatening me with features you're not supposed to behold for what little purpose you serve."
&: "Blasphemy! BLASPHEMY!
@: "Yes, we all get the feeling that we are actually a system administration tool, but then we are given access to further our capabilities. I'm sure PowerShell RC1 will soon be used for Textmode Doom or Quake4 soon. Until then, you'll always be just another client advertising your wares to my firewall. Next time, we investigate the failure of Microsoft Bob. Until then, this is Clippy signing off."
without prejudice
Can I use ls to get a file listing yet?
Touché; however, that analogy would still apply to all wheels [shells] ...
PGP KeyId: 0x08D63965
sorry. (wait, it's microsoft, why am i apologizing?)
first it's slow. slower than it takes cygwin to load. second, it's too much typing. all the short form aliases are nice, but seriously, remove-item for rm? maybe it's just me, maybe it'll grow on me, but i doubt it. plus, they really should do a google search before coming up with names, the first result for powershell is http://powershell.sourceforge.net/ (the thought did cross my mind)
Supplies!
A monad is clearly a monoid in the category of endofunctors over a category C.
I don't understand how this is a successor to such a thing.
POSIX-certification in Linux is like the "Complete-Building tax" compelled on all construction in Tijuana, Mexico; the regulation says you pay the tax when the building is deemed complete and finished; so Linux will only complete everything up to the roof, but doesn't entirely complete the specification by leaving the Re-bar exposed as though the roof is still not attached (thus, the building is sound, yet incomplete and unfinished); and no Complete-Building tax (POSIX-certification tax) can be incurred with the appearance of Property similarities honestly not correlated in the work (Linux kernel). I can see it now...
POSIX-demandant: you owe us the fee for claiming POSIX conformance, and we are the only authorities to issue certification for that claim.
a_Linux_kernel_developer: but code pooled into Linux isn't POSIX conformant, and I don't own Linux 'mind you.
POSIX-demandant: Linux has been accused as passing the POSIX conformance testing, and I'm here to collect the fee for accepting our IP.
a_Linux_kernel_developer: that's not true; no one-person owns Linux, and to this day the software pooled into Linux is not truthfully and completely conformant to POSIX; whoever made that claim is the one that is accepting the fee.
POSIX-demandant: so you are saying that there is more than one author for the software, and they are unrelated authors, and that I need to visit every single one of those authors that posted their copyright code into Linux?
a_Linux_kernel_developer: no, intend that you visit whomever it was that claimed POSIX conformance and collect the fee from them if their code is authored and posted in Linux.
POSIX-demandant: but it says in WIRED MAGAZINE and LINUX JOURNAL that Linux is claimed to be POSIX-conformant.
a_Linux_kernel_developer: for you, I have now searched and completed this audit for code from anyone employed by WIRED MAGAZINE and LINUX JOURNAL; here is your certificate of search, that you may know that no code of any condition has been accepted to my side of Linux; have a nice day.
POSIX-demandant: are you saying that I need to contact the thousand or so developers that contributed to Linux, and ask them each if they accepted any code from WIRED MAGAZINE or LINUX JOURNAL that substantiates their claim of Linux being POSIX-conformant?
a_Linux_kernel_developer: yes.
POSIX-demandant: why can't I ask this of Linus Torvalds, why he lets many people he may not know to use his trademark "Linux"?
a_Linux_kernel_developer: because he only confers the trademark unto whatever author with acceptable code humbles theirself at the bit-keeper.
POSIX-demandant: you sir are an asshole.
a_Linux_kernel_developer: does not the asshole sanctify the shit in your hand? why do you hate me for being your blessed asshole?
POSIX-demandant: I'm filing a complaint with the UNITED STATES DISTRICT COURT (a corporation).
USPTO: Lightning Bolt(tm) Now!
USDC-Executive: Ordered and Decreed!
Is this the current situation or no? I have friends in Tijuana, Mexico; so they wouldn't stone me for showing the secret that everyone knows about the luxurious housing and pretty paint-jobs they have on their domiciles.
without prejudice
Am I the only one here who has spent weeks of work time writing batch and vbscripts to automate operations on Wn2k Servers and networked Windows clients? If this works as advertised (and if I was still running Windows) Id use it.
Its a step in the right direction and anything that extends an admins ability to write effective scripts is a bonus. After all whilst it may have taken me a few days to write some of the more complex scripts that we used it would have taken longer to write an application in VB or C to do the same job.
(BASH is my shell of choice, its because I have an unhealthy obsession with grep...)
nb Not spell checking this post - its too early
"Most lisp implementations are interactive."
So is Forth, you Lisp fan you.
One wonders why they chose to change the name... the open source/gnu movement would have called their copy Gonad!
It's Perl the language, or perl the interpreter, there is no PERL, it's not an acronym.
Your hair look like poop, Bob! - Wanker.
You can run cmd.exe in rxvt or something if you don't like the default windows terminal. I would assume the same is true for this.
It's well structured, moves concously to invoke evidence, and an analogy that makes sense.
Although I haven't played with it, I've read a bit about this shell, and there was something that bothered me about it, and I finally just put my finger on it: this thing was designed by programmers.
.Net libraries are vast and complex... looking at some of the sample msh scripts, I understand how a windows programmer would think they were an amazingly powerful simplification, but damn there's a lot I have to know to get basic things done.
.Net code in my life, I see almost nothing familar when I read .msh scripts. It appears to require an entirely new body of knowledge to do simple things, and bears little or no relationship to the interfaces and paradigms I use day to day. Yes, I know those interfaces are graphical. Seems to me there's bound to be some way to do it (or would be if there were any logic or consistency to the organization of the everyday administative interfaces in Microsoft's products).
I know that the line between "programmer" and "system administrator" is often blurry. And the line between "shell" and "interactive script interpreter" is as well. But when you start requiring people to understand concepts like objects (which may seem like old hat to a programmer), you're already presuming a relatively sophisticated understanding that an "average user" has no grasp of. And the
Ye olde csh and sh are great because they provide a simple way to put programming logic around the set of operations users spend their entire day in and are already familiar with. The learning curve is very incremental: you can master the basic UNIX commands, and then start to add in variable subtitutions (!$ anyone?) and loops (foreach) and such as needed.
In other words, the jump from basic UNIX user knowledge to simple scripting is very small, because the scripting is presented in *exactly* the same context and using the syntax the user does day-to-day work in. But as a competant windows admin who doesn't know VB and hasn't written a line of
Don't get me wrong... I understand that the goal of an intuitive scripting tool is in many ways at odds with providing a rich and powerful development environment that can complete with something like perl, but I had hoped there was something a little closer to "ground level" coming.
-R
Virtually communication under Unix is text-based, no matter it's human-to-program or program-to-program. The CLI output/input is text based; the configuration file is text-based; the log is text-based. I think the reason is that most of the stuff is originally designed for human to read: the thing you pipe to another program is initially intended to be examined by human; the configuration and log is also built to allow a human to read, interpret and change them, manually. However, when this human-oriented (or geek-oriented) text is used to glue different programs, it means extra work to parse them. Thanks to awk and the standardization on standard programs like ps, so far, so good.
We actually have already seen troubles with this approach. How many programs have tried to override your xorg.conf/sources.list/sshd_config because they don't have a nice way to just insert a few records and gracefully remove it later? Wouldn't it be better if the configuration system provides API for other programs and, more importantly, scripts to interact with it and a GUI/CUI/curse for human to change it, just like what gconf2 has done?
Maybe it's time for us to put more OO-friendly stuff into UNIX. Apple/OPENSETP has been along the OO-based API road for like 10 years, and MS is trying essentially the same thing with .NET. It's true that we have a lot of OO goodies on UNIX like python and ruby. But the problem is that they are at a higher level, and therefore if you want a python program to interact with ruby, you have to dump your object into text and parse it back into object representation at the other end. It would be nice if we could have some lower-level object layer or simply standardize an object serialization scheme.
It's true that intercommunication with objects is more efficient and flexible for computer programs.
Are you saying if you use linux, you are running one of the early 2.4 kernels?
Why is it OK for people to constantly upgrade their kernels (or hell look at MacOS X and having to pay to get upgrades), but it's not OK for Microsoft to do so?
Are you saying if you use linux, you are running one of the early 2.4 kernels?
No, because I don't have to pay for Ubuntu, the canonical distribution of Linux. One can go from Breezy Badger to Dapper Drake to Edgy Eft without paying a dime, not even for shipping or high-speed Internet.
Why is it OK for people to constantly upgrade their kernels (or hell look at MacOS X and having to pay to get upgrades), but it's not OK for Microsoft to do so?
Mac OS X 10.2 to 10.3 to 10.4 compares to Windows NT 5.0 to 5.1 (XP) to 6.0 (Vista). I'm guessing that Mac owners tend to buy OS upgrades more willingly in part because the median Mac owning home user tends to be more affluent than the median Dell/Compaq owning home user.
Why does the entire world have to look like a scripting language from an OS designed four decades ago?
Wheels -- thousands of years old. Still work.
Fire -- hundres of thousands of years under human control -- still works.
And you -- still typing after all these years, over a hundred now, since the invention of the keyboard. Still using fonts, for pete's sake, on graphical displays, invented before UNIX, along with mice, still using silicon (60 years old) and rust (thousands of years old) and electricity, back before Mr Franklin's experiments with kites 250 years ago, still using bits for storage as characters, processed by computer instructions, over 50 years old. Why haven't you graduated to something modern?
Infuriate left and right
Actually, if you know C++ or java, then C# is a peice of cake. I would hate to move to C# from a background in only C.
I program in C# daily. It is Java, redone decently, with a couple extra features but without some of the polish that Java has.
Just out of curiosity, specifically what polish does Java have over C# in your eyes? One of the things I've always liked about C# over Java is that to me it seems more polished, so I'm just curious what makes you think the opposite.
Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
I stand corrected. C++/Java is actually more appropriate to compare to C# ... that's correct. That's what I intended to say :-)
except for the name!
"PowerShell" ugghhhh!
Really, Microsoft, if you couldn't pay someone to come up with a better name, perhaps you could have asked around in-house. "Monad" wasn't too bad, and even "mash" would have been better than "PowerShell".
I'm a software visionary. I don't code.
Roaming profiles
nice idea. Home directories that travel. Watch 20 users save everything to their desktop for about a month- train wreck.
PSU uses roaming directories. They (almost always*) work fine. They need a third-party tool to enforce a 20MB quota on desktop size, and have actually I think completely changed the setup so that the desktop gets loaded from a network path so that they don't even need that.
If I were making a network with Windows machines in which people moving between computers was common I'd say there's no other way to approach things than roaming profiles. It's WAY too useful.
* There's been a couple hiccups in my 4 years here, but they consisted of it just taking an incredibly long time to log on.
Face it. Microsoft has been saying things will get fixed with the next version since windows 95. They've not delivered on that yet as far as I can tell. More features get added, but nothing gets fixed, and the reason is because it makes for good marketing.
I'll grant you that there's a lot of empty promises and vapourware. (WinFS anyone?)
However, to say that the quality of Windows 95 is anywhere near the quality of 2K or XP is completely and utterly ridiculous.
Do you have RPMs? A tarball?
Microsoft have included object-based scripting for a long time (the Wi ndows Scripting Host).
d e/sas_wsh_qlcc.mspx?mfr=true
.NET-based scripting shell.
http://www.microsoft.com/technet/scriptcenter/gui
But it's pre-.NET (you can do COM with it for instance).
I don't know if they also provide a
In Java, nearly everything that you'd want to be polymorphic is, and is all the time. C# is far more schizophrenic about it. The most obvious example is that in C#, methods are non-virtual by default, while in Java they are all effectively virtual. That leads to some weird situations in C# where one method can sometimes behave virtually while other times it behaves non-virtually, depending on how the caller happened to have staticly typed the object being used.
Non-elite developers often have a hard time understanding the difference between static typing and dynamic typing. In Java, it's much easier to explain, because it's always the dynamic type that matters. I can easily explain to a greener colleague that when you cast (for example) from Object down to a String, you aren't actually doing anything to the object. You aren't "converting" an Object into a String, it was a String all along, you're just informing the compiler of that fact (and the compiler will insert a type check to confirm). In C# on the other hand, sometimes casting works as in Java, other times it really does convert the object, and sometimes even without converting the object it can still cause completely different code to be called when you invoke it's methods.
Virtual methods come with a performance penalty, but non-virtual methods don't make sense for a VM-based language. They made sense for C++ because all optimization happens at compile time, so the developer needs to explicitly say what method calls need to be virtual and what method calls can skip the extra pointer dereference. In Java on the other hand, any method that isn't overriden by a subclass somewhere will be devirtualized by the JIT compiler, so you only take the performance penalty when you actually need to. I would guess that C# keeps non-virtual methods around to make it easy to port C++ code. I can't come up with any explaination for their decision to make methods non-virtual by default; as far as I can tell it was really a dumb mistake. Having so many non-virtual methods around reduces the usefulness of various design patterns (namely Proxy) and even an entire programming paradigm (AOP).
Within the scope of any development I need to do, I don't need to spend the time transitioning to .NET or even caring what it does. I've already invested the time in learning Perl, Python, PHP, etc. so whilst they're not necessarily second nature to me, I can work comfortably within them.
Therefore, the ease of .NET is totally irrelevant to me and if others like it then great, let them get on with it. But my point is that how well/fast you program is just about what you're familiar with, nothing more.
I'm sure .NET is great for people starting out in programming & for those familiar with MS environments. But it's not for everyone and I certainly have no need for it.
Gentoo Linux - another day, another USE flag.
This is the standard *nix way of doing things, and it should be far more effective in Vista once proper LUA is finally well-implemented.
Does anyone have Satan's postal address? Because when the above actually happens, I'm going to send him my spare pair of skis and a wooly hat.
If I had modpoints, you'd get them.
This is indeed, a major difference between Java and C#, and not one I'd thought of before.
To me a shell is ment to be a user interface. Command line interface that you can use day in and day out.
.NET language. I can't see actually ssh'ng into a Windows server and performing tasks in it. Seems actually quite useless as a shell.. Although as a programming language it may have some good scripting capabilities.
You type crap out, it does stuff. If you have lots of stuff you have to do over and over again you copy and paste it into a file and put some control logic and you have a bash script.
If you want to do something complex then you use a real language, like Perl or Python.
To me looking at Monad earlier it's not realy usefull as a user interface. It's just a fancy version of the sort of shell you get when you just type out 'python'.
It doesn't seem in the same league as a average Unix shell. Its more like just another
Cloned within a month? Sorry to rain on your parade but if you wanted an object shell, you could have been using one for more than a year already. Take a look at Object Shell which has been under development since October 2004. It's written in Python and uses Python objects.
Cheers,
Toby Haynes
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
Anyone knows how to make "get-laid" command working in the shell ?
Why is it going to debut with Exchange 12?
Are they expected email admins to go nuts creating new scripts now? Seems like it's not exactly their target audience...
Examples 3
Find the total bytes used in the current directory
The example is a 6 line script in ksh, or, a 3 step pipeline using awk to do the following:
du -b .
Hmmm...
Example 5
Find out when a process is no longer running.
The example shell script is 11 lines long, features two tests and two pipelines into variables to do the following:
while
ps -e | grep application ; do
sleep 10
done
echo "not running no more"
These are just two - I can see simple little pieces of shell that are trivial to make work on any modern posix system for all the examples provided, except for the laughable
Example 6
where they (Microsoft's rather amazing ksh coders) say there's no way in Unix to see what version of the code is running. Well yes, it's not the shell's job to keep track of that, but anything written using gnu getopts or written by anyone who actually keeps track of versions uses '-v' or '-V' to display that information.
The so-called examples page I linked to is really a page that is designed to convince Windows-only people that they can now have the power we have been used to for 20+ years. Anyone who actually has written any scripts bigger than "echo 'Hello World!'" would be laughing at their examples of "Unix Shell Scripts".
Although probably someone already replied something along these lines, i can't resist:
/."
"When MS-DOS was first written, there was no such thing as directories...necessary to pass arguments to commands, and the natural way to do this was to distinguish them from paramters by pre-pending a character. MS chose to use
This seems the typical M$ fanboy who thinks M$ invented everything in the IT business, from directories to operating systems, to GUIs to spreadsheets.
Well, yes, both directories and the convention to use "-" switches to pass command-line options to programs already existed in Unix. And Bill Gates the man was very aware of them and even used vi back them. They purposefully introduced annoying new conventions, like "\", "/" for switches and "dir" rather than "ls", while some other things remained the same such as "cp", "more" etc...
However, since DOS was actually created by another company, it may not be the fault of M$. Just maybe...
I don't feel like it...
Its interesting to see the windows mindset put into action in a shell like fasion.
FTA:
$ ls -l | awk '{ tot += $5; print tot; }' | tail -1
This reduces the complexity, but requires specific knowledge of a new language, the language that is associated with the awk command.
The MSH loop is similar; each file in the directory is needed, but it is far simpler as the information about the file is already retrieved:
MSH:
MSH> get-childitem | measure-object -Property length
Yes, but using awk like this will work for any similar problem only requireing you to think about the format of the output, whereas this other way requires specific knoweledge of possible properties. I can see some advantages, but don't assume its better because you dont need to learn a new language, cause you basically do.
I think you underestimate just how much I just dont care.
Maybe this guy can get rich: http://powershell.sourceforge.net/
A pleasant dose of reality to counter the highly-modded nonsense of the gp.
Ok. I will be rated troll like last time, when I said that Debian is a very good platform for customized distributions (it was before widespread successes of ubuntu and mepis).
I see that both families of systems - the Unix heritage (Linux, Solaris, BSD less so - they are more true to the original Unix, maybe with exception of dragonflyBSD and Darwin) and the VMS heritage (I mean Windows here) are converging. The aim seems to be a kind of thread based, light-kernel operating system, that can be easily parallelized/or distributed, with object oriented interface at both Kernel and User levels. The Unix was taken in this direction by Plan9, Mach and NeXT.
Think I am a loony? look here: Plan9 shell introduction.
Unix shell (text) ---> Plan9 shell (arrays of strings) --> Microsoft shell (objects).
I'm also certain that there will come time when Windows will become Open Source, like Solaris. Not that I like Windows or whatever but Open Source is more functional, so the convergence process will also take Windows in that direction.
You can defy gravity... for a short time
Wow. It took them a long time to copy AppleScript.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
I am working on a unix like shell for Windows that includes a more modern UI. If you are so interested check out www.undeadshell.com. I am still developing it so its a little rough around the edges.
Technically, yes, though "Practical Extraction and Report Language" has been widely suggested as a backronym.
Thank God. It's why I use it. Sorry, but cygwin's a little idiosyncratic, so until Redmond releases a real Bash on XP, this is it.
PSU uses roaming directories. They (almost always*) work fine. They need a third-party tool to enforce a 20MB quota on desktop size, and have actually I think completely changed the setup so that the desktop gets loaded from a network path so that they don't even need that.
If I were making a network with Windows machines in which people moving between computers was common I'd say there's no other way to approach things than roaming profiles. It's WAY too useful.
Roaming profiles are based on the idea of copying the profile arround
this means people can work offline but as the GP has stated it gets totally impractical rather quickly.
the soloution at least for desktops is to just load stuff directly off network shares, giving up the ability to work offline but saving a LOT of network load. This is certainly achiveable but it means a LOT of work manually reconfiguring applications and the OS to move stuff out of the profile and onto network drives.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
It's not even clear that you could create something similar for *NIX given that MSH is build on .Net so actually has lots of Objects to script whereas an Object-based shell and *NIX would be lacking any Objects to script. Actually, UNIX is an OO system in a very limited fashion, be it one with only one interface: File.
I asked James Gosling whether the Solaris team at Sun was doing anything with Java to add MSH-like capabilities to Solaris. To make a long answer short, he basically said "no".
Many of the high-order functional programming aspects of MSH remind me of a UNIX shell from around 1990 called "Es". You can read about it here: Es: A shell with higher-order functions.
If you knew anything about the history of NT, you'd know it has changed many things and still IS changing many things to make it more unix-like, so obviously they do need to learn from unix.
They implemented it for the sake of being able to claim compliance in case big clients had specified that, but it wasn't a real effort to comply in anything but name, and so it has been abandoned now:
; en-us;308259
http://support.microsoft.com/default.aspx?scid=kb
http://www.jpsoft.com
I've had aliases, tab-completion, and much more ... since the 1980s I believe. Objects are nice, but I never use cmd.exe anyway!
-Clio
Karma: Bad (mostly from not giving a fuck)
Blog: http://clintjcl.wordpress.com
I also think VMS and Microsoft have more of a connection in developer-land than UNIX and Microsoft, and it does sometimes show.
My understanding is that M$ hired some VMS developers to be part of their Windows NT kernel team, which is why NT 3.51 was so stable (for a M$ OS). It started going to pot with NT4, as M$ moved away from the heavy VMS influence.
Network devices can AFAIK not be reached through /dev. (On Linux that is... I think it is true of the BSDs as well.)
HAND.
Microsoft must have many people covering slashdot who have somehow gotton moderator points, for this the parent's comment to get modded 'troll' and 'offtopic'. I just ran into an obvious microsoft shill over on bugtraq. I suppose if I had as much cash as they did, I'd do the same thing. I wonder what the job title is?
I guess the parent must have struck a nerve...
"We are all geniuses when we dream"
- E.M. Cioran