blog posts

Python; A Programming Language for Everyone

There is no doubt that Python is one of the most popular programming languages in the world and has become one of the top 3 developer languages ​​in the last ten years. 

According  to  a 2020 Stack Overflow survey , more than 40% of developers are currently working with Python , and another 30% are eager to learn the language.

Where did this language come from, why is it so popular, what are the best Python frameworks and libraries, what products can be developed with it, and what companies and organizations use it? You will find the answers to all these questions in this article.

If you have not yet started learning this language because of your perception of the difficulty and complexity of programming languages, know that Python is truly a “language for everyone” and easy for everyone to learn.

Python’s birthday story

Python programming language

Python was born in December 1989 during the Christmas holidays in Amsterdam, the Netherlands. Khido van Rossum , a Dutch programmer at the CWI Institute for Mathematical and Computer Science Research at the time, decided to write an ABC-based commentator for the long-awaited new scripting language for the Christmas holiday. .

ABC is a versatile, high-level programming language similar to BASIC and Pascal, developed at CWI. The purpose of the ABC was to teach programming and prototyping, and because it was high-level (that is, it resembled human language), it was easily read in English and was the best way to teach beginners how to do loops, logic, and data.

Van Rossum had been working on the ABC project for several years and used many of its features in Python. The reason for choosing the name Python for this new language was his interest in the series ” Money Python Bird Circus “.

Khido intended that application development be possible easily and without worrying about hardware, memory management, and the like; So he decided to invent his own programming language, to get his ideas inspired by ABC, but to reduce the project time from three years to quarterly projects; And that’s how Python was born.

The name Python is derived from the comedy series Python Monty

In February 1991, Van Rossum published the Python code in alt.sources. alt.sources was like a forum where people shared their source code, and it can be considered one of the first platforms to help develop open source projects.

Python is an interpreter language, meaning that text code is written in the form of a file, and then the interpreter reads the file line by line and converts the code into computer-understandable instructions. In fact, the Python language was based on the principle of comprehensible programming for all , and Van Rossum adhered to this principle throughout his career.

Early Khido did not have much hope for Python’s popularity. Before the advent of the Internet, it was difficult to persuade people to use the new programming language, and in the 1980s, Khido had to travel and distribute magnetic tapes to people for years to promote the ABC.

ABC could not make room for programmers at the time; For this reason, Khido did not expect much from Python, although introducing Python, which was enough to  download from Usenet , was much easier than distributing magnetic strips from house to house.

خیدو فان روسوم

But in 1995, a company called Zope was founded that specialized in the production of flyers for the Internet.

Zope created dynamic web pages written in Python. In fact, the company can be considered one of the main reasons for the popularity of Python in the early days. Zope is led by a team of Python developers, joined in 2000 by Van Rossum.

It was around this time that Van Rossum was dubbed the “benevolent dictator for life” because he was the inventor of the language and controlled its development. The title was later given to textbook project leaders who were the founders of the project and who had the final say in discussions and disagreements.

Version 2 of Python in October 2000 quickly became popular in the system segment, as developers were able to use this version to find creative ways to automate their processes.

During this period, web development also grew significantly, and frameworks such as Jinja , Flask , and Django  emerged, and large associations were immediately created for these frameworks.

Python mechanism

In 2001, the Python Software Foundation was founded, an American non-profit organization dedicated entirely to the Python language. The foundation is also responsible for hosting the Python Conference, which is held in 40 countries.

By 2010, Python-based frameworks were in the top ten, despite the growing number of competitors to dynamic websites. In fact, the 2000s are arguably Python’s heyday.

According to TIOBE , in 2000, Python was the 20th most widely used language. It climbed to sixth place by 2005 and is currently in third place after C and Java. The website selected Python as the “Programming Language of the Year” in 2007, 2010, 2018 and 2020.

Python was chosen as the “Programming Language of the Year” for four years

In 2005, Van Rossum joined Google and started working on the Google App Engine, the Google application engine that runs Python applications in the cloud  . Python’s bright future was guaranteed by Van Rossum joining Google.

Version 3 of Python was released in December 2008, and because it was not compatible with Python 2, it caused a lot of trouble for developers. Some developers preferred to work with Python 2 and others with Python 3.

Although Python was popular among tech startups, it had no place among the big companies. It wasn’t until the late 2000s that MIT student Drew Houston , after leaving his flash drive at home, thought of creating a file-sharing space, and in 2007 introduced the Dropbox software for this purpose.

Dropbox was written with Python and reached three million users in one year, attracting the attention of large companies. Since he wrote Dropbox with Python 2, Van Rossum joined the team in 2013 to translate the program into Python 3. Van Rossum worked with Dropbox until his retirement.

It was in October 2019 that Van Rossum officially announced his retirement and resigned as “eternal benevolent dictator.” Following Van Rossum’s retirement, the main Python developers formed a board of directors to decide on future changes to Python, of which Van Rossum is a member.

Today, Python has become so big and popular that more and more people are making decisions about it.

In November 2020, Van Rossum announced that his retirement period was boring and that he had now joined the Microsoft Developers Division  . He promised in a tweet to improve the use of Python (not just for Windows).


Zen of Python

Tim Peters, one of Python’s main developers, wrote a set of programming principles in 1999 known as the Zen of Python. Python developers and programmers continue to strive to adhere to these principles. To view these principles in the Python interpreter, just enter the code “import this” to display this list:

 

ذن پایتون zen of python

  •   Beautiful is better than ugly.
  •   Explicit expression is better than implication.
  •   Simple is better than complex.
  •   Complex is better than complicated.
  •   Straight and smooth is better than nesting.
  •   Scattered is better than dense.
  •   Readability is important.
  •   Special cases are not so special as to break the rules.
  •   Although feasibility is purer.
  •   Mistakes should never be ignored.
  •   Unless they are explicitly silent.
  •   Avoid the temptation to guess when faced with ambiguity.
  •   There must be a clear (and preferably only one) method for doing this.
  •   However, this method may not seem obvious at first unless you are Dutch.
  •   Now is better than ever.
  •   Although “never” is often better than “right now”.
  •   If its implementation is difficult to describe, it is a bad idea.
  •   If it’s easy to describe its implementation, it might be a good idea.
  •   Letter space is a great idea, let’s use it more!

Reasons for Python’s popularity

What if users can program for their own computer? We look to the future in which every computer user will be able to “raise the hood” and improve the applications inside their computer. We believe that this will fundamentally change the nature of software and software development.

These were the sentences that the “Computer Programming for Everyone” project used to introduce itself. Van Rossum started the project to encourage people to program, and he believed that the programming language should be simple and understandable so that any computer user could easily learn it.

Although Python is slower than Si and Java and is not suitable for designing applications that require high speeds to run, including heavy games, it has many advantages that make it one of the most popular programming languages.

Here are some examples:

1. Easy to learn and use

Learning and using the Python language is very easy for beginners, because it has a simple structure, legible codes and commands very close to English, and requires much less code lines to execute tasks than other languages.

2. Python Sponsor Association

Python Forum

Python was created more than 30 years ago, and since then the Language Developers Association has grown to support any developer at any level, whether beginner or professional. There are many free tutorial resources and instructional videos for learning Python in this community and all over the internet, so people who choose this language to learn will not have to worry about lack of resources.

3. Support large sponsors

Programming languages ​​are growing faster with the support of large companies. Facebook supports PHP, Orekle and Sun support Java, and Microsoft supports Visual Basic and Cisharp. Python also has the support of Facebook, Amazon web services, and especially Google. Since 2006, Google has chosen the Python language to develop many of its applications and platforms.

4. Hundreds of Python libraries and frameworks

Due to its large sponsors and active community, Python has a diverse and unique library that saves programmers time to use. There are many cloud multimedia services that support Python programmers across different platforms through library tools.

5. Adaptability, efficiency, reliability and speed

Python can be used in a variety of environments, including mobile and desktop applications, web development, and hardware programming. Python versatility has made it the first choice of many programmers in various fields. Although Python-written applications run slightly faster than compiled languages ​​such as C, Python application development takes much less time and takes up less memory space.

6. Metadata, machine learning and cloud computing

Python is the most popular programming language after R (R) in the field of data science and analysis, because it is a very understandable language for many researchers who do not have a background in programming. A large amount of data processing in companies is done only with Python. Most R&D projects are also done in Python, as Python has many applications, including the ease of analyzing and organizing usable data. In addition, hundreds of Python libraries are used in thousands of machine learning projects every day.

Realizing the importance of Python, the employment of Python programmers has greatly increased by mastering the principles of data science.

7. Python language flexibility

Python is so flexible that it allows the developer to try a different project each time. The Python does not limit developers to developing specific applications and leaves them free to create any application. By the way, migrating from JavaScript to Python is very easy for people who want to go from front to back , although the two languages ​​are different.

8. Using Python in universities

Due to the use of Python in the field of artificial intelligence, deep learning and data science, today this language is used to teach programming in schools and universities.

9. Automation capability

The many tools and modules that Python provides to the developer make the process of automating or automating repetitive and tedious tasks very easy and save time. Meanwhile, the number of lines of Python code for developing automation tools is so small that it amazes the programmer.

10. Python is the language of startups

Easy to use, fast development and low costs make Python a good choice for small startups with limited budgets. With the increasing popularity of social media and the explosion of data in this platform, many startups active in the field of data analysis are moving to the Python language.


Python Frameworks

Python frameworks are a set of modules and packages that help programmers to accelerate development. These frameworks automate common processes and implementations, and save time, allowing the developer to focus solely on application logic and leave the execution of these normal processes to the framework.

Python frameworks are generally divided into two categories:

  • Micro-framework (micro-framework) that are easy and convenient to use and suitable for developing small and medium applications.
  • The full-stack framework, which is more complex in nature, provides wider libraries, is data-driven, and is used to develop a variety of applications.

Developers need to have access to Python language frameworks to build applications. Here are 5 examples of the best and most popular Python frameworks:

1. Django

Jango django

Large companies use the Django framework to save time and less coding in developing web applications. Django is a full-stock framework and is hugely popular because it is free and open source.

In fact, Django is so popular that if you go to a Python developer, wake him up and threaten him with a gun and ask him to design an app for you, do not doubt that he will automatically go to Django.

This framework includes all the necessary features by default, but its main feature is the emphasis on the principle of “avoidance of duplication”. Developers save time developing their projects with the help of Object-Relational Mapping, available in the Django framework.

Large companies and organizations that use the Django framework to build applications include:

  • NASA
  • Instagram
  • UDEMI
  • Youtube
  • Washington Post

2 . Flask

Flask flask

Philosophy falls into the category of micro-frameworks, meaning that it focuses on the basics and leaves the rest to the developer. The Philosophy framework is a great choice for people who know exactly what they want and want to get their hands on when designing open web applications. This framework is also a good choice for medium to large scale emergency projects. In cases where Django does not meet your needs for web project development, you can turn to philosophy.

Famous brands that use Philosophy include:

  • Netflix
  • Elevator (Lyft)
  • Airbnb
  • Reddit
  • Mailgun ‌

3. Bottle

bottle Battle

If you think that Philosophy does not leave you free enough to design the application you want, go to Butel . The Battleframe framework is a good choice for developing very small applications (for example, less than 500 lines of code) that do not require special features. Because Butel is a micro-framework, it only depends on the Python standard library.

Of course, keep in mind that in practice, using the Butel framework may interfere with your work; If you needed to add a special feature to the app in the middle of the project, you would be in trouble, because Butel puts all the code in a single file. The Battlefront framework is not suitable for developing large applications.

4. CherryPy

Cherry pie cherrypy

Cherypay is an open source Python microframework . Its minimal design is suitable for building web applications that can run on a variety of platforms, including Windows, Mac OS, Linux, and any other operating system that supports Python.

Chrysanthemum is a good choice for startups, as it has few limitations. This framework uses all kinds of technology for formatting, data access, etc., and can easily handle sessions, statistics, cookies, file uploads, and the like. The Chiropai Association supports both beginners and professional developers.

5. Web2Py

web2py

Web2Py is a full-stack framework and is a good choice for developers and data scientists because of its data management capabilities. This framework is mostly used for projects related to data collection and analysis.


Python Libraries

The main difference between a framework and a library is their “complexity”, which is less common in libraries. A library is a set of packages that execute specific operations, while the framework contains the application architecture.

When a developer calls a method from the library, he or she is in control of the development process; But in the case of frameworks, process control is in the hands of the framework, not the developer. However, frameworks are used more than libraries because they are more flexible and provide tools to help the user expand their features. Here are five of Python’s most popular libraries

1. TensorFlow

Tensorflow tensorflow

TensorFlow is an open source library suitable for neural network projects, computational graphs, and machine learning applications. This library was created by Google in collaboration with the Brain Team Artificial Intelligence Research Team; For this reason, the library is present in almost all Google machine learning applications.

2. Scikit-Learn

Scikit-learn scikit-learn

This library is also for Python applications that focus on machine learning and is an ideal option for verifying models monitored by unseen data. Scikit-Learn also offers an efficient approach to clustering, factor analysis, and principal component analysis for unsupervised neural networks, and is a good choice in the field of image processing, such as extracting features from images and text.

3. Numpy

The name of the numpy pie

Numpy is a library that other libraries, such as TensorFlow, use as their internal library to perform multiple operations. Because Python deals with applications in the field of data, Numpy helps developers a lot with its sophisticated capabilities.

The main advantage of interactive capabilities is their ease of use. This library simplifies complex mathematical implementations. If you are thinking of doing a project in the field of data science and machine learning, using the Numpy library will help you a lot in this direction.

4. Keras

keras کرس

Keras is Python’s machine learning library, providing a fluid mechanism for developing neural networks. Cress also offers the best applications for model compilation, data set processing, diagram illustration, and more.

This library is used to develop Python-based backends and applications. Uber, Netflix, and Instacart, for example, use this library. In addition, machine learning startups at the core of their product design have a special look at this library.

5. PyTorch

Pytorch

PyTorch is one of the largest machine learning libraries that allows developers to perform tensor calculations and performs well in the field of neural networks. If you are interested in Natural Language Processing (NLP), the PyTorch Library is a great choice for your projects.

Facebook developed the library in its artificial intelligence research group, and Uber uses it in the back-end of Pyro programming software. PayTorch has grown in popularity since its inception and has attracted the attention of a growing number of machine learning developers.


What projects can be developed with Python?

Python Projects

Learning the basics of Python is one side of the issue, but what can be done with this skill now is another story and may be challenging for some. Here are 15 interesting and practical projects that can be developed with Python, which are good options to start: ‌

1. Organize files in the system

Python can be easily used to automatically organize files on the system. Operations such as renaming, copying and moving hundreds of files can be done in just a few seconds by writing a piece of Python code. For example, the free and open source software beets, which is dedicated to organizing music files, uses Python and allows the user to manipulate the code and even write the plugin.

2. Cataloging

Using Python, you can save a list of your favorite websites on the Python command line instead of bookmarking your favorite websites and having trouble moving them from one browser to another. For example, buku bookmark management is written  in Python 3, and in addition to managing the list of favorite websites, it has the ability to auto-tag, fix broken links and search the database, and even lock and encrypt your directories.

This program is an open source project, and if you have an idea and do not know what to do with it, you can add it as a new feature to this project so that other users can use it.

3. Build a resume on a static website

Written in Python, Pelican is for building static websites and is a great option for building clean yet interactive resumes. In Pelican you can access Python code and change it to your liking as much as you want.

4. Build dynamic websites

Python web frameworks such as Django and Flask will help you to build dynamic websites with a lot of capabilities. Instagram, for example, uses Django and Pinterest, and both have the ability to manage high-resolution images, complex user interactions, and responsive web design elements, and use Python in their backend.

5. Data illustration

Data visualization with Python

Python libraries offer a large set of tools for data visualization to make it easier to analyze data using charts and maps. With the Python-based Seaborn  and Matplotlib illustration libraries , you can easily graph and map your data, and use libraries like Bokeh to add more interactivity.

6. Building a neural network

Companies like Uber use neural networks to connect passengers and drivers and even improve the quality of food and restaurant offerings. The Python language is also at the center of these activities. According to Uber, Pytorch’s library for deep learning is a steady step in the development of the company’s algorithms.

Python provides libraries such as Tensorflow and Cress for deep learning projects. By learning Python and using these libraries to build neural networks, you will gain a skill that will be useful in various projects for years to come.

7. Build a bidder engine

Analyze emotions with Python

Another popular use of machine learning is the proposing engine. Python libraries such as NumPy and Scikit-Learn provide the user with a wide range of tools to create a platform for product offerings, such as in online stores. For example, Spotify and Netflix use this data stack and combine it with large data frameworks such as Apache Hadoop to analyze data and suggest their favorite music and movies to users.

8. Analyze user feedback

Sentiment Analysis helps businesses make important decisions, and the Python data science stack, its natural language toolbox (nltk), and its combination with simple, supervised learning algorithms can quickly capture comments, tweets, or any feedback from Check the user side.

9. Collect data from websites

Of course, many of the projects mentioned so far are not possible without data collection. With the help of Python and libraries and frameworks such as Selenium , ScraPy and BeautifulSoup, you can easily extract information from various websites. In addition, Python integrates easily with existing APIs and helps extract structured data quickly and efficiently from websites.

10. Build mobile applications

More than 45% of the world’s population uses smartphones, which is why the mobile app market is always hot. With the help of Kivy Python framework, you can develop applications that can run on different operating systems. Dropbox, for example, used Python to build its mobile app, which runs on Windows, Mac OS, and even some Linux distributions without any problems.

11. Ramzarz Exchange

With the help of Python, it is possible to create a cryptocurrency trading robot that is active all the time and operates independently of the user. It is also possible to predict the best time to buy and sell cryptocurrencies by combining machine learning algorithms in this bot. Even if you yourself are not interested in entering the field of cryptocurrency trading, your bot can have a high price in the market.

12. Build social media bots

With the help of Python, bots can be created to carry out a large number of your online activities on social networks. With libraries like Tweepy and InstaPy , you can connect directly to social networking services, or write a bot code and connect it to the API, just like those provided by YouTube or Reddit or Discord.

13. Making chats

Python makes it possible to build complex chats by integrating nltk with machine learning libraries. Libraries can even help PyAudio and Speechrecognition , and add speech to text feature, add sound to your Chtbat.

14. IoT connection

With tools like Arduino and Raspberry Pi, you can build robots, home appliances, and small devices that connect to the Internet of Things and use the Python language. MicroPython , for example, is an open source project that simplifies programming for microcontrollers. You can even use Python to set up your firewall or irrigation system .

15. Use the capabilities of other languages

Sometimes the project you have in mind can not be written completely with Python. In this case, you do not need to completely abandon Python and move on to other languages; Rather, Python flexibility allows you to use their capabilities in your Python project with the help of special Python extension modules wherever you need to use another language, such as C or C ++.


What companies use Python?

Many of the world’s largest and most successful technology companies and organizations use Python to develop their website backend or data analytics. Here are some of them: ‌

Instagram

Instagram instagram

Instagram, the world’s largest photo-sharing app with nearly 400 million daily active users, uses the Django’s Django framework for its backends, citing Python simplicity and popularity.

GoogleGoogle google

With 75% market share, Google is the most used search engine in the world. Google has been a fan of Python from the beginning, and its founders decided to “use Python wherever possible and C ++ wherever necessary.” Easy to use Python It’s enough that Google’s first web crawler, written in Java, was later rewritten in Python to make it easier to use.

Spotify

Spotify spotify

Spotify, a music, podcast and video platform, was launched in 2008 and has more than 75 million members to date. While the Spotify website uses WordPress, its application is built with Python. Eighty percent of Spotify services are Python-based and the rest are based on other languages ​​such as Java, C + and C ++. Spotify uses Python for data analysis and backend services.

Netflix

Netflix netflix

With over 33 million members in 40 countries, Netflix is ​​the largest Internet television network in the world. Netflix, like Spotify, uses Python to analyze data. In addition, it allows its software engineers to code in any language they are comfortable with, and most Netflix programmers prefer Python. According to Netflix engineers, the Python Standard Library, its highly active and growing community, and the wide variety of libraries available, make it possible for developers to solve any problem.

Redit

Reddit reddit

The Reddit website has 50 million daily active users and is the eighth most visited website in the world. Reddit initially used Lisp, but was rewritten with Python six months after its release. The reason for this change was Python’s access to more diverse libraries and its flexibility in development. When hiring a programmer, Reddit  tells them that whatever they write should be in Python so that it is easier to read and it is easy to see if the code they wrote is good or bad.

Python language is very popular among large companies and organizations. Other examples of well-known companies that use Python include:

  • Facebook
  • NASA
  • Cora
  • Pinterest
  • Youtube
  • Dropbox
  • Amazon
  • Uber
  • Elevator
  • CIA
  • PayPal
  • Nokia
  • IPM

Install Python

Python logo

Python can be installed on Windows, Linux, Mac OS and certain platforms such as IBM AS / 400, iOS, Solaris, etc., and there are several ways to install it.

The easiest way to add different capabilities to Pure Python, especially for data scientists, is to download it from the Anaconda site . The package you download from this site includes Pure Python, Essential Libraries for Scientists and Machine Learning (such as Letters, Scorpions, and Pandas), as well as two coding tools, Spyder and Jupyter Notebook.

Installing this package is also very easy and just select your operating system and click on download.

You can also download Python from its official website . Just be careful when installing, click on “Add Python 3.x to PATH”. If you have no background in Python and want to start learning from scratch, it usually takes three months to learn it. But if you plan to use Python in data science (for example, for data analysis or machine learning), learning it takes less time, because for data science you only need to use a certain language and understand its basics.

It does not take more than one to two months. According to 365 datascience , if you spend 5 hours a day learning Python, you can learn the basics of data science analysis in Python within a month.


The future of Python

The future of Python

Starting modestly as a small project for the Christmas holidays, Python has gone through a long and tumultuous journey to becoming one of the world’s most popular programming languages. Many of the key principles that led to the birth of Python, including simplicity and ease of understanding, still hold true to this language and define its future development path.

Python has taken over the field of data science; But its presence in smartphones is low

Although Python is becoming more and more popular and has practically taken over the field of data science, there are challenges ahead. For example, the presence of Python in smartphones, which are more common these days than computers, or multi-core processors, is very small.

In addition, Python has a wider range of users because it is “sticky”, and programmers are pushing the boundaries of the language every day with their creativity and innovation. Many people think that Python is only used in backends, but the capabilities of this language are much more than that.

In the words of its creator, Khido van Rossum, “Python is an experiment in determining the degree of freedom required by programmers. If it exceeds its limit, no one can read another person’s code. “Even if it is too small, the ability to express an idea is compromised.”