Python Quality Productivity Portability Integration Software Quality Code can be: Understood Reused Modified Focus on: Simplicity Explicitness Readability Python lang. designed rather than accumulated Orthogonal Explicit Minimalist .. in design “Python fits your brain” Limits # of possible interactions in your code reduces program complexity & potential for bugs Well-designed for programming techniques such as: Structured Modular OO design 1 Developer Productivity Python’s productivity is its most attractive & defining quality Python optimized for speed of development Interpreter handles details other langs require you to code Type declaration Storage layout Memory management Build procedures Programs typically 1/3 to 1/5 the size of C++/Java code Remarkably flexible & agile Useful for: Quick tactical tasks Large, long term strategic projects Dynamically typed But strongly typed e.g., odd type combos => Error Syntax resembles executable pseduocode Why not C/C++ Scripting languages are orders of magnitude easier & quicker to use C is too complex, rigid & slow, esp. for the web Web domain – change is constant 2 So development speed can make or break a project E.g., String processing & pattern matching Data structures Network scripting GUIs Multitasking Compiled languages execute faster But speed of development overshadows speed of execution 3