PowerShell is terrible. The idea is good, the implementation bad
The language is very quirky. Simple stuff like using variables is not as intuitive as it should be.
Another issue is encapsulation of logic, it is not straightforward at all. This is my second big issue.
Trying to temporarily disable script policies to run a script is not straightforward either.
If you like to work with real objects, use PowerShell...