Hey, it’s the age of networking right? I mean with the internets and all. You’d think that by now, all modern operating systems would be easy to control over the network.
Well, I had a chance to try out powershell 2.0 recently, as it claims to have built in support for remoting. Well, it does, but..
It reminds me of that old saying: “make simple things simple, and hard things possible”. Powershell succeeds at the latter, but outright fails at the former.
My situation: I have two machines. No domain. I want to remote control one from the other. I’m sure many devs are in the same situation. It’s still _way_ too hard to set this up. Just see here. Look at all those steps! Oh, and that’s using the hacky trusted hosts thing. If you want to do a proper SSL thing: BAM!.
Compare this to: sudo apt-get install openssh-server, or on a mac, a few clicks in sharing preferences. I mean seriously, why did they make this so damn difficult? It’s literally easier to install cygwin.
While I’m ranting about powershell, even for simple things, it’s still too complex. Maybe I just am a newb, but I tried to do something basic today: generate a file containing a list of source files, then run ctags on it. Well, the ctags part is easy, but the command to generate the files was not:
PS D:\src\...> Get-ChildItem foo -include *.h,*.cpp -recurse | foreach-object {echo $_.fullname;} | out-file -filepath .\files.win.txt -encoding ASCII
Sigh. Really? I mean this is compared to:
% find foo -name '*.h' -o -name '*.cpp' > files.win.txt
So in the powershell example, I have to do the for-each thing because for some reason Get-ChildItem prints out paths relative to foo, and not a path including foo like find does. (Also, I need it to print just the FullName property, otherwise I get unusable output) Then I have to do the out-file thing because normal redirection will spit out a file in unicode with a BOM, which confuses ctags.
I understand that there’s a possible impedance mismatch between ctags and windows (and powershell), and also that that “find” is an unix uber-command that has evolved over many years, but still, MS needs to step up to make the common things really easy to do.
They are already asking you to learn something that has a high learning curve and that is windows-only. At least make it easier to play with. Damn.