Project #1 :: Cellular Automata Cryptosystem

advertisement
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
Download