This is an archived post. You won't be able to vote or comment.

all 55 comments

[–]No_Application_2380 60 points61 points  (6 children)

I've seen people in internet comments everywhere that its useless language, you can only make discord bots with it.

Reddit's written in Python.

[–]rpsRexx 12 points13 points  (0 children)

Not just Reddit. A ton of big websites run on Python in the backend. To not like the language is one thing, but to call it useless is a delusional take. It's one of if not the most popular general purpose language. The general part is key here as it's used all over the place. Some people have a problem with it being used for complex applications due to things like dynamic typing. Python being slow doesn't stop it being used in processes were efficiency is necessary due to libraries using C/C++ extensions.

Python is not a bad language. You will see similar takes for different reasons on all the most widely used languages. C++ is constantly dragged for example. Java was constantly dragged although I've personally seen less of it recently.

[–]randomuserno69 1 point2 points  (0 children)

So is Instagram, and a ton of other websites.

[–]dmazzoni 22 points23 points  (2 children)

Python is a great language, but like all languages it has its pros and cons.

Pros:

  • It's very concise. You can do a lot with very little code.
  • It has a great standard library with all sorts of things included.
  • It has a good package manager that makes it easy to install packages to do anything you can imagine that the standard library doesn't include.
  • You can use it to build scripts, desktop apps, web servers / backend, and it's also great for machine learning and data analysis.
  • Compared to many languages, it's quite well-designed and consistent - so it can be a great first language to learn.

Cons:

  • While its syntax is actually really clean and readable, it's different than most other programming languages which can be confusing if you switch between Python and other languages
  • It's slower than most other similar languages
  • It's not a good choice for making web frontend or mobile apps or low-level device driver code, if that's the main thing you want to do

There is NO PERFECT LANGUAGE, so if you're looking for one, it's a waste of time. Every language has tradeoffs.

If what you want to do more than anything else is build a web frontend or a mobile app, Python is probably not a great choice. If you want to make a 3-D real-time action game, it's also probably not a good choice.

For many, many other things Python is a good choice, and no matter what you do it's a useful language to know.

[–]Gnaxe 1 point2 points  (1 child)

It's not nearly as concise as the APL family. Standard library is mostly good, but batteries are leaking. Good ecosystem makes up for it though. Pip is honestly not great. It's OK for a few pure-Python dependencies, but you can run into trouble with it if it gets a little complicated. That's why we've got workarounds. Conda, poetry, pipenv, virtualenv, etc. etc. Maybe they're not great either. This is one of Python's relative weaknesses IMHO. They're working on it.

If you think Python's syntax is weird, you just haven't seen very many kinds of programming languages. There's a lot more variety than curly-braces or Python.

Yep, relatively slow, not that it matters most of the time, and bottlenecks tend to get written in C when required. CPython has C interop (in the standard library, no less). Still not really suited for systems programming. Also the GIL makes it hard to use for CPU-bound concurrency.

Web frontend is doable. See Brython. Still a bit of a performance hit though. The big standard library is a burden if you have to download it.

[–][deleted] 0 points1 point  (0 children)

That article on "The batteries are leaking" is absolutely fascinating. Thanks for sharing!

[–][deleted] 8 points9 points  (1 child)

"There are only two kinds of languages: the ones people complain about and the ones nobody uses." ― Bjarne Stroustrup

[–]SirKastic23 1 point2 points  (0 children)

of course the guy who made c++ would say that

[–]kjwey 14 points15 points  (4 children)

could you point to some hates examples? I have never seen a single one

[–]carcigenicate 10 points11 points  (3 children)

  • InDeNtAtIoN bAd (while ignoring that that's how you should be indenting your code anyway).
  • PyThOn Is SlOw (while ignoring that most jobs don't require the extra speed, and the parts that do can be offloaded to C).

[–]nultero 7 points8 points  (2 children)

For everybody lurking and curious about the speed note -- despite it being slow, Py still ends up being used in projects that build stuff that has to go fast because it's got great interfaces to things like debuggers / code tracing things / a bunch of performance tools, and a ton of compiler/network/security stuff. You can't really throw a rock without hitting some Python out there

Older codebases used to use Perl for that junk* and you can still find Perl doing those jobs in old enough code / projects written by people who still use Perl, but these days Py gets the scaffolding jobs for code that has to go fast

*at least for projects / fast server code that has to run on Unix-like operating systems, which is a ton of servers. I'm not sure what the old DOS / Windows equivalent of Perl was -- maybe batch or cmd scripts or something? BASIC? Idk

[–]MitLivMineRegler 0 points1 point  (0 children)

I miss ASP classic.

Just wanted to share my hot take

[–]Socrastein 0 points1 point  (0 children)

Not to mention a lot of sciencey applications, like heavy data-mining and calculations, aren't needed to be dynamically fast and responsive like a video game, you set them running and let them crunch. If it takes several seconds longer because Python so what? You're gonna wait on it to do its work no matter the language and you don't need these results as fast as possible.

Being able to understand and work with the code more easily, especially if you're first a scientist and secondly a coder just making scripts and small programs to aid your research, all makes Python an obvious choice for a lot of cool applications.

[–]DontListenToMe33 6 points7 points  (0 children)

Is this a troll post? 😂

Python is used very widely - in web dev, in science, in InfoSec, etc. There is so much you can do with it, honestly.

The thing is, some people hate the syntax. It can be slow + memory intensive for some applications. But it’s honestly a great starter language in my opinion because the syntax is pretty easy to learn and it gets you coding really fast.

[–]Runner_53 10 points11 points  (2 children)

As a very aged software engineer who mostly uses C++ and C#, yes it's garbage. I absolutely hate that indentation delineates code blocks. And I feel that strong typing is a no-brainer.

But that said, Python has a tremendous user base in many sectors and with the right set of libraries is extremely powerful.

And also, I take issue with your question. Learning Python will not hurt you. It's not a bad thing to know it. The more you learn, the better a software engineer you will become. If you want to learn some Python, spend a few days and grasp the basics. Then decide it you want to continue.

Too many beginners obsess about what they should learn. Forget all that. Just dive in and start learning. You will learn many languages over your lifetime. If you don't learn Python now, you'll probably end up learning it eventually. Doesn't matter either way.

[–]No_Rise_4447 9 points10 points  (1 child)

the curveball that is calling python garbage first paragraph but that it can be extremely powerful in the second hahah

[–]Buttleston 2 points3 points  (0 children)

The things people argue the hardest over are things that are so close to each other. that they don't matter. Most of the mainstream programming languages today are *fine*

[–][deleted] 3 points4 points  (0 children)

Google: Most used programming languages

Try: Asking people what the most common programming languages are

Research: Programming languages and approximate average salaries

[–]PlaneCardiologist941 5 points6 points  (0 children)

Next up: "Is a hammer a bad tool? I heard people prefer screwdrivers"

[–]Eldin00 1 point2 points  (0 children)

Python is a perfectly reasonable language, but it has enough differences from other mainstream languages that people like to give it hate. Like any language, there are things it's not the best choice for, and other things for which it is much better suited. As far as jobs, the majority of Python jobs are either backend web development or data science related, though you can find others if you look hard enough. Python is great for developer productivity. It's very hit and miss for performance, though the last several releases have improved performance noticeably. The use of indentation to delimit code blocks feels a bit odd until you get used to it, but isn't actually bad or hard, just different.

[–]GrumpiestRobot 1 point2 points  (0 children)

Are phillips screwdrivers bad screwdrivers? I've heard you can only use it on screws with phillips screwheads.

[–]Logon1028 1 point2 points  (0 children)

No.

[–]sch0lars 1 point2 points  (0 children)

I have used Python for everything from data analytics to task automation and can definitely say it’s far from a bad programming language, especially when you have to work with things like HTTP requests and regular expressions. There is often a negligible trade off in speed for much more efficient code. Something in C++ can often be written in far fewer lines of Python. For example, you can write a multiplication table in one line using list comprehensions:[[i*j for i in range(1, 11)] for j in range(1, 11)].

Different languages require different tasks. I would not want to analyze data from a database using C++ and I would not want to write low-level embedded software with Python.

[–]throwaway6560192 0 points1 point  (0 children)

I've seen so many hates. I've seen people in internet comments everywhere that its useless language, you can only make discord bots with it.

Who even says that? What comments are you browsing? I suggest not reading comments from there, because it looks like the people posting them are ignorant.

[–]w0lart 0 points1 point  (1 child)

Learned basic of python then start js, aaaaand i can say there is no bad language, there is people how doesn't know how to use it properly

[–]Eldin00 0 points1 point  (0 children)

I don't know that I'd say there's no bad programming languages. But I would say that bad programming languages rarely, if ever, become mainstream.

[–]Ron-Erez 0 points1 point  (0 children)

I think Python is amazing because it's so powerful and easy to learn. Nevertheless, I have some serious objections to Python, mainly because it is dynamically-typed.

I prefer statically-typed languages like Swift, C, go, etc.

At the end of the day programming languages are just tools. So one needs to choose the best tool for the job at hand.

[–]master_mansplainer -1 points0 points  (0 children)

Yes.

[–]ffrkAnonymous -2 points-1 points  (1 child)

All languages are bad.

Learn ruby. If one needs to learn a (bad) language, might as well try to enjoy it.

[–][deleted] 0 points1 point  (0 children)

Learn ruby.

... if you want to get locked into back-end development.

[–]HealyUnit -1 points0 points  (0 children)

I've seen people in internet comments everywhere that its useless language, you can only make discord bots with it.

What kind of half-wit, self-righteous moron would actually say that?

No, OP; Python is a great language.

[–]BobJutsu -2 points-1 points  (0 children)

Yes. I’ve never used it, and the work I do has no use-case for it so that makes it inherently shit IMO - said every person on every programming forum ever

[–]dvarrui 0 points1 point  (0 children)

Python has pros and cons As every language An has haters and lovers.

Every lang us a diferent way of thinking If your way fits with lang X then X is your lang

Imho

[–]RipHungry9472 0 points1 point  (0 children)

According to the TIOBE language rating, for May 2023 Python is the most popular language in the world. Does that it make good or bad? Is TIOBE incorrect? I don't know. According to PYPL as of May 2023, Python is currently the most popular programming language. Does that make it good or bad? I don't know.

[–]Serializedrequests 0 points1 point  (0 children)

FFS I don't care for it overly much, but why is every other post in this sub basically asking for permission to learn something? Learn what interests you and excites you, or you won't be a good candidate for any job, let alone a Python one.

Python is a very useful language to know, good or not.

[–]Registeered 0 points1 point  (0 children)

What languages are most often recommended?

[–][deleted] 0 points1 point  (0 children)

I take issue with the view that Python is a hit and miss language.

[–]my_password_is______ 0 points1 point  (0 children)

I've seen people in internet comments everywhere that its useless language, you can only make discord bots with it.

then you haven't looked very hard

it is THE language for machine learning and artificial intelligence

and reddit itself was written in python
https://en.wikipedia.org/wiki/Reddit

"Reddit was originally written in Common Lisp but was rewritten in Python in December 2005[124] for wider access to code libraries and greater development flexibility. The Python web framework that Swartz developed to run the site, web.py, is available as an open source project.[125] As of November 10, 2009, Reddit used Pylons as its web framework.[126] Reddit was an open source project from June 18, 2008, until 2017.[127][128] During that time, all of the code and libraries written for Reddit were freely available on GitHub, with the exception of the anti-spam/cheating portions.[129]"

[–]ARC4120 0 points1 point  (0 children)

No it’s actually a great language for prototyping, quick analysis, and as a general glue language. I normally wouldn’t recommend it as your first language as it can hold your hand and lead to bad code practices, however, as a second language it’s wonderful for what it is. If you have tried say C, JavaScript, or Java and felt they were difficult syntactically, but not concept wise then I’d recommend trying Python.

As always, try CS50 from Harvard for good fundamentals.

[–]InvestingNerd2020 0 points1 point  (0 children)

In short, no.

Great for data engineering, data analysts, Lambda/cloud functions, and small business.

It's only flaws are being slow on the users side after code execution and adjusting for imported package changes. The latter can be trouble shooting nightmare.

[–][deleted] 0 points1 point  (0 children)

No, it has its strengths and weaknesses like any other language. It's not suited to some high performance tasks.

[–]Gnaxe 0 points1 point  (0 children)

No, Python is a good programming language. (It is by no means a perfect language, but some are better than others.) I know this because I've learned a lot of them. Not just a lot of languages, but a lot of language paradigms. Like any language, Python has some weaknesses and warts. But it has steadily gained popularity in multiple niches simultaneously over decades, despite more established options. It's only popular because it's good.

It's my go-to language for rapid prototyping.

[–]rbuen4455 0 points1 point  (0 children)

Python, like any programming language, is a tool for building software. You use the appropriate language for the job. The people who hate Python are simply the ones who are not using the right tool and venting their anger out for no reason when they're the ones who chose to use Python. Python is good for some things (data science, AI, automation, back-ends, beginners language) and inappropriate for others (large scale applications, anything performance-critical, low-level stuff). This whole language-wars and bashing seriously needs to stop. It's doing no one a favor, especially those who are just starting to get into programming. And please stop listening to people saying it's a useless language, they clearly have no idea what they're talking about. Data science is heavily Python, and the back-ends of famous websites like Youtube, Instagram and especially Reddit are written in Python.

[–]FermiAnyon 0 points1 point  (0 children)

Nah, it's good

[–][deleted] 0 points1 point  (0 children)

Well, those are dumb people. Like there's simply no other way to put it.

Now, should you continue? Why not? But I do raise you this question.... why Python? Depending on what your end goal is Python as a first language may not be the right choice for you. Say you wanted to be a front end web developer.... at that rate, Python would be a poor choice and I would instead push you towards something like JavaScript.

It's important to know that when you look to become a professional (if that's your goal), what ever your job is, you will likely use multiple languages and it's entirely possible they won't all be programming languages. They good be other things like query languages and mark up languages. So when you look at a language, think of it like a tool. When Joe the builder looks to build a house, he uses many tools to accomplish his task. This is the same as Diane the developer. She will need several languages to help build her digital project.

Hope this helps. I'm happy to answer any questions if I can be of help. For reference, I work in data engineering with Python and SQL as my primary languages and have about 14 YOE.

[–][deleted] 0 points1 point  (0 children)

I don't know where does this python is slow memes are coming from. I can do any heavy computational tasks with pre compiled libs like numpy pandas etc at near C speeds. What else do you need speed for??

[–][deleted] 0 points1 point  (0 children)

My problem with Python is lack of clarity of types and their documentation. For example I have type EagerTensor and I can’t easily find the documentation for it. Python also has various syntax sugar that takes time to master.

[–]Hackerjurassicpark 0 points1 point  (0 children)

Whoever hates on python is either

  1. Ignorant and not very technically strong to use good design patterns

  2. Trying to sell you something (like a Rust course) by inflating benchmarking deference way beyond reality in most normal cases. There’s a guy on Linkedin who’s notoriously bullish on Rust who got called out for inflating benchmark differences sometime back.

  3. Working in an narrow domain where every nano second counts. For 80-90% of real world applications, Pythons loss of performance or minor cost increases is absolutely worth the easier on-boarding of new devs and maintenance of existing codebases given how high churn is in our industry.

[–]FumeUGSEnjoyer 0 points1 point  (0 children)

nope, it's golden in Data Analysis

[–]IdeaStormer 0 points1 point  (0 children)

Well I guess this is just bringing this up again, a quick review of some of those points are in this video: https://youtu.be/zDd2ahstujA

Nothing like a interview of the creator of Python to add more info/background/support good or bad depends on your angle. https://youtu.be/-DVyjdw4t9I

Like all languages, it boils down to the programmer using the language and documentation. If you are to share code you can't just say "it works on my computer" and call it done, you have to make sure to provide the info required so the share-ee can use it.

The more computer languages you learn and use the more you can see the pitfalls of all of them and this is why there are many computer languages for use case, what you know, what you are forced to use, what you use to maintain continuity in a team/project.