Hacker News new | ask | show | jobs
by ntakasaki 4030 days ago
Personal anecdote time.

Have been using Linux off and on since 2000. Later my job required .NET, so got into the MS stack but still kept playing around with Linux for things like IRC bots etc.

Then at work there was a major open source push, and we did a big project using Drupal. Used Eclipse and Netbeans(mostly this), deployed to Ubuntu server for dev and RHEL/CentOS for prod. I can sling Vim but never like Emacs(you need a second nose to type some of the shortcuts!)

I was DevOps because only I in the team had Linux experience beforehand. There were some good things but C# vs. PHP was no contest as was VS vs. Netbeans/Eclipse.

Ubuntu vs. CentOS/RHEL was quite annoying because there were small meaningless fragmentation differences like Apache daemon as httpd in one and apache2 in the other. Really? Why? I found myself raging at them sometimes.

After doing that for a year, back to VS and .NET and it felt like a relief. I liked the power of nginx though which we used as a reverse proxy for the Drupal project.

1 comments

So you don't like PHP and Eclipse. Sure. Neither do I. I write Scala in IntelliJ, or Ruby in Sublime Text, or even C# deployed on Linux with CoreCLR or Mono. And you're not "DevOps" when you have a little Linux experience, and mixing Ubuntu and CentOS without thinking about the consequences thereof is...well, it's your own bad decision. Historical reasons drive the behaviors of one versus the other. (You should know about historical reasons for things. They're much of why Windows is incoherent, too.)

But, more to my original point: I like .NET. I've been using it since 2005. I have Visual Studio open in Parallels right now. But I do recognize that the environment is a trash fire the moment you consider doing anything remotely outside the lines, and the lack of a serious, user-focused glue system (PowerShell ain't it, it's obviously not designed as a REPL language from the jump) is crippling. Peter Bright over at Ars has suggested reviving the subsystem model for Windows and incorporating a FreeBSD layer, and I'm all for that. Because I don't dislike Windows. I just can't get things done in it.

Working at Microsoft on C# but being a Unix programmer at heart I know what you mean. I'm not of the mind that Unix is strictly superior -- I think most of the operating systems just involve which tradeoffs you want to make -- but I happen to like a fair amount of the Unix tradeoffs and I think that the programmer ecosystem is really valuable.

Which is why I think it's unfortunate that I don't really but that a Unix subsystem is the way to make programming on Windows better. All my problems with Cygwin or git bash all lie on the boundaries of interactions. The most annoying things are when you can't run a batch file in bash or when you launch a Windows program with a Unix-style path and ends up with garbage because no file actually exists with that path on NTFS. Adding transparent proxying or something similar just ends up being more of a pain because now its really difficult to debug when something inevitably goes wrong. Perhaps more importantly, even if you solve the filesystem issues you're still stuck with things like /proc.

Overall, I think I'd rather just have really lightweight and transparent VM access.

PowerShell is fantastic. I get what you are saying, though. You know UNIX at a very deep level and you don't have time to stop and learn how PowerShell works. (its different and has a different model for getting things done. That's all I'm saying.)

If you could stop and take the time to learn the prescribed PowerShell way of doing things... its really very good. I used to be a VMS admin in another life and I've worked with free and commercial *nix and I love it.

Your condescension is unwelcome and wrong besides. I've been using PowerShell since it was called Monad. I am a former Mono contributor and have been using .NET for about a decade--I understand both the APIs and the underlying runtimes, not quite as well as I know the JVM, but close. Despite a strong understanding of both the underlying architecture and the language in question, every time I am forced into using it I have the sinking feeling that my hands are being made stupid in comparison to the ease of exploration of other REPL-based systems, be they zsh/bash/whatever or even just Ruby.

I wouldn't dislike PowerShell as intensely as I do if I didn't know it. It's a convergence of bad design in the small--the grammar and the syntax--and in the large--how exploratory programming at a REPL is actually done. Maybe it's great for sysadmin work where something's on fire and must be addressed right-then-and-there, but I'm a programmer and I work to eliminate the need for sysadmin anythings. A shell is literally just a REPL for recording tasks for automation and desperately needs to not suck at that job.

I really wasn't trying to be condescending.

Comparing it to zah/bash and ruby illustrates my point. It's got some fundamental differences to those environments. Providing a common argument parser is one. PowerShell is actually more than a Shell. Its an environment that can be hosted in a shell. That's my point. Commands are actually objects that are processed by the environment. If you get passed the "I know how things are supposed to work" attitude and look at how PS is meant to be used to administer a large number of windows systems you would see that it makes quite a bit of sense.

It is different then what you are used to and probably been using since you were in university. I wasn't rude or mean. I certainly can't be as indignant about things as you are while I'm on HN because of the downvote brigade. But hey, like you guys always say...you're right and I'm wrong because you have karma. Honestly, I tend to be pretty sharp when reacting to people as well so I'm trying to not take things as personally.

But your appeal to authority doesn't scare me...I've used stuff for a long time too. I just don't think that I'm better than other people because of it.

Comparing PowerShell to REPL environments that make exploring a problem space easy is illustrating your point? Its differences excuse how tragically bad it is at doing shell things? Maybe I come from a different part of town, but I don't consider that an argument.

The job of "administrator" in an IT shop is a largely make-work one that can be done by automated systems and process-aware developers, and as an infrastructure and automation developer I am working towards that goal. PowerShell makes that harder than it absolutely has to be because of how blindingly difficult it is to actually iterate on a problem in a way that can be factored into a reusable process--the actual hands-on-keyboard experience is so stilted and stupid that finding the solution in the exploratory manner I described is significantly harder than it should be. As I've said elsewhere in this tree, it's easier to just solve a problem in C# than try to explore the space in PowerShell and reify it into a script. That's as scathing an indictment of a programming environment as I can make.

And absolutely nobody says that somebody's right because of karma. I've read through some of your posting history, though, and you go to that well a lot. Consider that maybe nobody likes that you play the oppressed martyr.

Ironic that you accuse others of being condescending. You have been nothing but in this thread.
Your low opinion of admins is noted. I'm sorry I tried communicating with you. you're a know it all prick.

read this: how bout we just disagree and you leave me alone? there's no need to even reply to this. just leave me alone.