Language Review: Python (Episode One)
Tags: python, codenewbie, webdev, beginners
Published: 2020-08-05 06:58:12

[Python](https://www.python.org/) is an interpreted, high-level programming language. If you clicked on this article most probably you heard of this programming language before. Python is on the top of the list of articles titled "Best Programming Languages To Learn In 2020" and no doubt this language packs a lot of punch with its syntax, features, and wild used in the industry.

Well, now the basics introduction of Python is out of the way. Let's deep dive and do a review of this cold-blooded programming language (Pun intended 😉). 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/yl86n051jnwhxunne4v7.jpg)

So if you are still reading this article, I'm going to break this review of this Review Series of programming languages into five bullet points. For each bullet point, the programming language can get a minimum score of 1 and a maximum of 5, and the average of all five points score will be the final point for the programming language (Still with me?).

Let's start with the first point without further due cause I'm now starting to even confuse myself with this scoring system ;)

## __1. Learning Curve__

On to the first point learning curve, this is one of the most important points that contribute to the success of a programming language. And no doubt, Python ace on this point because of how simple the syntax is and how closely it relates to the English language. Even the setup and installation is very simple and fast, you just need to install the executable and add it to your path,  In Linux systems, it even comes pre-installed which is amazing. You don't need to remember a lot of syntaxes, you can learn lots of topics in less time compared to other languages. According to me, this is the best first programming language for a Newbie. 

So for the learning curve, __Python deserves a score of 4__.
 
I am not giving it a full 5 marks because once you start learning advanced topics like __Class__, __Lambda__, etc It will become difficult to keep up with the syntax when you'll try to understand those topics for the first time.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/lkuotgj8bwvx5cwhzumj.png)

## __2. Features & Library__

Python is a very powerful scripting and general-purpose language. Python has some very interesting and useful features that are going to be very helpful in your coding journey. One thing that I like so much about it is that it's an interpreted language (i.e, execution of code is done line by line from top to bottom) which makes debugging very easy for me. Python is also a cross-platform language (run similarly on different operating systems) just like Java. It is also open-source. Also, python has tons of libraries for different needs and is very popular among the people who are interested in Machine Learning. 

For features & library, __Python deserves a score of 3__.

The library manager PIP for python still is nowhere near to all mighty NPM which has a crazy amount of libraries for JavaScript and most of the features apart from scripting capability are also present in other languages. I know it sounds that I'm critiquing small points but I have to do it otherwise every language will get a 5 out 5 ratings, and I just to make this series fun with serious information :)  

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/1nif392luma7dznx8w85.png)

## __3. Community__

Community is a very important factor in our tech industry. It doesn't matter how good your framework or programming language is, or how efficient it is. If a person who is just starting out with the technology, you're offering doesn't have a large community then things get frustrating very quickly and very easily. For example, when I started to learn ruby on rails 5 years back. There was great documentation with a good community of people helping each other but that was not the case for ruby on rails. Without good resources and an active community, I suffered a lot and end up stopped learning Ruby On Rails. That was a bummer cause I liked how things were laid out in it.

Well, that was my grief about my past experiences, let's look at the community of Serpents i.e, Python Developers. I must say Python is the [Cristiano Ronaldo](https://en.wikipedia.org/wiki/Cristiano_Ronaldo) Of Programming Languages. It's quite famous and people love to use it in both their work and personal projects. The community is also great for python. It's an open-source product, people work on issues which is a big deal. There are lots of developers helping each other on Stackoverflow, Slack, unofficial forums, official forums, online groups, offline groups, and much more.   

For Community, __Python deserves a score of 4__.

Also, most of the python developers are not very experience cause the language has its charm for the last 4 or 5 years among vast developers. You can read this article [here](https://www.jetbrains.com/research/python-developers-survey-2018/) of a survey which was done in 2018 on python developers (You'll be surprised with the numbers). The point is I'm trying to make is that The python community still lacks experienced developers (10+ years). And believe me, having more experienced developers will help you be a better developer.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/mg9e42f2g7xjdn66e29u.jpg)

## __4. Job Opportunities__

I know how pleasing and soulful it is to work on your projects sitting in your bedroom with your warm coffee working late. You'll always see people accusing developers of "Just Doing it for the money." and I can't see why this is a problem if you're doing something that you love and you are earning money, that's the most lasting and peaceful thing anyone can ask for. 

On Job Opportunities, Python is a flexible language and the job opportunities are as well. You can work as a developer to build websites, optimize algorithms, write usable and efficient code. Data is key in this era, with the power of Python you can use data to your advantage and land a high paying job as a Data Analyst, Data Journalist, Financial Advisors. There are a lot of awesome jobs for Python developers. Also, Python is one of the top 5 Job skills that and organization looks for.

For Job Opportunities, __Python deserves a score of 3__.

I don't want to give Python 3 for job opportunities but still, python is behind in the race of job opportunities. Below is the list of jobs that leads the market with most job opportunities. Below is the list of job posting for different languages.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/bjz0cvn6bkohzkaq43w5.png)

## __5. Pain points__

On to the point that I saved for the last, OH BOY I'M EXCITED!
Before I write anything more stupid let me just take a second to say that `Python your Indentation Error is shit` and believe me I can't tell you how much I've suffered on important projects and tight deadlines because how frustrating it becomes sometimes due to the indentation. I mean you removed semicolons (WOW), removed braces (MIND BLOWN) but stupid indentation errors (LOL). So without wasting more time lets waste some more time by continuing this article. 

{% twitter 1290891600080642050 %} 

Apart from multithreading, what the heck is going on with the versions of Python, You released version 3.x after 2.x and community gave a big middle finger to you and you agreed on that. I know features are improving, you guys are fixing issues, but there is a legacy code issue with this two different versions. And if you're a beginner I'm sure you've come across Pythons weird scoping rule. Also, the execution time of pure python code is slower compare to other languages like C and why are we not allowed to write multiple lines code into lambdas. A little point in which Object-oriented programming language, someone passes the first argument of a method present inside of a class as "self" ( I mean seriously how self-ish are you 😉). 

For Pain points, __Python deserves a score of 2__.

I know I'm being a little harsh here, but when we want to create scalable and efficient applications, Execution time and Multithreading are some of the most important things that you need your programming languages to have. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/4uf1f69seh63m4rwx770.jpg)
<br>

## __Conclusion__

Well, if my math is correct which is correct cause you know I'm a software developer 

#### __Python gets a score of 3.2 out of 5__

No language is perfect every programming language has its pinpoints. __And in my opinion, Python is a great first language to learn__.

At last, what I want to say is that I had a lot of fun writing this blog. Always want to start this series but I hesitated every time I started to write. But finally, I've done it. And, if anyone of you is still reading I hope you liked it! 

If you want more of this type of blog, Comment below which language I should review next. And if you hated it, my DMs are open on [Twitter](https://twitter.com/programmerthing) and [Instagram](https://www.instagram.com/programmerthings/) for Hate-speech. 

Stay Safe in this Pandemic, Peace ☮️.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/2t3aplbig9legmdn5qg9.png)