I have been developing software in one form or another ever since Junior High School and have used languages like Basic, Pascal, C, VB, VB.Net, JavaScript and C#. In the last few years, I have only used C#, a little JavaScript and I am feeling a little stale, so I decided to find a new development language to add to my skill set.
My initial search for a new language was open to anything including different platforms and non-Microsoft technologies. I was somewhat like the preverbal “kid in a candy store” because I just could not stop searching and wondering what each language would taste like. Therefore, after looking at languages like Java, Haskell, F#, Smalltalk, Ruby, Boo, Scala and Python, I decided that I needed some help and created some criteria to help me choose.
- Usable for daily development
- Must be able to produce Smart Client, and Silverlight application
- Interoperable on the .Net platform
- Positive cost benefit analysis (Dice Consulting Positions)
The cost benefit is simple, I need to absorb large amounts of technical information and the benefits need to outweigh the time spent learning the new language. The real benefit would be an increase in bill rate for my consulting services. Since I already know the two major languages for the .Net platform, and with the reluctance of program managers to use non-standard languages, the cost benefit criteria is looking a little weak. So I added a new criteria, the language will need to show me a different view on programming that I am not getting with my C# and VB.Net.
The winner is IronPython, a dynamic language used in conjunction with the new .Net Dynamic Language Runtime. Python was created in the 1980s by Guido van Rossum, who is now working at Google. The Python language is a wrist friendly language due to its terse syntax and no need for the normal text enclosures like C# and VB.Net. The language comes with the “batteries included” and this refers to the numerous libraries that come with the language, which will enable you to write almost any type of software. The IronPython implementation on the .Net platform has full access to these standard Python libraries as well as the full .Net Framework.
Benefits of Python
- very clear, readable syntax
- strong introspection capabilities
- intuitive object orientation
- natural expression of procedural code
- full modularity, supporting hierarchical packages
- exception-based error handling
- very high level dynamic data types
- extensive standard libraries and third party modules for virtually every task
- extensions and modules easily written in C, C++ (or Java for Jython, or .NET languages for IronPython)
- embeddable within applications as a scripting interface
Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.
From www.Python.org
Learning Python
|
I have started learning Python from the Manning’s early access program from the book “IronPython in Action”. The early access program gives you access to the book as the authors and editors are working on future chapters. In the first part of the book, the authors build a Windows application using an iterative development style and design patterns to teach the reader the Python language. I really enjoy this approach because I can read and try the concepts in a real application development scenario.
The Python.org website has a wealth of information for the beginner and advance users. The documentation is also available for download in PDF, HTML, LaTeX formats. The Python language installer also installs a basic integrated development environment for you, which makes learning Python very easy.
|
Conclusion
Learning Python will enable me to use a new and different language on the .Net platform but also learn a language that runs on almost every platform. I am really looking forward to delving into the different programming styles that Python supports. The fact that Python is the first language that Google has introduced with their Google App Engine service is also a plus.
Links