Datasheet
An Overview of IronPython
5
environmental conditions. (You’ll discover many other dynamic language advantages as the chapter
progresses.) Unfortunately, you often pay for runtime flexibility with poorer performance — there’s
always a tradeoff between flexibility and performance.
Performance is a combination of three factors: speed, reliability, and security.
When an application has a performance hit, it means a decrease in any of these
three factors. When working with IronPython, there is a decrease in speed
because the interpreter must compile code at run time, rather than at compile
time. This speed decrease is partially offset by an improvement in reliability
because IronPython applications are so flexible.
Dynamic languages provide a number of benefits such as the ability to enter several statements
and execute them immediately to obtain feedback. Using a dynamic language also provides easier
refactoring and code modification because you don’t have to change static definitions throughout
your code. It’s even possible to call functions you haven’t implemented yet and add an implementa-
tion later in the code when it’s needed. Don’t get the idea that dynamic languages are new. In fact,
dynamic languages have been around for a very long time. Examples of other dynamic languages
include the following:
LISP (List Processing)
Smalltalk
JavaScript
PHP
Ruby
ColdFusion
Lua
Cobra
Groovy
Developers also assign a number of advantages specifically to the Python language (and IronPython’s
implementation of it). Whether these features truly are advantages to you depends on your perspective
and experience. Many people do agree that Python provides these features:
Support for the Windows, Linux/Unix, and Mac OS X platforms
Managed support using both Java and .NET
Considerable object-oriented programming (OOP) functionality that is easy to understand
and use
The capability to look within the code — .NET developers will know this as a strong form
of reflection
548592c01.indd 5 2/24/10 12:47:09 PM