DEV Community

Cover image for Language Review: Python (Episode One)
Programmer Things
Programmer Things

Posted on

Language Review: Python (Episode One)

Python 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

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

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

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 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 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

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

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.

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

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 and Instagram for Hate-speech.

Stay Safe in this Pandemic, Peace ☮️.

Alt Text

Top comments (7)

Collapse
 
mattschwartz profile image
Matthew Schwartz

I've been using Python for many years and I don't think I've ever ran into an indentation error. IDEs and text editors have been assisting with indentation forever. Modern IDEs like Pycharm go a step ahead and warn you of bad indentation.

Although, I'm one of those developers who follows every language's syntax as I write it. Many developers write sloppy code and clean it up later. I could see it being frustrating in that situation.

Collapse
 
programmerthings profile image
Programmer Things

I know with the help of IDEs it's very hard to get indentation errors but there are situations when you don't have the luxury of having this advanced IDE's.

Sometimes back, I automated, some migration scripts that are actually running on a remote server and the only option I had for an editor was Notepad. It was a nightmare for me.

Other than that I totally agree with you 😊

Collapse
 
ldrscke profile image
Christian Ledermann

VS Code is also not the best Editor for python when it comes to indentation, I miss my good old Geany when it comes to that.

Collapse
 
programmerthings profile image
Programmer Things

I used Geany too earlier 😅 but Pycharm for Python is way better than VScode just like Intellij IDEA is for java 🙃

Collapse
 
ooozmi profile image
Usman

I totally agree with you as far identation errors are concerned. I faced a lot of issues when i started working on Python. Looking for some better approach in newer versions of it.

Collapse
 
programmerthings profile image
Programmer Things

Yes, let's hope for the best. Lots of people don't see this as a downside because they are used to it just like I am now :)

Collapse
 
jajodiatushar profile image
Tushar jajodia

Such a elegant post.
Was searching for this type of post for a while.