It’s a pleasure to work with, cross platform, superb documentation, great support and a robust ecosystem. The only complaint people ever seem to have is moaning about Microsoft.
Fucking Microsoft, with their fully featured toolsets, libraries for everything, fantastic IDE, second fantastic IDE, and cloud infrastructure that actually delivers on the promise of cloud, and isn’t just “bare metal bullshit in the sky”. Hate those fucking pricks.
If you mean Visual Studio IDE (not VS Code), it’s actually the most robust fully featured IDE I’ve used. Using other IDEs, including other frameworks or languages, don’t come as close.
Easy management for external packages, easy build and project dependency mappings, easy unit test suites, etc. A lot of extensions work great out of the box (DB integrations, code coverage tools, security/vulnerability tools, benchmark testing, etc.).
Seeing as a lot of C#/.NET things are open source now, I wish that they would also work on an IDE for Mac and Linux. They’re about to retire the Mac preview VS, which didn’t compare to the Windows counterpart, but still usable.
Personally, I think, it’s dumb, because it’s more verbose than most programming languages. I’m normally even a fan of verbosity, but Powershell just feels like using big words when little words would do.
It’s weird to have something that verbose for using in the shell. I don’t want to use verbose commands when just doing stuff interactively, so I never learn how to really use its features as a concequence. Bash, while it has more footguns, is more readable to me because I’m more familiar with the individual commands. For most programing you spend more time reading it than writing it, but that’s not the case for the shell so there it’s the wrong tradeoff imo.
Yeah, my word choice was quite deliberate there, because there’s this other full-fledged programming language, which is also often less verbose than PowerShell, called Microsoft Java C#.
There is some nuances, which don’t make this quite as hard-cut, but in far too many cases, PowerShell is just an objectively worse choice than C#.
(And I’m not saying that C# is a particularly good choice, but since it can also make use of the .NET APIs, it is particularly easy to argue that it’s better than PowerShell.)
I found that the tradeoff came in the form of being more explicit, thus requiring fewer comments and less explicit readmes. Developers who normally struggled with naming things well would do better in PowerShell since it kinda “forced” them into the habit and structure. I know fans of Go (myself included) generally like that it takes that concept to the extreme. It fit my needs well at a time when I had a team of juniors to manage and teach.
Overall though, nothing wrong hating that strictness or verbosity! Lots of good options that support the reverse extreme and more moderate ones.
Not hating, but you should really try it out before forming an opinion. PowerShell Core is multi platform and if you value readable scripts at all, PowerShell is heads and shoulders over bash. I know all of us admins are proud of our bash scripts, but bash reads like hieroglyphics to anyone who didn’t write it. PowerShell has noun verb syntax and just heaps of syntax sugar. Scripts, even more than code imo, needs that readability for fast debugging and maintenance.
But hey, opinions on languages and such are highly, highly subjective. No skin off my nose if you just don’t like it at all.
You’re completely right. The deeper I get into bash the more absurd it is. Trying to iterate through text delimited by line breaks is ridiculously complex. And the sheer number of options for find and replace style operations is confusing sed, awk, printf, why?!
Oh and that’s somewhere where PowerShell really shines! Check out the examples on the docs page for some examples and see how easy they are to read and write compared to sed/awk/etc.
I also think PowerShell being object-based instead of string-based gives it flexibility for those of us who have experience with object-oriented programming languages. Being able to ship around objects to functions, splatting, etc are huge value adds for me personally.
Again though, sooooo subjective! Some people will legit hate that it’s object-based and hate the syntax. The world supports all kinds of developers and we’re all making cool stuff, so it’s all good!
Sure… but that’s a low bar. Bash is basically the worst shell of them all (if you exclude the ones that are so bad nobody uses them).
I’m a fan of fish personally. It’s both concise and feature rich. The fish language isn’t something I’d want to write a complex shell script in, but it’s a thousand times better than bash and if you’re writing something complex then I’d argue any scripting language is the wrong tool for the job. Including Power Shell. You should be using a proper programming language (such as C#).
PowerShell is innovative, for sure. But string output/input shells scripting wasn’t broken (unless you use bash) and I’m convinced trying to fix it by replacing simple string input/output with objects was a mistake.
I love OOP. However I also love using existing tools that work well, and none of those tools are designed to be OOP.
You’re right that Bash is among the worst options available, but it is common and what our friend above indicated he had experience with. I think your points are all valid, but I also find that most professional situations don’t offer much choice in the matter anyway. I used PowerShell because it was my company’s standard and there were 10 years of technical debt built around it. I got to know its ins and outs because of that and find some of them neat.
I don’t think anyone should take any of my messages as saying PowerShell is best in class for any particular use cases, but I do enjoy using it. I’m all Python and Golang now anyway 🙃
Oh I don’t think I made it clear enough. I know full well my opinion has no merit. I legit know nothing about Powershell, other than it has a uniquely blue background.
I personally mind because its microsoft. I don’t like them nor do i trust them. There is stuff i use where i don’t mind the telemetry and i leave it on to help developers. But microsoft is not one of them.
I pretty much only code to mod games, which is 90% C# for the things I’ve modded. Everything about the language, I learned from a Neverwinter Nights guidebook lol
C#.
It’s a pleasure to work with, cross platform, superb documentation, great support and a robust ecosystem. The only complaint people ever seem to have is moaning about Microsoft.
Fucking Microsoft, with their fully featured toolsets, libraries for everything, fantastic IDE, second fantastic IDE, and cloud infrastructure that actually delivers on the promise of cloud, and isn’t just “bare metal bullshit in the sky”. Hate those fucking pricks.
Is VS for C# actually good or is it just that there are no alternatives?
If you mean Visual Studio IDE (not VS Code), it’s actually the most robust fully featured IDE I’ve used. Using other IDEs, including other frameworks or languages, don’t come as close.
Easy management for external packages, easy build and project dependency mappings, easy unit test suites, etc. A lot of extensions work great out of the box (DB integrations, code coverage tools, security/vulnerability tools, benchmark testing, etc.).
Seeing as a lot of C#/.NET things are open source now, I wish that they would also work on an IDE for Mac and Linux. They’re about to retire the Mac preview VS, which didn’t compare to the Windows counterpart, but still usable.
Rider is an alternative that’s in my experience better
Ye an closed source debuger and non free extension for vscode, that developer kit thing that is not free to use if more then 5 people
And PowerShell, as an addendum
I despise powershell. But I have no actual reason for that opinion. … I’m just familiar with Bash so anything else looks like too much effort.
Personally, I think, it’s dumb, because it’s more verbose than most programming languages. I’m normally even a fan of verbosity, but Powershell just feels like using big words when little words would do.
It’s weird to have something that verbose for using in the shell. I don’t want to use verbose commands when just doing stuff interactively, so I never learn how to really use its features as a concequence. Bash, while it has more footguns, is more readable to me because I’m more familiar with the individual commands. For most programing you spend more time reading it than writing it, but that’s not the case for the shell so there it’s the wrong tradeoff imo.
I’ve been a Java developer and even I find powershell obnoxiously verbose. Especially for a friggin shell.
Yeah, my word choice was quite deliberate there, because there’s this other full-fledged programming language, which is also often less verbose than PowerShell, called
Microsoft JavaC#.There is some nuances, which don’t make this quite as hard-cut, but in far too many cases, PowerShell is just an objectively worse choice than C#.
(And I’m not saying that C# is a particularly good choice, but since it can also make use of the .NET APIs, it is particularly easy to argue that it’s better than PowerShell.)
I found that the tradeoff came in the form of being more explicit, thus requiring fewer comments and less explicit readmes. Developers who normally struggled with naming things well would do better in PowerShell since it kinda “forced” them into the habit and structure. I know fans of Go (myself included) generally like that it takes that concept to the extreme. It fit my needs well at a time when I had a team of juniors to manage and teach.
Overall though, nothing wrong hating that strictness or verbosity! Lots of good options that support the reverse extreme and more moderate ones.
nushell feels like a pretty good in between of the two. I’m still going to use fish tho.
Not hating, but you should really try it out before forming an opinion. PowerShell Core is multi platform and if you value readable scripts at all, PowerShell is heads and shoulders over bash. I know all of us admins are proud of our bash scripts, but bash reads like hieroglyphics to anyone who didn’t write it. PowerShell has noun verb syntax and just heaps of syntax sugar. Scripts, even more than code imo, needs that readability for fast debugging and maintenance.
But hey, opinions on languages and such are highly, highly subjective. No skin off my nose if you just don’t like it at all.
You’re completely right. The deeper I get into bash the more absurd it is. Trying to iterate through text delimited by line breaks is ridiculously complex. And the sheer number of options for find and replace style operations is confusing sed, awk, printf, why?!
Oh and that’s somewhere where PowerShell really shines! Check out the examples on the docs page for some examples and see how easy they are to read and write compared to sed/awk/etc.
I also think PowerShell being object-based instead of string-based gives it flexibility for those of us who have experience with object-oriented programming languages. Being able to ship around objects to functions, splatting, etc are huge value adds for me personally.
Again though, sooooo subjective! Some people will legit hate that it’s object-based and hate the syntax. The world supports all kinds of developers and we’re all making cool stuff, so it’s all good!
Sure… but that’s a low bar. Bash is basically the worst shell of them all (if you exclude the ones that are so bad nobody uses them).
I’m a fan of
fish
personally. It’s both concise and feature rich. The fish language isn’t something I’d want to write a complex shell script in, but it’s a thousand times better than bash and if you’re writing something complex then I’d argue any scripting language is the wrong tool for the job. Including Power Shell. You should be using a proper programming language (such as C#).PowerShell is innovative, for sure. But string output/input shells scripting wasn’t broken (unless you use bash) and I’m convinced trying to fix it by replacing simple string input/output with objects was a mistake.
I love OOP. However I also love using existing tools that work well, and none of those tools are designed to be OOP.
You’re right that Bash is among the worst options available, but it is common and what our friend above indicated he had experience with. I think your points are all valid, but I also find that most professional situations don’t offer much choice in the matter anyway. I used PowerShell because it was my company’s standard and there were 10 years of technical debt built around it. I got to know its ins and outs because of that and find some of them neat.
I don’t think anyone should take any of my messages as saying PowerShell is best in class for any particular use cases, but I do enjoy using it. I’m all Python and Golang now anyway 🙃
PowerShell 5 and up use BASH aliases out of the box so your hate makes less sense nowadays.
Oh I don’t think I made it clear enough. I know full well my opinion has no merit. I legit know nothing about Powershell, other than it has a uniquely blue background.
Yeah, you do have to set the opt out of telemetry for the runtime as the default is opt in…
Is it really unreasonable to gain insight in to how their tooling is used? If it were being used to sell to advertisers I’d agree with you
I personally mind because its microsoft. I don’t like them nor do i trust them. There is stuff i use where i don’t mind the telemetry and i leave it on to help developers. But microsoft is not one of them.
A company that insists on putting “edge” back on my toolbar no matter how many times I remove it is not trustworthy enough to get telemetry.
I prefer opt in, but I guess that’s a dream.
Some info for others: https://learn.microsoft.com/en-us/dotnet/core/tools/telemetry.
Seems odd that ‘dotnet run’ will collect, but ‘dotnet app.dll’ will not.
C# is used by every medium to large French company as an alternative to C++. How is it not popular?
OP didn’t ask for unpopular languages but for languages you want to be more popular.
I also want C# to be more popular, it’s a fantastic language.
I pretty much only code to mod games, which is 90% C# for the things I’ve modded. Everything about the language, I learned from a Neverwinter Nights guidebook lol
Plus it has a decent web framework in Blazor. I’m not a developer by trade, but I’ve enjoyed it in the context of small, personal projects.
Move to NZ. It’s nearly all c# here.