I’ve written quite a few Advanced Functions for the PowerShell community over the past year. It’s awesome to be able to produce the behavior of a Cmdlet using syntax that the people using your module will be familar with. If you download one of a function or Script Module and don’t quite like how it works, you can just open up the file and make changes yourself.
However, this convenience comes at a performance cost. Even the most optimized PowerShell code will execute much, much slower than the equivalent compiled Cmdlet. For those people who need to process very large data sets in their PowerShell scripts, this performance difference might be a make-or-break factor.
I’d love to see what the PowerShell community feels about this. If you were to download a third-party PowerShell module, would you prefer to have one with compiled Cmdlets for the best performance (assuming that the source code was available), or do you feel more comfortable sticking with PowerShell Script Modules / Advanced Functions? Does the source or author of the module affect that decision?