I felt the same way for years - I was a Slashdotter, used to run a Linux desktop for about a decade and talk about 'MS' and occasionally use a dollar sign. Hey, I was 20, everyone was doing it.
I recently had a conversation about how much I like powershell on HN. Someone called me a 'microshill' and I smiled a smile that comes with age.
I use Windows daily, and I'm not sure how to feel when I consider the daily attempts against my choices and privacy. It feels like they try to be nice but unintentionally mess up sometimes.
Feelings aside, they've done solid open source work, quality of which can't be overstated.
But... Powershell, really? The Linux subsystem exists now, you know :)
edit: the Powershell thing was just an opinion tease, come on everyone^^
> I'm not sure how to feel when I consider the daily attempts against my choices and privacy.
This is my biggest complaint about Windows as a power user. I have no control over it: I can't shut off all of the telemetry reporting. I can't turn off Defender's active scanning and have it stay off for more than a day. I can't say "Don't reboot for upgrades between 6am and 10pm." "<video game> has been denied access to the video drivers" halfway through a game, forcing a restart.
I used Windows for my daily computer from 98 to 7. My work machines transitioned to Macs around that time, and I made that same transition with my other computers around the same time - the build quality and battery lifetimes were just too good to ignore. My gaming rig stuck with it and made the leap to 10, but it aggravates me in one fashion or another every time I turn it on.
So, I guess I'm headed the opposite way of most commenters. I considered XP and 7 to be the glory years for a daily driver, and now I can't get away from the platform fast enough.
Although I get your point, Windows has more powerfull configuration options than you might think as a user. E.g.Windows defender can be permanently disabled through administrative templates for your computer.
Well, for awhile. Software updates come along and re-enable these features all too frequently.
Not to mention, this feels a bit like how we used to have to manage Linux on the desktop: don't like X? Here's a configuration file you can edit. At least until another update comes along and breaks it.
It's been years since I've enjoyed chasing down new settings and finding what was reset every few days.
> It's my fucking computer, if I really don't want to restart right now, what's the big fucking deal?
The big deal is that, it's probably a pretty important security update. Forcing a patch prevents you from turning into the poster a few steps above, complaining that Windows is insecure and people lost data because of it.
> Forcing a patch prevents you from turning into the poster a few steps above, complaining that Windows is insecure and people lost data because of it.
Restarting the computer without ability to abort doesn't sound like a good data retention plan.
> I can't shut off all of the telemetry reporting. I can't turn off Defender's active scanning and have it stay off for more than a day. I can't say "Don't reboot for upgrades between 6am and 10pm." "<video game> has been denied access to the video drivers" halfway through a game, forcing a restart.
I can't speak to your video driver issue (reinstall it maybe?), but the rest of the things certainly can be done.. You can turn off Windows Defender permanently (or at least active scans). You certainly can schedule updates to 2 AM.
Not within Windows 10. At least, not without editing registry entries or setting yourself up with a domain to administrate settings as if you're part of a corporation. These are things that require too much work to research and (repeatedly) implement when there are other equally good OSes out there. I could spend an equivalent amount of effort and have as good of a day-to-day experience with Ubuntu or Debian.
Availability of gaming titles aside, there's just nothing that Windows does anymore that other OSes don't do.
You'd think this would be true, but I've written a few non-trivial things in PowerShell and I always found it frustrating. The problem with the object pipeline is discoverability. When I'm writing a Bash script and I don't know what a command will return, I can just run it and see. Meanwhile, in PowerShell, I have to rely on repeated attempts at pretty-printing and/or external documentation, and I've found both to be lacking in several cases.
While I'm at it, another thing I didn't understand was why they chose to copy Bash's behavior of having anything printed or returned un-suppressed inside a function be part of its return value. That makes it harder to refactor and clean up your code.
I rely a lot on the built-in ConvertTo-Json command as a good way to get a sense of a full PS object. I've seen very neat GUI "object browser" tools you can pipe to from PS in screencasts, but don't do enough PS work to ever recall their names.
Every time I fired up powershell to give it a try, I'm always immediately turned off by:
- How sluggish it feels. A remote bash shell on a raspberry pi feels more responsive to me than a local PS on a beefy PC.
- The way it is opened as a command prompt, in an unresizeable window (unless you fiddle with the settings every time), with no possibility of using shortcuts for copy/paste.
- Also, the default color scheme and font is horrible. I'm aware that it is trivial to fix it in the settings, but why turn off immediately first time users ?
For a normal user (not an IT admin) what are the benefits of learning Powershell for normal day use ?
What would be the best place to start, are there some good tutorials ?
I've tried and failed to dig PowerShell as well - I had someone explain to me once that it really only "feels good" when you're constantly doing stuff that's directly in its wheelhouse. If you're more developer than sysadmin and you only occasionally need to script something, it'll never feel very comfortable.
My "scripting" needs don't involve sysadmin-flavored work or distributing scripts to be run on different machines or environments, so I use Linqpad pretty much as a pseudo-shell and scripting environment on my own box and couldn't be happier with it. F# is good for short scripts as well; I've been trying to use it more but it's slow in Linqpad, and I'm addicted to my productivity in C#.
> The way it is opened as a command prompt, in an unresizeable window (unless you fiddle with the settings every time), with no possibility of using shortcuts for copy/paste.
God yes. Windows shell folk use ConEmu the same way everyone on OS X uses iTerm - see pheouk's link below.
Long time powershell lover here, many of us used to just always have an ISE instance running for its flexibility, but recently I found this post and have not looked back since.. my prompt is a Ctrl + ~ away :)
If you think powershell is slow, try powershell ISE; it's even slower.
Speaking of remote, the whole mechanism of PS remoting has never made sense to me either. It should work like SSH: encrypted interactive session across a well-defined port.
It only opens as a command prompt if you open a command prompt; you can launch powershell.exe directly. Also, as of Win10:
- CTRL+A, CTRL+C and CTRL+V shortcuts work (as does CTRL+C as a BREAK command--it understands by the context of whether or not you have text selected)
- There are a bunch of new shortcuts[1]
- If you edit the properties of the Powershell terminal once, it should stay resizable (I think--correct me if I'm wrong, please)
- If you right-click on the Taskbar and edit the properties, you can make the Win+X menu replace its Command Prompt and Command Prompt (Admin) with Powershell Prompt and Powershell Prompt (Admin) [2]
- If the terminal isn't to your liking, you can try using the Powershell ISE (Integrated Scripting Environment) that comes with Windows. The Powershell ISE has debugging, syntax highlighting, and support for multiple tabs.
- Pretty much anything you see in a new Windows 8/8.1/10-style window (e.g. the Settings menu that has largely supplanted the Control Panel) is, under the hood, written in Powershell... So anything that they do, you can do with Powershell.
- You can make GUI applications relatively easily [3]
Most of the benefits of Powershell are the same benefits of any other CLI--you get repeatable, powerful commands that can run locally or remotely and that will function basically the same on any two given systems (assuming same version of Powershell and same Execution Policy setting).
Powershell is relatively verbose, but that means that everything is pretty clearly named to indicate its purpose and function. The commandlets have excellent documentation, complete with description, usage instructions, examples, and links to additional online resources/articles. Also, it has tab-autocompleting out the wazoo. And you can use wildcards with the Get-Help command--want a Powershell command for manipulating Services settings but don't know if such a thing even exists? `Get-Help service`. Want to see a list of every Powershell alias, commandlet, etc? `help *` (help is an alias of Get-Help).
If you're accustomed to BASH, you can enjoy the default aliases that Powershell makes for BASH commands (e.g. cd is mapped as an alias of the Powershell command Set-Location).
OH! And you can browse the registry as a filesystem! Try `cd HKLM:\` to access the Registry HKEY_LOCAL_MACHINE.
Exactly. The amount of time I've wasted creating regexs to describe & cut out data with grep, sed and awk, vs a simple '| select some-field' in powershell these days is huge.
Hold on a moment there, oldtimer. I don't know how many minutes you have left, but spare one for a spring chicken if you can. You reminisce your early days of Slashdot and Linux, but indicate it was consensus gentium, as if there is no other worthy motivation behind such interests. Beware the myopia of senescence, lest the ominous and suffocating bloat of Vista flash before your eyes in all its menace, or you find yourself wandering aimlessly in the streets searching for the Start Menu, or mourning the inextricable bubbly mess of Windows 8, or gasping before the telemetric hemorrhage of your personal data in Windows 10. Liberty is more than a fugacious trend, and even Slashdot has an enduring place beyond vernal whim.
Please take no offense to these words. My very dear friend – who is, judging by his similar views, towering wearily above the great sequoias – argues just as you do. But perhaps it should be said as this instead:
I was already doing Windows 3.x and 95 development by the time I installed Slackware 2.0, from floppies as my CD-ROM wasn't yet supported.
Spent almost a decade buying Linux magazines, writing M$ on forums, but also kept doing Windows related stuff when needed, also helped porting Windows software to UNIX, thanks to my Windows skills.
The technology I use varies with the customer, but Windows, .NET, UWP, VC++ is where I have more fun.
That smile that says "You'll understand eventually. It's best to leave your computing to the pros, they'll make sure it's done right and you don't hurt yourself."
Alternatively, and the way I read it, it's the smile that says, "How ironic that I, the biggest Microsoft hater that ever walked the planet, is now being accused of being biased towards Microsoft. The 'me' of 15 years ago would never have believed it."
Exactly this, and not the parent. Linux gave me a lot - I learnt about sockets, system calls, shell, perl (I've forgotten all the perl), Python and worked for Red Hat & IBM's Linux group, and I wouldn't change that for the world or tell someone they'll "understand eventually" - I'm not that rude nor do I believe that at all.
I still deploy on Linux. But I hack node all day on a Surface Book, using ConEmu/posh and it's rad.
Can you go into more detail on your setup? I've got a surface pro I'm thinking about turning into a little mobile coding station but I've been using my little lubuntu netbook for so long I'm not sure where to even start.
I use ComEmu, the openssh, Pcsx, PSReadLine packages, Sublime, git, Sourcetree (might try VSStudio but have better things to do than change editor ATM), node version 6.
The way I read it was "It's naive to think that companies (like people) are just black and white, and that nothing good can come out of an evil company, or vice versa. The fact that I like some of its technologies doesn't necessarily mean I agree with the company's direction."
Although, M$ (woo) has changed significantly over the years.
DHH did make a good point about taking Google down a peg :-)
Google has had some goofs as well as hits, and at the end of the day, they are just a marketing company that forces their employees to write in Java and C++. Eeeeooohw.
(I have fewer issues with Apple, but I'm sure they will do something obnoxious soon enough - maybe even now if I had to write iOS apps)
Same thing I heared of a bunch of Linux users that switched to Macs, because the OS was now a Unix.
"I'm getting old, I don't have time anymore to build all this stuff and configure my system. I just want something that works." And now most of them are switching back.
But yes, I think MS got better since they dropped Ballmer.
Sometimes people do have this attitude (and they need not necessarily be old), but in this case it seems like you're bringing some baggage to the table.
Well you're in good company. I was in that crowd too and honestly I feel much more optimistic about the future of Win10 then I ever have about Desktop Linux.
I recently had a conversation about how much I like powershell on HN. Someone called me a 'microshill' and I smiled a smile that comes with age.