Python Explained (By a Non-Developer)
Tags: python, datascience, machinelearning
Published: 2020-10-15 15:00:24

Another week, another “Explained By a Non-Developer” blog! Are you tired of ‘em yet? This round is dedicated to another cult favorite programming language, Python. Before I did any research on Python these are the things I could tell you about it (or at least things I thought I knew):


1. It’s loved by many, and many prefer this or JavaScript while others might like old school languages like Java or C++. I See Python as another “new kid on the block.”
2. Python is easy to learn and great for #CodeNewbies wanting a gateway into coding. 
3. Python is excellent for data science and is the most popular language when it comes to things around Machine Learning or data visualization. 

And that’s the list. I didn’t even know what types of frameworks there were for Python, where it came from, reasons why there were fangirls/boys who lived by Python, or how it came to be. So let’s dive in. 


###How Python Became Python

So by now, I think it’s safe to say that I will be starting out each one of these blogs with a little history lesson. I think it’s pretty interesting to see how all of these technologies came to be. Python emerged on the scene in 1991 and was designed by [Guido van Rossum](https://en.wikipedia.org/wiki/Guido_van_Rossum). He also founded the [Python Software Foundation](https://www.python.org/psf/) at that time. It was born to help with making code a little more readable, which I find great, because it opened the doors of coding to so many more people and I am sure it helped build out a path where people don’t have to have a four year computer science degree to become a developer.  If you want a more full history of where Python came from and what led Guido to design it, [you can check out this article here](https://www.geeksforgeeks.org/history-of-python/).

By 1999 Guido decided to give a list of his [goals for the programming language:](https://pythoninstitute.org/what-is-python/)


- an easy and intuitive language just as powerful as those of the major competitors;
- open source, so anyone can contribute to its development;
- code that is as understandable as plain English;
- suitable for everyday tasks, allowing for short development times.

From there, Python has exploded and does exactly what Guido hoped, it became an easy language for folks to learn to code. Since it is open source, frameworks and ecosystems have been built to make Python a go to coding language for many across the world. 


###What Makes Python Different (from Java, JavaScript, C++) and Where it Excels 

Beyond Python being understandable, easy, intuitive, and useful for everyday tasks like rapid app development, what makes Python different and where does it beat out its “competitor” programming languages? Well as Guido stated in his goals, the code is in plain English so it doesn’t feel like you are looking at a foreign language like some other programming languages. This means people can learn it faster and develop applications and tools quicker using Python. Today, major companies use Python for building out their products including Dropbox, Uber, Buzzfeed, and Pinterest… to name a few.

Python is ideal for data science, including machine learning, data visualization and analysis. It's the [preferred language for all things data science](https://marutitech.com/python-data-science/#:~:text=The%20full%2Dfledged%20programming%20nature,results%20for%20data%20analysis%20jobs.) because of how easy it is to learn and use, its scalability (which in this case means it can be faster than other languages and more flexible for solving different problems), and there is a huge selection of data science frameworks available within the Python programming language. If you need to review the concept of frameworks within a programming language, you can reference [my first article in this series on JavaScript here.](https://dev.to/harperdb/javascript-explained-by-a-non-developer-4mli)

[Scripting is another use case](https://www.freecodecamp.org/news/what-can-you-do-with-python-the-3-main-applications-518db9a68a78/) where Python is ideal. I didn’t know what scripting was before this blog, but after doing some research I learned that it is writing code to automate small tasks such as counting contacts that match certain criteria or making simple API calls. APIs, or application programming interfaces, are defined calls or requests for your code to perform an action. For example, an [API call for HarperDB](https://docs.harperdb.io/#a0bebb44-2ac8-406a-a45e-5754dc92aaa8) is "create_schema" and when you call that from the API, it will create a schema in HarperDB.


Django Unchained (Not the killer movie, but the killer framework)

Just as JavaScript has many frameworks beneath it, Python has an entire ecosystem as well. The most popular framework from what I have seen on the web is Django. I could be wrong, comment below what your favorite Python framework is! [Django’s tagline](https://www.djangoproject.com/) is, “a web framework for perfectionists with a deadline” and well if I was a developer, it sounds like the perfect framework for me. It’s very high level and great for rapid app development which fits in nicely with Python as a programming language overall. Here are some other popular frameworks along with what how those frameworks are used:


- [Pyramid- full stack framework](https://scoutapm.com/blog/the-most-popular-python-web-frameworks-in-2020) 
- web2ply- full stack framework focused on ease of development 
- TurboGears- a highly scalable framework for Python
- [NumPy- a top general purpose data science framework](https://hackernoon.com/6-best-python-based-data-science-frameworks-mt2m3ygv)
- Scrapy- popular framework for data science
- [TensorFlow- the best framework for machine learning](https://towardsdatascience.com/best-python-libraries-for-machine-learning-and-deep-learning-b0bd40c7e8c)
- Keras- a popular neural network library for Python 


Did I miss any? Let me know!


###Code with Joel-Python App and Machine Learning 

I would be remiss if I didn’t mention that the reason I picked Python this week is because my team at [HarperDB is hosting a code along featuring our Python SDK](https://harperdb.io/machine-learning-python-and-harperdb/). We have invited Joel Wasserman, a Google Engineer and Startup Founder, to walk attendees through building out a Python app with HarperDB and then training a machine learning model on the data. Joel will be using the SciKit-learn Python package to train an ML model that predicts whether it's safe to go skydiving based on weather reports.  We held a similar event last month with Cassidy Williams building a React App, so if you want a taste of what to expect, you can watch her [code along here](https://www.youtube.com/watch?v=35Nw4zYyaT8&t). 

To wrap up it all up in a nice pretty bow,  I will leave you with the highlights of what I learned about Python:


- Python was designed in 1991 by Guido van Rossum and he created Python to provide a coding language in plain English that was easy to learn and easy to use. It is open source so that folks can build upon Python, and meant for everyday tasks and rapid development.
- Python is indeed loved by many for how simple it is and how easy it is to learn, it’s an excellent option for startups and companies looking to rapidly develop and modify a product along with code newbies trying to get their feet wet. 
- Python is excellent for data science use cases including machine learning and data visualization, while also being great for scripting and web app development. 
- There is a huge ecosystem around Python with endless frameworks including the popular Django and TensorFlow.

I would say, Guido van Rossum’s goals for Python have all been achieved and I can bet he is pretty proud of Python! If you want to practice your Python skills and learn how to train a machine learning model, [RSVP to our free Python event!](https://harperdb.io/machine-learning-python-and-harperdb/)