Next: 1.4 About this document Up: 1. Introduction Previous: 1.2 What is Python?

# 1.3 Why Another IDL Language Mapping?

Ever since the seminal work ``The Mythical Man Month'' [2], many people have advocated that the only way to produce quality software is by employing exploratory methodologies such as prototyping (Brookes' famous ``build one to throw away''). Prototyping not only provides greater opportunity for end-user feedback than traditional ``build and deliver'' approaches, but also allows system architects and developers to experiment with critical design decisions before they really do become critical! In fact, when attempting to build complex systems, prototyping is arguably the only way to discover the subtle and often unexpected interactions between components. Designing and deploying distributed systems is a complex problem and while CORBA goes some way to managing this complexity, the most commonly used language mappings, C++ and Java, are not simple enough to allow the rapid development of system prototypes, command scripts, and test harnesses etc. This is exactly where Python and Fnorb come in! Anecdotal evidence [3] suggests that, in terms of code size, Python programs are 3-10 shorter than C++ and 3-5 times shorter than Java. The language mapping from OMG IDL to Python maintains this advantage by allowing programmers to use familiar language data structures and idioms with minimal concessions to the notion of object distribution. According to a recent SunWorld article [4] Python is now considered one of the ``big three'' scripting languages along with TCL and Perl. Compared with its rivals Python is easier to learn and is (much!) easier to read and maintain. The combination of Python and Fnorb provides the existing CORBA community with a much needed tool for rapid prototyping and scripting, and gives those new to CORBA a great way to learn the fundamental concepts without being swamped by the intricacies of a `heavyweight' language mapping.

Next: 1.4 About this document Up: 1. Introduction Previous: 1.2 What is Python?