DEV Community

Cover image for Do you think Python is overrated ?

Do you think Python is overrated ?

Bek Brace on May 27, 2022

Conversation between a friend [Java programmer] and myself: Me - I code in Python Her - I h ate Python, it's overrated Subscribe in Bek Brace YT C...
Collapse
 
nombrekeff profile image
Keff

This tells more about your fiend than Python.

It's not overrated I don't think, neither is any programing language (apart from solidity and other web3 stuff xD). They all have their place, and we, us developers have the choice to decide what language to use in each situation. Once you know the basics and have a good skillset, the language becomes almost meaningless, you pick the one most appropiate for the task at hand.

Collapse
 
rjrobinson profile image
R.J. Robinson

I can't express in words how true this is. "programming" fundamentals is paramount. After that, the rest is just learning the nuances.

This month I have written production Java and python. 2 languages that i've never pushed before. ( ruby dev here )

Collapse
 
bekbrace profile image
Bek Brace

how long have you been developing in Ruby ?

Collapse
 
bekbrace profile image
Bek Brace

I agree, and I think the main reason she despised Python is only because of its syntax, surprisingly, as she felt more comfortable with C like languages.
But, apart from my colleague, I've read a lot of opinions, especially on Twitter (i don't like to go there often for obvious reasons!) that Python is overrated

Collapse
 
nombrekeff profile image
Keff

Makes sense, we tend to not like stuff we're not familiar with.

I don't use Twitter at all, I despise it, makes me angry each time I use it

Thread Thread
 
bekbrace profile image
Bek Brace

same for me, Keff :)

Collapse
 
ben profile image
Ben Halpern

I think it's silly to be as reductive as just "Python is overrated", but to entertain that idea: Yeah, I think in some ways Python is overrated.

I see Python held up on a pedestal for some of its data/academic use cases, or just as the only language to do certain type of work in — but in my experience I can find a library for most of the cool data stuff in any other popular language and I have never felt the need to get into Python deliberately for this purpose.

Python is a much loved programming language for a lot of reasons, but I have definitely met some people who overrate it for one reason or another.

All that being said, saying "I hate Python, it's overrated" is just a personal stance which is fine to have, but doesn't need to be taken very seriously. A lot of people would say that about JavaScript, and they're not wrong, but they're also only right on their own terms.

Collapse
 
etienneburdet profile image
Etienne Burdet

Agreed, I think it's over-rated because it's the default choice for too many things and increasingly so. It's the lazy "no-risk/no-reward", choice for too many things, where , yes things are doable and people know it, from data-science to backend plumbing, but rarely the best choice.

Collapse
 
bekbrace profile image
Bek Brace

Absolutely 100% I agree with those words

Collapse
 
leob profile image
leob

Thoughtful comment ...

Collapse
 
tandrieu profile image
Thibaut Andrieu

I don't think python is overrated, but I can understand people feel it is.

First, Python is a golden hammer:

  • Want to build a web server ? flask can do that.
  • Want to do super fast scientific processing ? numpy can do that.
  • Want to build desktop application ? pyQt can do that.
  • Want to do quick'n dirty tools for your build system ? Python can do that.
  • ... But like any golden hammer, you reach the limits when your application scales.

Python is slow when badly used (sorry to emphasis, but well used python is extremely fast, even faster than average C++ program). The problem is that python is very bad in doing loops and if.

So, you want to have a look to pyhon, you write an hello world program that sum integer from 1 to n and end up with:

res = 0
for i in range(0, 100000000):
    res = res + i
Enter fullscreen mode Exit fullscreen mode

And then you scream "Oh my god that's so f*** slow !!!"

But then, you try for example

import numpy
range = numpy.arange(0, 100000000, 1, dtype=np.float32)
range.sum()
Enter fullscreen mode Exit fullscreen mode

And you gain nearly an order of magnitude.

Collapse
 
bekbrace profile image
Bek Brace • Edited

Totally, and even with this problem:
res = 0
for i in range(0, 100000000):
res = res + i

If you think you can fix it with list comprehension:
item = [n+1 for n in range(100000000)]

Then you're wrong, it's so slow

CAUTION Do not try that code, it will slow your system and will freeze the transistors even for some time!

Collapse
 
cicirello profile image
Vincent A. Cicirello

The reason the numpy version of your example is fast is that numpy is written in C. You're really contrasting interpreted Python execution speed (your first example) with natively compiled C execution speed (the numpy version) in this example.

Collapse
 
tandrieu profile image
Thibaut Andrieu

Well, that's the problem. When talking about a language, you don't talk about only the language, but all its ecosystem, its libraries, its package manager, its interop, etc...
WebGL is base on vendor's OpenGL implementation, which in the end are written in C. Does this means OpenGL is not a Javascript library ?
Some part of OpenCV C++ are written in CUDA. Does this means C++ is not fast because it uses CUDA libraries ?

Développer est maintenant plus proche de coller des briques ensemble que d'écrire un algorithme pur en utilisant uniquement le langage.

Thread Thread
 
cicirello profile image
Vincent A. Cicirello

CUDA is a C/C++ interface enabling utilizing GPUs. It isn't a general purpose language that can be compared to C++. It is complimentary to C++, enabling utilizing hardware that you couldn't otherwise directly use. It is the GPU that is speeding things up in that case and not an alternative language.

In the case of numpy or scipy (both great libraries that I regularly use), the speed advantage comes because those libraries are native C implementations. The Python modules are just wrappers. If they were implemented directly in Python, they would be slow by comparison.

One of the advantages to Python is the combination of (a) it is relatively straightforward to provide a Python interface to C, and (b) its relatively simpler syntax, etc compared to other languages. This is likely why it has been so widely adopted in data science and scientific applications. All of the computationally intense stuff is actually implemented and compiled natively in C. The data scientists, etc, can then use these as needed from Python with its simpler syntax.

Collapse
 
syeo66 profile image
Red Ochsenbein (he/him)

And then you try 'n*(n+1)/2' ...

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Python the ecosystem? I don't use it, but from what I've heard there's barely anything you can't find a library or a tutorial on, and in some fields specifically (like ML) it's probably the easiest language to get started with, so it's definitely not overrated.

Python the language? Yes, absolutely, it's overrated dog shit and I don't understand how anybody ever adopted it for any serious project let alone how it became as big as it is. I'd rather switch to lisp than to python.

Collapse
 
bekbrace profile image
Bek Brace

Lisp ? 😆

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Yes?

Collapse
 
stojakovic99 profile image
Nikola Stojaković

I'd rather switch to lisp than to python.

Lisp FTW. I wish it was used a bit more in the industry.

Collapse
 
bekbrace profile image
Bek Brace

Have you worked with Lisp before ?

Thread Thread
 
stojakovic99 profile image
Nikola Stojaković

Yes, I worked with Clojure.

Thread Thread
 
bekbrace profile image
Bek Brace

cool!

Collapse
 
kaitosama profile image
Kaito • Edited

I think Python is a little bit overrated, the language has LOTS of potential, but it will eventually not meeting all the expectations people have in it at this moment.
If we recall the Gartner Hype cycle, I believe python not reach the "Trough of Disillusionment" yet.
dev-to-uploads.s3.amazonaws.com/up...

Collapse
 
bekbrace profile image
Bek Brace

Gartner Hype cycle ... pretty interesting !

Collapse
 
andrewbaisden profile image
Andrew Baisden

I don't think Python is overrated it's far too easy for programmers to become super defensive over their choice of programming language. Like it's two rival sports teams trying to get a victory. I believe there is a tool to suit every purpose and the fact that we have so many tools aka programming languages ensures that there is something out there for everyone.

I can think of one solution to this argument. Just learn as many programming languages as you can or in a lot of cases that tends to be possibly 3 different languages so you can alternative between technical stacks.

Then you can just choose to use whatever you want depending on the use case. For example JavaScript for building websites, Python for creating machine learning apps and C# for game development.

Everybody is a winner!

Collapse
 
vaarun_sinha profile image
Vaarun Sinha

Let's quote Bjarne Stroustrup:

“There are only two kinds of languages: the ones people complain about and the ones nobody uses”.

Collapse
 
bekbrace profile image
Bek Brace

That's a good one :D

 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Same thing. Saying it's "overrated" is basically just short form "many users believe it's the right tool for jobs that there's really much better tools for".

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

If programming languages were tools, then they'd all have weird quirks like a screw driver that you have to hold with a reverse grip because otherwise it won't grip the screw, or a hammer that can magically hammer in screws as well as nails, but there's a weird bump on the handle that you have to keep your fingers off because otherwise it will pull the nail out instead of hammering it in.

Every programming language has these quirks, but some of them have more than others, and some quirks are more severe.

In that sense, is the screwdriver overrated? Really depends on whether you're comfortable gripping it like that.

Collapse
 
vulcanwm profile image
Medea

Nah, I’m still finding new things in Python everyday

Collapse
 
bekbrace profile image
Bek Brace

In my opinion, Python is not an easy language, not just because the syntax is simple and more readable than C like languages makes it simple and appetizing for beginner programmers, I know a lot of those who started learning Python and did not like the indentation concept for instance, they had to study it because of their university course only, but later in their own projects they have switched over to C++ or C# despite the relative complexity of the syntax, structure etc...

My original question was a result of that comment my friend said, it was intriguing.

If you will take a look to SO survey for 2020, Python is the most demanded language on the market [ of course that does not make it the best ], however Rust is the most loved language by 86.1% of 65,000 developers.

Collapse
 
gjorgivarelov profile image
gjorgivarelov

You think Python is overrated? Wait till you see Java!

 
bekbrace profile image
Bek Brace

wow, relax. lol
I am not debating, your opinion is only your opinion.
I was just sharing my viewpoint with you, that's all.
cheers.

Collapse
 
fen1499 profile image
Fen

From the point of view of marketing and business I guess it is, which leads to python taking places it shouldn't be. I would say that many python applications are overrated but not the language itself

Collapse
 
bekbrace profile image
Bek Brace

Agreed, Fen

 
bekbrace profile image
Bek Brace

Yes, this is applied on JS too

Collapse
 
stojakovic99 profile image
Nikola Stojaković

Yes, I think it is considering the attention it gets (but I completely understand why that happens).

Yes, it's very easy language. Yes, it has a vast ecosystem. But when I look at it, I can't find anything that is so appealing that will make me eager to use it actively. I think it's great for writing scripts and small applications, but for anything bigger than that, I would always take some other language.

Collapse
 
supportic profile image
Supportic

A programming language gets its job done. Point.
Use it or don't. It was just a cheap argument without any meaning.

 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Who cares?

Everyone should care. Precisely because you couldn't know the right tool for a job without knowing the available tools.

Collapse
 
tr11 profile image
Tiago Rangel

Python is 100% overrated. Also, what does this have to do with "watercooling"? You put it as a tag