Question

I am new to the dynamic languages scene, and trying to find a good starting point.

Looking at how Microsoft is diminishing the role of Iron Ruby in its offerings, I am looking around for a dynamic programming language that will be supported on dotNET platform. Could you list specific features that are found in one but not the other, to assist in the selection.

Was it helpful?

Solution

PowerShell is primarily a Windows Automation tool that surfaces its functionality in a couple of ways:

  1. A shell (console) ala KornShell, CSH, BASH.
  2. A dynamic scripting language.
  3. A hostable engine ala TK/TCL & Windows Scripting engine.
  4. Underpinnings for the Windows 7 Troubleshooting Framework.

I view languages like Python and Ruby as general purpose languages, that while they may offer REPL prompts, aren't as suited to shell programming i.e. easily firing off system commands and EXE's, capturing stdin/out, dealing with non-terminating vs terminating errors, etc. That's where PowerShell shines.

OTOH, I wouldn't use PowerShell for all generic programming tasks. It can't:

  1. Define .NET types (except those that are of type PSCustomObject)
  2. Implement an interface
  3. Implement anything generic
  4. Can't call generic methods
  5. Doesn't support static extension method calling syntax e.g. array.Where()
  6. Doesn't support notion of namespace import (i.e. using system; in C#)

Like the old saying goes, be sure to pick the right tool for the job.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top