term "scriptingis probably best used to describe the rapid and flexible mode of development that python supportsrather than particular application domain okbut what' the downsideafter using it for yearswriting about it for and teaching it for 've found that the only significant universal downside to python is thatas currently implementedits execution speed may not always be as fast as that of fully compiled and lower-level languages such as and +though relatively rare todayfor some tasks you may still occasionally need to get "closer to the ironby using lower-level languages such as these that are more directly mapped to the underlying hardware architecture we'll talk about implementation concepts in detail later in this book in shortthe standard implementations of python today compile ( translatesource code statements to an intermediate format known as byte code and then interpret the byte code byte code provides portabilityas it is platform-independent format howeverbecause python is not normally compiled all the way down to binary machine code ( instructions for an intel chip)some programs will run more slowly in python than in fully compiled language like the pypy system discussed in the next can achieve to speedup on some code by compiling further as your program runsbut it' separatealternative implementation whether you will ever care about the execution speed difference depends on what kinds of programs you write python has been optimized numerous timesand python code runs fast enough by itself in most application domains furthermorewhenever you do something "realin python scriptlike processing file or constructing graphical user interface (gui)your program will actually run at speedsince such tasks are immediately dispatched to compiled code inside the python interpreter more fundamentallypython' speed-of-development gain is often far more important than any speed-of-execution lossespecially given modern computer speeds even at today' cpu speedsthoughthere still are some domains that do require optimal execution speeds numeric programming and animationfor exampleoften need at least their core number-crunching components to run at speed (or betterif you work in such domainyou can still use python--simply split off the parts of the application that require optimal speed into compiled extensionsand link those into your system for use in python scripts we won' talk about extensions much in this textbut this is really just an instance of the python-as-control-language role we discussed earlier prime example of this dual language strategy is the numpy numeric programming extension for pythonby combining compiled and optimized numeric extension libraries with the python languagenumpy turns python into numeric programming tool that is simultaneously efficient and easy to use when neededsuch extensions provide powerful optimization tool okbut what' the downside