Python Programming Language features , advantages & disadvantages
Python is a free & open-source software (FOSS) , It runs on all major operating systems such as Microsoft Windows , Mac OS X and Linux , It is accessible to anyone , The code can also be modified & re-distributed , Syntax of Python is easy to learn , so , both non-programmers & programmers can start programming right away .
Python Software Foundation distributes pre-made binaries that are freely available for use on all major operating systems called CPython , Python is widely supported , It has an active support community with many web sites , mailing lists & net-news groups that attract a large number of knowledgeable & helpful contributors .
Python is easy to learn its syntax , It doesn’t matter if you have been acquainted with the other programming languages before , You can use Python easily because of its syntax , Python’s syntax is very clear , so , it is easy to understand the program code , It is referred to as executable pseudo-code as its syntax mostly follows the conventions used by the programmers to outline their ideas without the formal verbosity of code in many programming languages .
Syntax of Python is almost identical to the simplified pseudo-code used by many programmers to prototype and describe their solution to the other programmers , So , Python can be used to prototype and test code which is later to be implemented in the other programming languages .
Python is a high-level language , It looks more like a readable , human language than like a low-level language , This gives you the ability to program at a faster rate than a low-level language will allow you , Python is far from being the only programming language that you can use for your coding needs .
The object-oriented programming enables you to create the data structures that can be re-used , that reduces the amount of repetitive work that you will need to do , Programming languages define the objects with the namespaces and the objects can edit themselves by using certain keywords .
Even programmers who write in the other languages can use Python as a testing ground where they can test their code before implementing it in a different language , Python shares this distinction along with the other languages such as Java , C# , and C++ , The object-oriented languages can be used to design any type of non-trivial software , that can in turn be implemented in any scripting or programming language .
Python doesn’t have the pointers such as the other C-based languages , making it much more reliable , The errors never pass silently unless they are explicitly ordered , This allows you to see & read why the resulting program crashed and where to correct your error efficiently .
Python is famous for being batteries included language , There are over 300 standard library modules which contain modules & classes for a wide variety of programming tasks , In addition to the standard libraries , there are the extensive collections of freely available add-on modules , libraries , frameworks & tool-kits , These generally conform to similar standards & conventions .
If you need to take apart the code that someone else wrote (either for study or troubleshooting) , you can easily do it due to clear readability of the programming language , Nearly all the database adapters (used in talking to any client-server engine like Oracle , MySQL , Posrgres , etc ) conform to Python DBAPI , So , allowing the users to access them using the same code , So , It is easy to modify Python programs to support any type of database engine .
Python has been an important part of Google since the beginning and remains so as the system grows & evolves , Today dozens of Google engineers use Python , Python may become popular for the Internet , as new platforms such as Raspberry Pi are based on it , It is easy to use (easy to read and write) , It is extremely popular in academia , creating a large talent pool .
Readability of Python facilitates open source development , It helps you think more clearly when writing the programs , It helps the others who will maintain or enhance your program , It requires less effort to write Python program than to write one in another language like C++ or Java .
Python is a very productive way to write code , Some of this comes from the simple syntax & readability , Some of it comes from the rich , well-designed built-ins & standard library and the availability of many third-party open source libraries & modules and the code is easier to maintain .
Python is dynamically typed & flexible , with code that is less verbose , Python has a plethora of frameworks that make web programming very flexible , Django is the most famous Python framework for web development , It gives rise to quick development by using less code .
Python is great for writing asynchronous code , which rather than threading uses a single event loop to do work in small units , This code is often easier to write & maintain without confusing the resource contention , deadlocks , Python’s generators are a great way to interleave running many processing loops in this approach .
Python’s programming approach is not as limited as Java‘s , Unlike Java , Python is multi-paradigm and supports OO , procedural & functional programming styles , It’s possible to write applications in Python using several programming paradigms , It is used for writing very clear & understandable object-oriented code .
It supports multiple systems & platforms , The developers can now build the cameras , radios & games with ease , Python allows to scale the most complex applications with ease , A large number of resources are available for Python , It offers a built in testing framework to set debugging time & enable fastest workflows , IT giants like Yahoo , Google , IBM , NASA , Nokia & Disney prefer Python .
Python is much better suited as a glue language , while Java is better characterized as a low-level implementation language , Python is older than Java , Python is viewed as strictly a glue scripting language despite the fact that it is clearly powerful enough for the industrial-strength software development .
While Python is evaluated against Perl as a scripting language particularly suited to Internet applications , It can be characterized as Object-oriented , Interpreted , Interactive , Modular , Dynamic , High-level , Portable , Extensible in C and C++ .
It is easy to learn for a novice developer , Its code is easy to read , you can execute many complex functionalities easily due to the standard library , It incorporates modules , exceptions , dynamic typing , very high-level dynamic data types & classes , It has interfaces to many system calls and libraries , as well as to various Windows-based systems .
Python code is far more readable than C or Java , An experienced programmer can pick up the basics of Python in a day , be productive in a week or less and be relatively expert in the language many times faster than he could achieve equivalent fluency in C , C++ , Java , or even Perl .
Python is executed by an interpreter instead of compilation , that causes it to be slower than if it was compiled & then executed , Unlike languages that need to be separately compiled & then executed , For most applications , this will not pose the problem , but there are certain instances when an increase in speed is desirable .
Python is a very easy programming language , when you have mastered it , You can be too accustomed to its features especially its late-binding dynamic models & its extensive libraries , So , when shifting to a new language that does not have these , the user may run into difficulties in adjusting .
Speed can be an issue , Python is many times slower than compiled languages , It comes back to separating language from the run-time , Python programs are expected to run slower than Java programs , but they take much less time to develop , a Python programmer wastes no time declaring the types of arguments or variables , Python’s powerful polymorphic list and dictionary types .
Python is slow , It is not a very good language for mobile development , Python is not a good choice for memory intensive tasks , It is near impossible to build a high-graphic 3D game using Python , It has the limitations with database access and it is not good for multi-processor/multi-core work .