News for hackers. Stuff that matters.
Re:The Rule of Silence (2006) by skrebbel on Tuesday December 13, 2016 @06:58AM (#13166158)
In 1993, someone made exactly your argument a in Redmond board room, and so many people agreed that what you describe could be adequately called "The Windows Philosophy".

All settings in a database and not text files (the registry); a command-line that pipes data, not text (PowerShell). Tailored UIs to change settings, not magic invocations and obsure text file syntaxes.

I guess most developers on HN are also aware of the downsides of this philosophy. If not, try configuring IIS.

Re:The Rule of Silence (2006) by rtpg on Tuesday December 13, 2016 @07:15AM (#13166225)
Surely you can reconcile structured representations and something like the Unix command line.

Imagine if the default wasn't bash, but something like Ruby + pipes (or some other terse language).

What is the argument for shell scripts not working on typed objects? How much time has been lost, how many bugs have been created because every single interaction between shell scripts has to include its own parser. How many versions of " get file created timestamp from ls" do we need?

Something Windows does get right is the clipboard. You place a thing on the clipboard, and when you paste, the receiving program can decide on the best representation. This is why copy-pasting images has worked so magically.

I could see an alternative system where such a mechanism exists for shell programs.

Re:The Rule of Silence (2006) by pjungwir on Tuesday December 13, 2016 @01:29PM (#13169215)
Wow, the clipboard is really a thought-provoking comparison. I'm not sure if many people are quite aware of what you said, unless they've done desktop programming: when an application puts something on the clipboard, it can put multiple formats, so that when something else wants to retrieve it, it can use whichever format it prefers. This is how you get such good copy/paste interoperability between programs.

What if pipes worked the same way? What if we added stdout++, stderr++, and stdin++, and when you write to stdout/err++, you can say which format you're writing to, and you can write as many formats as you like. And then you can query stdin++ for which formats are available, and read whichever you like. And if stdin++ is empty, you could even automatically offer it with a single "text" format, that is just stdin(legacy).

The appeal of the Unix text-based approach is a kind of "worse is better". It is so simple and easy, compared to Powershell. The clipboard idea seems like it has a similarly low barrier to entry, and is even kind of backwards-compatible. It seems like something you could add gradually to existing tools, which would solve the marketplace-like chicken-and-egg problem.

You could even start to add new bash syntax, e.g. `structify my.log || filter ip_addr || sort response_size`. (Too bad that `||` already means something else....) Someone should write a thesis about this! :-)

Re:The Rule of Silence (2006) by buzzybee on Tuesday December 13, 2016 @04:54PM (#13171472)
Didn't the Amiga do something like this? (I'm not actually familiar with its OS, I've just seen allusions to how it handled file formats)
Re:The Rule of Silence (2006) by anexprogrammer on Wednesday December 14, 2016 @07:12PM (#13181046)
Amiga had datatypes.library, and also IFF filetypes (that were mostly lovely) designed be EA for DPaint. It's the way the world should work.

Let's say you're MS writing word for the Amiga.

They provide a datatypes description for doc files. this gives ability to read and write the format, and fingerprint it (not based on extension).

Now any program, old or new, that wants to read or write doc files can do. It's just there.

Re:The Rule of Silence (2006) by chei0iaV on Tuesday December 13, 2016 @07:55AM (#13166415)
The problem is that now simply providing user-friendly output is not enough. For every program or script you throw together you need to provide the text output for the user, and then the type object stream for piping. And then, the user would need to read documentation to see how to access each piece of data, what data type it is, what data type the other command takes, and maybe consider how to convert one to the other.

... at which point you basically have a scripting language, so you could just as well use an existing one (e.g. Ruby).

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @09:20AM (#13166917)
> The problem is that now simply providing user-friendly output is not enough. For every program or script you throw together you need to provide the text output for the user, and then the type object stream for piping.

In PowerShell if the result of a command is just an object the object is pretty-printed to the console in practice ends up looking pretty much like what a Unix command would have given you.

Re:The Rule of Silence (2006) by chei0iaV on Tuesday December 13, 2016 @10:49AM (#13167638)
With generic pretty-printing, your program output becomes generic.

Compare the output of "df -h" vs the PowerShell equivalent "gdr -psprovider filesystem", for example. One provides the data in dense (easy to follow) rows, while the other spaces it out across the whole screen, leaving large gaps of empty space around some columns while also cutting off data in others. The difference is especially noticeable of you have network shares with long paths.

PowerShell is probably nice for scripting, but I wouldn't want to have it as my shell.

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @11:02AM (#13167748)
You can pretty easily pass it to select and get just the properties you care about, or you could output to a different format with the various out- commands. I find it pretty good as a shell.
Re:The Rule of Silence (2006) by __jal on Tuesday December 13, 2016 @03:01PM (#13170365)
Options to select output? Sounds like advice from the Rule of Silence.

But.

- People above were just complaining about having to use sed to tweak output. I don't see why they would prefer a built-in filter to an external one. The external filter is far more flexible, and if that isn't enough, you can replace it.

- I'm generally not a fan of applications that tailor their output to what they think the human wants. Unless there is a deeply compelling reason, I want to see the same output on pts/0 as something down the pipeline. The reason for this is that picking up environmental hints to serve as implicit configuration is hacky, subject to error and and can later be the cause of really difficult-to-find bugs.

Perhaps I'm just irredeemably brainwashed. If you like a typed command line, Redmond has your back. For me, wanting types is a signal that I should start considering whatever little shell hack I'm working on complex enough to take it to a language that wasn't designed for ad hoc interactive use.

And at the same time, I really, very much do not want my command line to look like C#.

I get that a lot of folks these days are mostly GUI users who maybe type a little at git or run test suites from the command line, and not much else. I get why things like Powershell are appealing to such folks[1]. But when the command line is your primary interface, strong typing and OO hoop-jumping is huge waste of cognitive energy.

I do feel that Unix, to a first approximation, got the balance somewhere close to right. Loose coupling with lot of shared commonalities instead of a rigid type system and nonexplicit magic works really well for me, and if tighter coupling is a good idea, then I'll build it.

[1] Why they want to radically change the command line instead of using their favorite language to do systems stuff from the comfort of wherever they spend most of their time, I do not get.

Re:The Rule of Silence (2006) by emodendroket on Wednesday December 14, 2016 @03:00PM (#13179157)
I feel compelled to point out, re-reading this, that you've misunderstood. You pass the output to the Select command and indicate the object properties you want; it's not a feature that has to be built in into each command.
Re:The Rule of Silence (2006) by nailer on Wednesday December 14, 2016 @12:12PM (#13177582)
> People above were just complaining about having to use sed to tweak output. I don't see why they would prefer a built-in filter to an external one.

You don't see why someone would prefer 'select' to scraping with grep or awk?

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @03:38PM (#13170742)
Yeah, wow, all I have to do is write a bunch of regular expressions tailored to the unique output of this command instead of passing in a list of property names. It's so easy.
Re:The Rule of Silence (2006) by dahauns on Tuesday December 13, 2016 @06:26PM (#13172275)
To add to that: a list of property names you don't even have to exactly know beforehand, since the shell can easily deliver you the exact data structure and metadata of any object (cmdlets, parameters, results,...) usable on the shell.

I find the idea baffling that basically having to have the whole syntax tree memorized instead of the shell providing it for me is somehow less of a "waste of cognitive energy".

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @08:58PM (#13173189)
I really think people are mistaking "I'm not familiar with it" with "it's bad and poorly designed" because they've forgotten what it was like to first use the Unix command line.
Re:The Rule of Silence (2006) by nailer on Wednesday December 14, 2016 @12:19PM (#13177667)
Slightly more readable posh version:

    Get-PSDrive | Where Provider -like '*FileSystem'
Re:The Rule of Silence (2006) by michaelcampbell on Tuesday December 13, 2016 @09:35AM (#13167014)
> in practice ends up looking pretty much like what a Unix command would have given you.

So... no real improvement, then?

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @09:40AM (#13167057)
The improvement is that piping commands together doesn't require tedious text-munging while the console output looks basically the same. Which I think you could have figured out if you thought a little harder before jumping to snark.
Re:The Rule of Silence (2006) by romaniv on Tuesday December 13, 2016 @11:31AM (#13168059)
>What is the argument for shell scripts not working on typed objects?

Typed objects can make it harder to pipe commands together. How do you grep a tree when tree is an actual data structure and grep expects a list of items as input? You would need to have converters. Either specific converter between tree and list, or a generic one: tree->text->list.

>Something Windows does get right is the clipboard.

It useful, but the actual implementation is pretty bad. Opaque, prone to security issues, holds only single item, cannot be automated.

Re:The Rule of Silence (2006) by JadeNB on Tuesday December 13, 2016 @03:22PM (#13170579)
> Typed objects can make it harder to pipe commands together. How do you grep a tree when tree is an actual data structure and grep expects a list of items as input? You would need to have converters. Either specific converter between tree and list, or a generic one: tree->text->list.

To be fair, untyped objects also require converters, but at every boundary. That is, instead of having some pipes of the form `program -> mutually agreeable data structure -> program` and some pipes of the form `program -> unacceptable data structure -> parser -> program` (as happens with a typed language), you are guaranteed by a text-based interface always to have pipes of the form `program -> deparser -> text -> parser -> program`.

Re:The Rule of Silence (2006) by rtpg on Tuesday December 13, 2016 @09:51PM (#13173398)
grepping a tree would not be hard. You simply go down to the leaves and "grep" on the properties themselves. Inversely, structured data lets you easily get to a property.

For example, if you grep the output ls -l for a file named "1", you'll also get files with 1 in their timestamp. In text land, you have to edit the ls command to get simpler output. In structured land, you could edit your filter: ls -l | grep name~=1

You could imagine various structured data filter tools that could be built that wouldn't require modifying the input.

Though in this example, you can easily use awk to select the column, wouldn't it be nice to not have to worry about things like escape characters when parsing text?

Re:The Rule of Silence (2006) by patmcguire on Tuesday December 13, 2016 @06:17PM (#13172209)
How about protocol buffers and content negotiation? Your pipe figures out a proto that program a can emit and program b can consume.

ls -> repeated FileDescriptor files; | repeated string names;

Where FileDescriptor is whatever it needs to be, has all the info ls -l does. You have a heirarchy of outputs: if the next takes FileDescriptors, you give it FileDescriptors, if it doesn't you give it strings.

What would go to stdout goes through a toString filter.

Re:The Rule of Silence (2006) by Kalium on Tuesday December 13, 2016 @12:51PM (#13168802)
You are absolutely, completely correct. The two can certainly be reconciled!

There is one possible complication, though. The two would need to be reconciled in the same way by everyone who wants to write a shell tool. Given that even fairly simple standards (RSS, HTML, etc.) cause lots of failures to comply, what are the odds of near-universal compliance in a larger and more diverse ecosystem like shell utilities?

Re:The Rule of Silence (2006) by fulafel on Tuesday December 13, 2016 @09:26AM (#13166964)
Image processing works pretty well in shell pipelines because image formats are generally self-identifying.
Re:The Rule of Silence (2006) by cyphar on Tuesday December 13, 2016 @07:27AM (#13166285)
> What is the argument for shell scripts not working on typed objects? How much time has been lost, how many bugs have been created because every single interaction between shell scripts has to include its own parser. How many versions of " get file created timestamp from ls" do we need?

Aside: that's what the stat command is for. My big concern with types is how would you make sure that the output of a command will always have the right types? Otherwise you'll have runtime type errors which would be just as bad as runtime parsing errors.

Re:The Rule of Silence (2006) by junke on Tuesday December 13, 2016 @09:58AM (#13167186)
> Otherwise you'll have runtime type errors which would be just as bad as runtime parsing errors.

Parsing errors in script shells can easily go unnoticed (until you realize your data is corrupted).

Re:The Rule of Silence (2006) by tejtm on Tuesday December 13, 2016 @05:57PM (#13172048)
> How many versions of " get file created timestamp from ls" do we need?

none? 'ls' is for humans. 'stat' is for scripts.

Re:The Rule of Silence (2006) by mattbee on Tuesday December 13, 2016 @09:02AM (#13166780)
What you get from text + availability of source code = a set of practical documentation that shipped right where you needed it.

Microsoft forgot (and still forget) the documentation for Windows - if you want a nice A-Z reference for the bootloader, or kernel, or shell or IIS's configuration file or half the command-line tools, you're usually out of luck. The official place is often an inaccessible, badly-written knowledgebase article written from a task-based, usually GUI-based perspective.

It never mattered that they'd implemented a more coherent system full of better ideas, because the only way they'd tell you about it is through the GUI.

The MSDN CDs from 20 years ago were really good for a complete programmer's reference, but 1) I'm not sure how well they kept that up and 2) I could never find anything as comprehensive for sysadmins.

Re:The Rule of Silence (2006) by JdeBP on Tuesday December 13, 2016 @10:23AM (#13167419)
You should have kept looking at the MSDN and TechNet, because the idea that there's no documentation because it has been forgotten, or indeed the idea that there is no documentation, is utter nonsense.

Windows Server 2012 Command-line reference:

* https://technet.microsoft.com/en-gb/library/cc754340(v=ws.11...

Windows XP A-Z Command-line reference, that is actually named that:

* https://technet.microsoft.com/en-gb/library/bb490890.aspx

Doco for the wdsutil and md commands, picked at random:

* https://technet.microsoft.com/en-gb/library/cc771206(v=ws.11...

* https://technet.microsoft.com/en-gb/library/cc754711(v=ws.11...

bcdedit command references:

* https://technet.microsoft.com/en-gb/library/cc731662(v=ws.11...

* https://msdn.microsoft.com/en-gb/library/ff542205(VS.85).asp...

And so forth. There's a huge amount of doco, including reference doco.

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @09:22AM (#13166933)
This perspective sounds a bit out-of-date when you consider how heavily they're pushing to get PowerShell into sysadmins' workflow. The online MSDN docs are also often pretty good.
Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @09:19AM (#13166905)
The Windows way of working is only "self-evidently" horrible if you're used to the Unix way of doing things. There are real defects that are legacy baggage (running as admin by default is not good, the registry probably shouldn't be a single database or at least should have better segregation between apps) but having a UI and having real objects in the shell isn't one of them. And I hardly think the registry and PowerShell, which came out nowhere near the same time, were conceived of at the same time.
Re:The Rule of Silence (2006) by skrebbel on Tuesday December 13, 2016 @03:12PM (#13170494)
> And I hardly think the registry and PowerShell, which came out nowhere near the same time, were conceived of at the same time.

I believe that the registry, in a way, caused PowerShell.

PowerShell works the way it does because Windows is structured data all the way down. A text-based shell a-la bash would not be very useful for Windows sysadmins. If you want to do Windows automation (e.g. on a cluster of windows servers or whatnot), you need to process and manipulate structured data (server settings, user permissions, AD groups, whatever). Hence, a shell and scripting language for doing just that.

If Microsoft hadn't moved from .ini files to the registry between Windows 3.1 and 95, I don't think PowerShell would've had the same design goals as it does now.

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @04:40PM (#13171334)
Perhaps, but PowerShell wouldn't look the way it does without the CLR being ready to hook into either. And I could easily see just having applications that interact with the structured data but return text -- that's what all the old stuff did.
Re:The Rule of Silence (2006) by numbsafari on Tuesday December 13, 2016 @09:35AM (#13167015)
S/PowerShell/Windows Scripting Host/ ... which was later than the registry, but not much.
Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @09:42AM (#13167067)
I'd say PowerShell and the WSH are fairly different but I've worked very little with the latter.
Re:The Rule of Silence (2006) by Pxtl on Tuesday December 13, 2016 @07:54AM (#13166410)
The simple fact that the Registry doesn't have comments is ludicrous.
Re:The Rule of Silence (2006) by ygra on Tuesday December 13, 2016 @08:07AM (#13166475)
What database has?

To clarify: The registry is a database for OS or application stuff (caches, settings, etc.). It's not meant to be user-editable and outside arcane trouble-shooting stuff you're unlikely to ever have to venture in there.

Re:The Rule of Silence (2006) by mr_overalls on Tuesday December 13, 2016 @11:15AM (#13167872)
Oracle, for one, has had it for a long time.

"Use the COMMENT statement to add a comment about a table, view, materialized view, or column into the data dictionary."

https://docs.oracle.com/cd/B19306_01/server.102/b14200/state...

Re:The Rule of Silence (2006) by teddyh on Tuesday December 13, 2016 @02:46PM (#13170191)
Also PostgreSQL (since 7.0, released in 2000):

https://www.postgresql.org/docs/current/static/sql-comment.h...

Re:The Rule of Silence (2006) by Pxtl on Wednesday December 14, 2016 @07:31AM (#13175480)
Also mssql, the extended property ms_description can be applied to objects and columns and appears in SSMS as comments.
Re:The Rule of Silence (2006) by zajd on Tuesday December 13, 2016 @09:11AM (#13166844)
> It's not meant to be user-editable

I think that's kind of a stretch since regedit has been a part of windows as long as I can remember.

Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @09:23AM (#13166938)
I'd say regedit is not really the preferred method for anyone to interact with the registry though.
Re:The Rule of Silence (2006) by chungy on Tuesday December 13, 2016 @12:07PM (#13168373)
I'd say that regedit is integral to day-to-day use of Windows.
Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @03:36PM (#13170731)
Well I don't know what in the world you're doing but I almost never use it.
Re:The Rule of Silence (2006) by gayprogrammer on Tuesday December 13, 2016 @12:26PM (#13168574)
> arcane troubleshooting stuff

... is exactly the reason to have useful comments in there.

Re:The Rule of Silence (2006) by Pxtl on Tuesday December 13, 2016 @01:44PM (#13169401)
Config files do, which is what the Registry replaces.
Re:The Rule of Silence (2006) by brusch64 on Tuesday December 13, 2016 @09:34AM (#13167008)
Adding to that my favourite pet peeve - translated UIs for server processes.

Every time I come around a German installation of IIS or SQL Server I'm cringing. Googling the right solution and then trying to figure out how they've translated this option is something I can't stand.

Re:The Rule of Silence (2006) by TheCoelacanth on Tuesday December 13, 2016 @09:49AM (#13167123)
For the best of both worlds, why not something that is both text and structured, like JSON or sexps?
Re:The Rule of Silence (2006) by willismichael on Tuesday December 13, 2016 @10:18AM (#13167358)
Yes! I don't know how many times I've had to learn yet another one-off configuration syntax, logging format, or template language and wondered why oh why doesn't this use s-expressions (or even json?)... I fail to understand why the same people who are so allergic to lisp-like syntax will happily work on some project that makes you context switch between about a dozen different syntaxes once you count in all of the configuration, templating, and expression languages, some of which are embedded in string literals with absolutely no tooling or syntax highlighting.
Re:The Rule of Silence (2006) by redcalx on Tuesday December 13, 2016 @07:22AM (#13166247)
I think IIS is a bad example, many of it's config settings are a complete mess of partially obsoleted legacy settings. And some of it has no definitive reference, e.g. the threading and concurrency settings which seem to change with each IIS version, but no documentation is available that defines what settings are available in each version.
Re:The Rule of Silence (2006) by BurningFrog on Tuesday December 13, 2016 @10:21AM (#13167397)
The philosophy sounds great.

Maybe the downsides are because of the execution?

Re:The Rule of Silence (2006) by sp332 on Tuesday December 13, 2016 @10:35AM (#13167509)
Yeah, the registry has been solid for years now, which pretty clearly shows that the troubles were in implementation and not the philosophy. And powershell's object-passing has been pretty great from the start, so I'm not even sure how that's an argument against.
Re:The Rule of Silence (2006) by Chris2048 on Tuesday December 13, 2016 @07:21AM (#13166244)
The windows registry is not too bad. You can easily store this stuff in a SQLite file though: https://www.sqlite.org/appfileformat.html

PowerShell' object-oriented nature is great btw!

Re:The Rule of Silence (2006) by Pxtl on Tuesday December 13, 2016 @07:55AM (#13166421)
Around the office when teaching PowerShell we say it takes about two Googles per line. That's not a compliment.
Re:The Rule of Silence (2006) by setq on Tuesday December 13, 2016 @08:09AM (#13166484)
This is in line with my experiences with powershell (or powershit as we refer to it).

The canonical example of the complete failure and total friction is in the simple case of obtaining a file from a web server and sticking it on disk. This is the steps:

1. Try various built in cmdlets. Eventually find one that works.

2. It's a big file and gets entirely buffered in RAM and takes the machine out. You don't get the privilege of finding this out until you try dragging a 20GiB vhdx image from a build server to plonk on your SCVMM platform. That conks it completely.

3. So you think you'll be clever and just use curl. Oh no there's a curl alias!

4. Every damn machine gets sent a reconfig to remove this stupid alias.

5. Then when you do get there you find that the curl output pipe just pukes multibyte garbage out. 20GiB of it that took a long time to come across the wire.

6. You tell curl to save the file directly. Might as well have used cmd.exe by now!

So 8 Googlings and 3 hours later you got a fucking file. Every time I use powershell that is my life.

Re:The Rule of Silence (2006) by ygra on Tuesday December 13, 2016 @08:23AM (#13166550)

    man iwr
Oh, there's an OutFile parameter. Let's see what it does

    man iwr -param outfile
How nice, it writes the response directly to a file instead of to the pipeline. The curl alias actually points to the very same cmdlet.

Not to excuse bad examples on the internet (there are lots of people who fail to grasp PowerShell and still try to write articles and how-tos), but PowerShell having built-in documentation for commands and parameters is actually fairly easy to figure out from within the shell. Admittedly, once you learn the basic half dozen or so cmdlets you tend to use all the time.

You're free to ask me (or on SO, I tend to answer PowerShell questions there) if you're having trouble. Figuring above out took literally just 20 seconds. Really. I'm kinda sick of people cursing and blaming tools just because they're different from what they're used to. If I did the same and complained about bash and Unix (which I rarely find the need or time to learn) I'd be tarred and feathered in seconds ...

Re:The Rule of Silence (2006) by setq on Tuesday December 13, 2016 @10:21AM (#13167399)
It doesn't work for large files. Try iwr with outfile on a 16Gb file on a 4/8Gb machine.

Knowing all the edge cases, exceptions and places where reality breaks down is the problem.

Where software should indeed work with the principle of least surprise, Microsoft have patented the principle of most inconvenient surprise.

Also SO has one small comment about this which didn't exist when I discovered it. I had to use windbg to dump the CLR heap and find out that there were a crap ton of buffers...

And that's every day using powershell. It's even worse if you trip over someone else's cmdlets which aren't aware of the correct harry potter style incantations to issue that don't cause the universe to implode.

The whole thing is a joke. A bad one.

Re:The Rule of Silence (2006) by ygra on Tuesday December 13, 2016 @11:21AM (#13167928)
Unless you also write things to the pipeline via -PassThru specifying -OutFile will read in 10K chunks and write them to the file. No memory apart from that buffer is used. Look at the source, it's public. My PowerShell instance uses 38 MiB of memory the whole time during the download, regardless of the file size.
Re:The Rule of Silence (2006) by setq on Tuesday December 13, 2016 @01:47PM (#13169433)
What's in your $PSVersionTable?

I'm doing this on windows 2008 server.

Re:The Rule of Silence (2006) by ygra on Tuesday December 13, 2016 @04:56PM (#13171484)
5.1 on Windows 10. Admittedly, I never really tried iwr on older versions. Heck, the last time I tried downloading something with PowerShell to a file I went the WebClient.DownloadFile route, so it's been a while.

You can probably install a more recent version of WinRM on that machine, though (or by now probably the open-source version of PowerShell).

Re:The Rule of Silence (2006) by xenophonf on Tuesday December 13, 2016 @09:37AM (#13167033)
To be fair there are many, many examples of downloading files using System.Net.WebClient. In fact that is how the first several search results for `powershell download file` tell you to do it despite Invoke-WebRequest being included in PowerShell since 2012. `get-help download` doesn't return anything useful. Contrast that with `apropos download`, which at least on FreeBSD includes wget in the search results.
Re:The Rule of Silence (2006) by TeMPOraL on Tuesday December 13, 2016 @08:19AM (#13166523)
Well, for many years I had that experience every time I tried to use UNIX command line. I think it's just the issue of familiarity.
Re:The Rule of Silence (2006) by ygra on Tuesday December 13, 2016 @08:11AM (#13166495)
How many Googles per line do Unix shell scripts need, assuming equal familiarity with both? As for me, I understand PowerShell fairly well, but hate having to deal with Unix utilities and for me the amount I have to google to get stuff done on a Unix command-line is significantly higher than with PowerShell.

It's just that once you learn how to use a tool you don't have to think about how to approach a problem anymore, you just do it. And then, when learning a completely different tool you have to learn again. Surprise.

Re:The Rule of Silence (2006) by Pxtl on Tuesday December 13, 2016 @02:42PM (#13170141)
I should've explained the background - these are C# coders coming to Powershell, not Unix admins.

The problem with Powershell is that it tried to have its cake and eat it too - it wants the lightweight IDE of Unix-philosophy tools, but the detailed structure of C# objects. The problem is that the former is tightly tied to the simple common api of raw text, and the latter is inherently dependent on an intellisense-oriented IDE and static typing that heavily hints the names and parameters of useful actions.

Powershell manages to combine the worst of both worlds - objects means more complex APIs, but without the powerful IDE guiding you around those APIs.

Re:The Rule of Silence (2006) by justinlaster on Tuesday December 13, 2016 @08:28AM (#13166577)
I'm sorry what? Powershell has to be one of the better documented systems I've used in quite some time, and the sytnax lends itself to a certain "learning velocity" if you will. I also find that the general standard for tooling is a bit higher than say, bash.

It's also been really neat to see how well Powershell lends itself to extending other applications.

Re:The Rule of Silence (2006) by norswap on Tuesday December 13, 2016 @08:36AM (#13166625)
For people who don't know the standard Unix tools, I expect much the same.
Re:The Rule of Silence (2006) by emodendroket on Tuesday December 13, 2016 @09:24AM (#13166944)
Well, sure, if you don't know PowerShell or use it often you'll need a lot of help. That just sounds like an argument for slavish adherence to existing conventions till the end of time -- in which case why bother with a new language?
Re:The Rule of Silence (2006) by GrinningFool on Tuesday December 13, 2016 @10:29AM (#13167462)
Yep, it's really ground breaking stuff[1]

It actually is really good, but I do find it interesting that the first and last loser of the desktop wars got there a good long time ago.

[1] https://en.wikipedia.org/wiki/Workplace_Shell , https://en.wikipedia.org/wiki/Object_REXX

Re:The Rule of Silence (2006) by ajuc on Tuesday December 13, 2016 @09:07AM (#13166815)
Powershell was much later invention. Agreed otherways.
Re:The Rule of Silence (2006) by lolpowershell on Tuesday December 13, 2016 @10:20AM (#13167383)
lol at powershell in 1993
Re:The Rule of Silence (2006) by skrebbel on Tuesday December 13, 2016 @03:18PM (#13170543)
Tell me that somehow writing this comment was worth making a new HN account for.