> Because PowerShell is licensed under a permissive license and built for all platforms, you can ship it with your application.
You can ship with any other FLOSS licensed language as well. The reason for using real programming languages instead of bash is error handling, not ease of operation. Show me what a well written error handling code looks like in power shell and I can think about it. Otherwise no reason to switch to a yet another hybrid thing that assumes open source means that everybody should switch to it.
There is btw python shell as well. And probably a horde of other shell initiatives that *fix* things. Especially when I read about case insensitivity, trying to match commands to some prefixes, guessing partial command parameters and other *helpful* features... this makes static analysis impossible, decreases code readability and is error prone. Also those partial parameter matching is definitely not future proof as adding new parameters could easily break existing assumptions.
Using custom kernel is not only more expensive upfront but also for maintenance. If you are going to expose these containers to the network somehow, then you have to keep up with all kernel security fixes going forward. If you forked the kernel, you are in a bad position.
It's not like hardware circuits. There are far too many devices in the wild with outdated software vulnerable to who knows what.
Authored Comments
> Because PowerShell is licensed under a permissive license and built for all platforms, you can ship it with your application.
You can ship with any other FLOSS licensed language as well. The reason for using real programming languages instead of bash is error handling, not ease of operation. Show me what a well written error handling code looks like in power shell and I can think about it. Otherwise no reason to switch to a yet another hybrid thing that assumes open source means that everybody should switch to it.
There is btw python shell as well. And probably a horde of other shell initiatives that *fix* things. Especially when I read about case insensitivity, trying to match commands to some prefixes, guessing partial command parameters and other *helpful* features... this makes static analysis impossible, decreases code readability and is error prone. Also those partial parameter matching is definitely not future proof as adding new parameters could easily break existing assumptions.
Using custom kernel is not only more expensive upfront but also for maintenance. If you are going to expose these containers to the network somehow, then you have to keep up with all kernel security fixes going forward. If you forked the kernel, you are in a bad position.
It's not like hardware circuits. There are far too many devices in the wild with outdated software vulnerable to who knows what.