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
An extensive array of standard libraries
Full library support using hierarchical packages (a concept that is already familiar to every .NET developer)
Robust third-party libraries that support just about every need
Support for writing both extensions and modules in both C and C++
Support for writing extensions and modules using third-party solutions for both .NET (IronPython) and Java (Jython)
Modular application development
Error handling through exceptions (another concept familiar to any .NET developer)
High-level dynamic data types
Ease of embedding within applications as a scripting solution Procedural code that is relatively easy and natural to write Ease of reading and a clear syntax
All these features translate into increased developer productivity, which is something that dynamic languages as a whole supposedly provide (productivity is one of these issues that is hard to nail down and even harder to prove unless you resort to metrics such as lines of code, which prove useless when comparing languages). In addition to the great features that Python provides, IronPython provides a few of its own. The following list provides a brief overview of these features:
Full access to the .NET Framework
Usability within Silverlight applications
Interactive console with full dynamic compilation provided as part of the product
Accessibility from within a browser (see http://ironpython.codeplex.com/Wiki/View .aspx?title=SilverlightInteractiveSession for details)
Full extensibility using the .NET Framework
Complete source code available (see http://ironpython.codeplex.com/SourceControl/ ListDownloadableCommits.aspx for details)
One of the negatives of working with IronPython, versus Python (in the form of CPython), is that you lose support for multiple platforms — you only have direct access to Windows. You can get around this problem using Mono (http://www.mono-project.com/Main_Page), but it isn't a straightforward fix and many developers will find it cumbersome. (Chapter 19 tells you more about working with Mono — a valuable solution for some Windows versions as well, such as Windows Server 2008 Server Core.) Of course, there isn't any way to get around the lack of Java support — you simply choose one virtual machine or the other. Appendix A lists more IronPython differences from CPython, most of which will cause compatibility and other issues for you.
An interesting use of IronPython is as an application testing tool. In fact, some developers use IronPython exclusively for this purpose. Chapter 18 tells you more about this exciting use of IronPython and demonstrates that using IronPython for this purpose really does make application testing considerably easier.
Don't get the idea that IronPython is going to restrict your use of familiar technologies. You can still create a Windows Forms application (see Chapter 8) and interact with COM (see Chapter 9). It's even possible to create command line (console) applications (see Chapter 10) and work with the Internet (see Chapter 11) just as you always have. What IronPython provides is another way to view problems that you must address using your applications. As with most languages, what you're getting is another tool that lets you create solutions in the least amount of time and with the fewest bugs.
Was this article helpful?