Hacker News new | ask | show | jobs
by legacy2013 3679 days ago
This is cool, but I hope the new Linux Subsystem in Windows 10 will propagate enough that everything can be written in bash
2 comments

i will never understand why people fetishize that awful language.
I think it's your incorrect assumption that bash's popularity is due to it being a "fetish" for anyone. There aren't alternatives that are both better and more available / cross-platform / standard.

I agree its a crappy language, but remember, it's a shell, not a language. It serves a different purpose than being good for pure code, so saying something like "<your favorite scripting language here> is better than bash" doesn't hold a whole lot of water. It is way better than batch though.

"<your favorite scripting language here> is better than bash at the kind of tasks that bash is used for" would be a pretty substantial claim, though. (Unfortunately, it's almost never the claim that people are making. "X is better than bash at creating UIs/database lookups/OO/web programming"? Yeah, of course it is. Water's wet, too.)
It's significantly better than batch
Well sure, but these days PowerShell is what Windows people use for anything non-trivial.
Until your enterprise security people have a fit at something like PowerSploit [1] existing and turn on AllSigned via Group Policy. Then it's pretty much impossible to use PowerShell - edit, sign, test, edit, sign is quite painful with the current tooling (and that's even if you're "trusted" enough to get the codesigning cert). Not to mention that some of the scripts that Visual Studio uses aren't signed!

1: https://github.com/PowerShellMafia/PowerSploit

PowerShell took everything that was great about .NET and combined it with everything that was terrible about Bash. So we have, yet again, a difficult to understand language for shell scripting.
Why is it bad? I've been able to write some pretty great PS scripts to automate tasks. It's easier than firing up Visual Studio and writing a C# program I'd need to recompile if I ever want to change it.
It's very powerful but the syntax is step back 20 years:

    If ($Number -gt 0) 
That's just one example. There is a lot of really confusing stuff in powershell that's entirely unnecessary. There were going for some kind of Bash-shell familiarity which, oddly enough, most Windows developers don't even have.
Have you considered F#? Works well for scripting.
And PowerShell is an awful shell; it's great for script automation of windows, but as a shell, just no. Microsoft recognizes this, it's the reason a full Ubuntu bash shell is available in Windows 10.
> Microsoft recognizes this

MS also tried to improve PowerShell by installing the PSReadLine module by default.

Read https://github.com/lzybkr/PSReadLine for instructions on how to make PS a bit more usable.

The problem with PowerShell is its syntax, not the extra features of the shell environment. Trying to expose the .Net runtime to the command line is an admirable goal for a scripting language, not a shell. It comes down to this, PowerShell is a catherderal, bash and tools are a bizarre, and that's why they win IMHO. Personally the best shell for any Windows box is to install cygwin and treat it like a Linux box, and on Windows 10 just install Ubuntu and have a real Linux shell.

Windows servers are a dying breed and Microsoft knows it, they've lost that war and are quickly porting everything they can to run on Linux including their .Net runtime and Sql Server; they know they've lost the war, it's only a matter of time.

Really? I though PowerShell was designed primarily to replace cmd. Surely Windows people use actual programming languages for the majority of tasks with PowerShell/cmd for smaller scripting tasks.
It is significantly better than PowerShell.
and significantly worse too.
Jokes on you, they're going to end up baking bash commands into PowerShell.