Python Programming Language || What is CPython?
utopian-io·@nilesh.katuwal·
0.000 HBDPython Programming Language || What is CPython?
This post is about open source and Python programming language. As a python developer and open source community lover, I would like to share my knowledge and enhance this community. I hope to work on open sources projects in future. This is my first blog post in the @utopian-io community and I want to contribute from my side to this great community. Python is very useful in various fields of IT and is growing faster than any other languages. Data science, web scraping, web design are some of the fields where python is used mostly. I am going to make blog series on different aspects of python which will be useful for learners and enthusiasts who wants to do something on python. **Introduction:** Open source refers to the programs that are free to use whose source code is available to everyone and can me modified by the developers or users according to their needs for the personal or commercial purpose. There are many open sources project which we are using day by day but we may not be aware of that. Android OS, Linux OS, Atom(an IDE), Gimp(a photoshopping tool), etc are some of the open sources project's product. **Python:**  Python was developed by Guido Van Rossum in the 1980s. Python is named after the television show Monty Python's Flying Circus. Later on, it was handed over to the non-profit Python Software Foundation, which now serves as the administrator of the Python language. It is open source and is free to use even for commercial applications.It was made to both look good and be easy to read. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library. **Zen Of Python:** In 1999, **Tim Peters** wrote the 20 principles of softwares among which only 19 of them were written down which influenced the design of Python Programming Language . It is published on public domain. [Click here to view](https://github.com/python/peps/blob/master/pep-0020.txt) It is also included as an easter egg in Python interpreter, which would be displayed by entering a statement ``` import this ```  Above picture consists the list of Zen of Python. **Features of Python Programming Language:** * *Open Souce:* You can freely use, make changes to it, use pieces of it in new free programs. Python is gaining its popularity because of its open source nature due to which it is being improvised day by day with the help of the community. * *Easy to learn and High-level :* It's easy to use because of its simple syntax and when you write programs in Python, you never need to bother about low-level details such as managing the memory used by your program. * *Portable:* It can be interpreted in various operating systems, including UNIX-based systems, various Microsoft Windows versions, Mac OS, MS-DOS, etc. * *Object-Oriented:* Supports procedure-oriented as well as object-oriented programming (OOP). Python has a very powerful but simplistic way of implementing OOP. * *Embeddable:* Python can be embedded in your C/C++,Java and other programs to give 'scripting' capabilities for your program's users. * *Extensible Libraries:* It has huge amount of standard libraries which can help you to do various things such as regular expressions, documentation generation, unit testing, threading, databases, web browsers, CGI, FTP, email, XML, HTML, WAV files, cryptography, GUI, Tk, and many more. **Uses of Python:** Many of us may be still wondering about "*Why python?*", or "*Where does it fit in?*" or "*What are its applications and uses?*". Here are few of the uses I listed. * *Web Development:* Python is used in web development. It's web frameworks such as *Django*, *Flask*, *Pyramid*, etc makes easy to design and create websites. *Django* is the most popular web frameworks and can be integrated with HTML, CSS, JavaScript, AJAX, etc. * *Data Science:* *Data science* is an interdisciplinary field of scientific methods, processes, and systems to extract knowledge or insights from data in various forms, either structured or unstructured. Python libraries such as *Scipy*, *Numpy*, *Pandas*, etc are widely used in data science. * *Artificial Intelligence*: Python is very useful in AI and machine learning. There are many platforms in python which helps in AI. *AIMA*, *pyDatalog*, *easyAI*, etc helps in AI, *Orange*, *Pybrain*, *pyml*, *milk*, etc helps in machine learning, *NLTK*, *gensim*, *Quepy*, etc helps in natural language processing and *neurolab*, *ffnet*, *PyAnn*, etc helps in neural-network programming. Above mentioned are tool and platform that helps in Artificial Intelligence. * *Game Development:* Python is widely used in making desktop games. It can be implemented in mobile games too but it's not much in practice. Libraries like *PyOpenGL*, *PyGame*, *Pyglet*, etc are used for game making purposes. * *Web Scrapping:* *Web Scrapping* is data scraping used for extracting data from websites. Most of the data scrappers use python libraries for web scrapping. Libraries like *Beautiful Soup*, *Requests*, *Selenium*, *Scrapy*, etc are used in web scrapping. * *Automation:* As already mentioned, python is a scripting language and many programmers write scripts in python to automate the process. **What is CPython? How is it different from Python?** CPython is the original Python implementation. It is called as CPython to distinguish it from other Python implementations, and to distinguish the implementation of the language engine from the Python programming language itself. Do not get confused CPython as programming language, it is just an implementation. Programming language is simply the rules and syntax for writing code. Python language uses CPython as the base; other implementations follow. If you are using python downloaded from [here](python.org), you are already using CPython. **Disadvantages:** As everything has it's advantages and disadvantages, python has also some disadvantages despite having many advantages. Here are some of it which I can think of. * Due to its open source nature and the huge community, changes and updates are frequent which may be hard to adopt. * It is an interpreted language and is often many times slower than compiled languages. * The language isn’t a good choice for mobile applications and memory intensive tasks. * It's near impossible to build a high-graphic 3D game using Python. * Comparing with popular database access layers like JDBC and ODBC, the Python’s database access layer is found to be bit underdeveloped and primitive, it requires more testing and has errors that only show up at runtime. **Conclusion:** Python is an open source programming language with lots of advantages and few disadvantages. It has huge potential in future.  It is widely used in AI, data science, machine learning, software development, etc. It has the huge community which helps in the development of python. It is one of the fastest growing programming languages. For more details and documentations visit: [Python.org](python.org) <br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@nilesh.katuwal/python-programming-language-or-or-what-is-cpython">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>