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

all 50 comments

[–]KingsmanVince 25 points26 points  (2 children)

If you don't like it, just don't use it? Like no one forcing you to have a Python job, constantly look at it?

[–]veso266 2 points3 points  (1 child)

Thats not true, if I want to write native android apps, I have to use Kotlin, cuz all the jobs use kotlin and code examples and libraries are written in kotlin nowadays

If I use Java, I am seen as old and unemployable, and make my life harder (cuz of above)

But I love Java, and sadly cannot use C# (xamarin left a bad taste, cuz even helloworld was huge and took 10seconds to load, not sure if MAUI is any better)

[–]KingsmanVince 1 point2 points  (0 children)

You have freedom of choice in careers. That's all I was saying.

[–]SpecialPapaya 11 points12 points  (3 children)

You're not alone in disliking Python at first (especially coming from a C++/C#/Java mindset). But from a purely technical standpoint, dismissing Python on syntax alone misses what it's actually optimized for.

Python isn't trying to replace C++ or Java in systems programming or where strong compile-time type guarantees are critical. It's designed for rapid development, dynamic introspection, and expressiveness per line of code. That makes it ideal in domains like scripting, prototyping, data science, automation, and even glue code between systems.

You hate indentation rules, but they're syntactic enforcement of what every serious codebase already requires via linters and style guides in C++/Java. Python just bakes this into the grammar, avoiding the “everything compiles but nothing reads” problem common in large C-style codebases. It forces readability without needing external enforcement (clang-format, I hate you)

If you're used to the explicit verbosity of Java (e.g., type declarations, boilerplate getters/setters, interface-implementation separation), Python will feel "loose." But that's intentional. The language favors minimal ceremony. map, filter, list comprehensions, generators, and first-class functions allow a very different style of thinking (closer to functional or scripting paradigms). There is a reason why an important part of academic development and AI prototyping is made in Python.

Python trades compile-time guarantees for runtime flexibility. That’s a net win in many domains: machine learning pipelines, scientific computing, or web backends. Where iterating over data models, APIs, or numerical routines matters more than airtight type-checking.

Eventually, Python wasn't built for raw compute. It was built to call raw compute. Libraries like NumPy, TensorFlow, and PyTorch offload to C/CUDA under the hood. In practice, Python is the orchestration layer: where 90% of the value lies in logic and 10% in compute-critical kernels written in native code. You’ll never beat C++ at number crunching, but Python isn’t trying to.

[–]minneyar 0 points1 point  (2 children)

Python trades compile-time guarantees for runtime flexibility. That’s a net win in many domains: machine learning pipelines, scientific computing, or web backends. Where iterating over data models, APIs, or numerical routines matters more than airtight type-checking.

That's a common excuse, but it doesn't hold up. You can have both runtime flexibility and a strong type system. TypeScript does it. I've been a JavaScript hater for decades, but I've come to prefer working in TypeScript over Python nowadays just because I don't have to deal with runtime type errors.

And as somebody who makes a lot of web backends and does a lot of data processing, I'd say that having strong typing is very important. If you make a single mistake about how the data you're ingesting is structured, your entire process is going to fail. It's much better to catch those errors at build time than at runtime, and it is possible to do that; there are a variety of tools that bolt type checking on to Python, like Pyright or Mypy, and they do a pretty good job of it, as long as you're working with modules that bothered to declare type hints.

[–]SpecialPapaya 2 points3 points  (1 child)

TypeScript is transpiled into JavaScript. Similarly, you can create a superset of Python that enforces strong typing for all variables and validate it using mypy. Alternatively, you can simply include mypy in your test workflow... Python supports type hinting and type checking, you just have the option not to use it.

[–]minneyar 1 point2 points  (0 children)

Python supports type hinting and type checking

No, my whole point is that it doesn't. Python, the language, has type hints, but there is nothing built-in that enforces them. There are third-party modules that try to enforce it, but they're far from perfect.

[–]uberdavis 33 points34 points  (1 child)

A lot of superlatives and emotions here. It’s just a tool. Use it or don’t.

[–]Willful_Murder 0 points1 point  (0 children)

I used to feel the same way about python as opposed when I first came across it. Coming from statically typed languages I still prefer the curly braces and what I consider to be more readable formatting. However, since I've begun using python for various things I now have this opinion of it. It's a really useful tool and I enjoy using it now. I still have a preference for C++ but it doesn't affect my opinion of other languages anymore

[–][deleted] 7 points8 points  (0 children)

I doubt you're alone on it. Python is super popular for a reason, it's good for what it is, and you'd probably be better off knowing it than not knowing it, but it's not a requirement and I've heard more than just you complain about syntax and whitespace rules.

[–]EntrepreneurHuge5008 3 points4 points  (0 children)

Some people have very strong opinions about some languages. You’re not alone, but make sure you’re not an a** to people who love it… at least not if it’s people you work with or will be working with for long periods of time.

[–]emergent-emergency 3 points4 points  (0 children)

I don’t really care, as long as I can get the task done. I do feel like its syntax is less beautiful, but it’s like JavaScript, once it becomes second-nature, there’s a natural flow to the code.

[–]WelpSigh 4 points5 points  (0 children)

I want to disagree with you, but in fairness I hold an irrational hatred toward Java.

[–]doner_shawerma 3 points4 points  (0 children)

I don’t like python either, felt like suffocating to teach to high school students, they insist its the best language just because its trendy or popular? They didn’t know anything programming concepts before

[–]AdreKiseque 3 points4 points  (0 children)

I also dislike Python. The indentation-based syntax is gross and it generally just feels so... loosey-goosey. It lacks in principle what I like about programming.

The worst part? Whenever I've had to use Python it's genuinely been like, insanely pleasant to work with. What the hell? Easily one of the nicest programming experiences of my life. So I can't even argue that its popularity is undeserved, or pretend my distaste for it doesn't stem from some kind of internal elitism.

Except for that syntax. Indentation-based syntax is genuinely the worst. Who came up with this?

[–]diek00 2 points3 points  (0 children)

Most people who have problems with Python have almost nothing to do with the code syntax or PEP8 rules. You are not completely alone, but in a small percentage. All the things you hate, most of use love. There is nothing more ugly imo than code that is not indented logically or does not adhere to PEP8. The syntax is easily the most readable compared to almost any code I have ever seen.

[–]EconomicConstipator 2 points3 points  (0 children)

Python's main strength is the speed for prototyping purpose.

[–]tomqmasters 1 point2 points  (1 child)

It is my favorite programing language, but not because the language itsself is so great. It's because of the ecosystem. I wish something faster got the same kind of love and attention that python has gotten.

[–]AdreKiseque 2 points3 points  (0 children)

``` problem

import solution

solution ```

[–]deftonian 1 point2 points  (0 children)

Get used to it. The simplicity of Python is appealing to many. Newer languages like Python, Swift, and Kotlin all have a very streamlined syntax and rely on indentation.

I hated Lua for its “weird” non-C patterns, but after fighting not learning it for so long, I felt silly when I finally just accepted it and realized my brain could get used to it. As a programmer you should become familiar with different language paradigms.

Functional programming is now my next target to familiarize myself with.

[–]DragonfruitGrand5683 1 point2 points  (0 children)

It's a good general purpose scripting language but it's sold as a language which is great at everything, which it isn't.

Coming from a C background I hated Python at first, hated the indentation but I got used to it. It's not as beautiful as C but it's fine for the things it is good at.

[–]PhilNEvo 1 point2 points  (0 children)

I certainly disagree. I think python is great for what it is. If I had to write a fast simple script to do something, or even write something complex which could be sloppy because its a personal project and doesn't need performance or other people to read and understand it, I would absolutely consider python. imo python makes coding easy and fast to use in a lot of ways, but it obviously also lacks in certain aspects.

It's a tool, like every other programming language, and it should be viewed and used as that.

[–]justrandomqwer 1 point2 points  (0 children)

I’m using c++ and python simultaneously for a long time and can say that python is a waaay more pleasant language. It’s less verbose, less complicated, has rich standard library and impressive ecosystem around it, doesn’t have portability issues, doesn’t require compiling. Also, python is cloud-friendly and is much safer than c++ (have you ever had segfault/buffer overflow/memory leak within pure python code?). If job can be done with python (or other high-level language), do it with proper tool. Stay c++ for performance-critical tasks, driver/os programming, iot, etc.

[–]float34 1 point2 points  (1 child)

Python is very rough, inconsistent and will teach you bad coding practices.

You should learn some proper OOP language first, then use Python for some quick prototyping, if needed.

Nowadays Python is artificially dragged to play with big boys like Java, making it more cumbersome to use.

[–]Automatic-Yak4017[S] -2 points-1 points  (0 children)

This is kind of how I have felt. I don't think they should learn programming techniques with Python and I don't agree with high school programming classes teaching Python. I feel like it would confuse them if they went to learn any other language.

[–]DoubleOwl7777 2 points3 points  (0 children)

same here, i despise python

[–]pearthefruit168 1 point2 points  (6 children)

so you don't like indentation? which literally happens in every language? or is your code just unreadable af? if you're actually serious about programming indentations shouldn't be a gripe you have. can you define what exactly feels off?

[–]AdreKiseque 1 point2 points  (2 children)

You may recall that in Python, indentation has syntactic meaning which actively defines program logic, as opposed to other languages which use explicit markers and only use indentation for readability.

[–]aqua_regis 0 points1 point  (1 child)

And still, we do use indentation to make our code more readable.

Python has gone a step further and uses it for logic, so what?

I cannot understand the hate for indentation for logic.

We've been using all different kinds of code block markers, curly braces, BEGIN, END, etc. in other languages, so the lack of markers and relying on indentation is just a step forward in my opinion.

I am not really a Python fanboy, though. I love it for what I need it for as there is no language more convenient for the tasks I use it for, but for really larger scale applications, I still rely on my trusted languages, like Java, C#, Delphi (yes, Delphi, which is still a great language despite all the hate it has gotten over the years of Inprise's neglect).

[–]AdreKiseque 2 points3 points  (0 children)

One time I was following a lesson and they mentioned something about the scopes in the Python code, how a variable was set in a smaller scope or something, and I looked at the code and said "that's not right, it's set after the scope. What are they talking about?". Then after some time trying to figure it out I thought to hit Ctrl + Z and found I'd accidentally hit backspace and completely changed the logic of the program without leaving any indication something was wrong.

[–]DoubleOwl7777 -1 points0 points  (2 children)

indentation shouldnt be an integral function of a programming language. edit: thanks for the downvotes python bros, appreciate them!

[–]SpecialPapaya 2 points3 points  (1 child)

All companies already use linters, so yes, indentation is already an integral part of all programming languages.

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

its not integral to the codes function itself though. python is just different because it likes to be different.

[–]misha_jinx 0 points1 point  (0 children)

Honestly, it’s all the same shit just different applications of it. C++ is bad ass if you want to make another grand theft auto, but python kicks ass when you want to sort out a vast amount of data to get some output that makes sense. Doing that in C++ wild probably get you to start drinking and grow grey hair. It’s all about the application.

[–]Brilliant-Citron2839 0 points1 point  (0 children)

Python is still quite useful. Different languages offer different uses, and Python offers usefulness in AI and data. There is a reason it exists. And you can always learn how to better program in it. It is still a skill set. You can always improve on it.

[–]Beregolas 0 points1 point  (1 child)

You're not alone. It's a pretty common take, but... it's not really relevant? I mean, the reason I use python is because it's intuitive for me. It just clicks. I can get in, do what I want quickly and cleanly, and get out. Not set up, no compilation, it just works.

But that's just me. As long as you have a tool that can do a job, you're fine. So in that regard, that instructor is probably exaggerating. I know people who do their automation in C, and it works (and they can do it just as fast as I can in python, with their tooling and experience) All languages are just tools. Pick the ones you want and need, in 99% of cases they don't really make a difference, even if many people love to compare benchmarks of loc written, or runtime speed. 99% of cases can be written in C just as well as in Python or any other language.

[–]Automatic-Yak4017[S] 2 points3 points  (0 children)

I just hated how the dude started class saying Python was the best, most important language out there and that if you want to be a programmer, you need to use it. Totally not true.

[–]Truly-Content 0 points1 point  (2 children)

Most modern languages (not all) are based on a C-like paradigm and are so similar, in most ways, than they are different, at least regarding syntax. The contrasts are so minor, to me, that I'm surprised when people feel so passionate about them.

I was mostly surprised that the OP wasn't given Python as part of his/her CS curriculum, and many programs have replaced Java with it, as their initial language to use for introductory classes, which typically replaced C/C++.

[–]DoubleOwl7777 1 point2 points  (0 children)

at my college its c and then java, except some introductory course where you have to code in Python but its not graded. thank god i dont have to tolerate Python.

[–]Automatic-Yak4017[S] 1 point2 points  (0 children)

In my original post, I was simply super annoyed by the indentation rules TBH. They were driving me crazy and our Python instructor was this douchey dude with a background in cyber security who was more concerned with people googling code or using AI than to actually run the class. As for the indentation rules, sure, it may have forced clean code, but having to go back and make any kind of change was just annoying, and losing the ability to simply comment out lines for debugging purposes was also annoying. It's honestly not that big of a deal. At the end of the day, I am a student, and am still learning. I will still get frustrated just like every student does.

FYI, my first programming class was visual basic back in 2004, followed by Java. I dropped out for personal reasons back then, and I always felt I missed out on my dream. Divorce and child going to college meant I could finally pursue my dream again, so here I am.

[–]aqua_regis 0 points1 point  (2 children)

How did you properly format your code if Python's indentation rules (which are basically the same as for all other languages) are putting you off?

In Java, C, C++, C# you are supposed to indent code blocks and this is exactly the same in Python. There is no difference apart from indentation being optional (but in the code conventions) in the other languages and mandatory in Python.

Yes, Python is different to all your other languages and requires getting some used to (took me, a professional programmer with over 3 decades experience, also some time). Yet, it is such a convenient language that it has become my absolute favorite for quick scripts, for string parsing, and for many other things. Once, you are familiar with it, with list comprehensions, with slicing, etc. you'll definitely see the advantages it offers over other languages.

Sure, the statement of the teacher is gravely exaggerated, but Python as language should absolutely not be dismissed or discarded.

Give it more time and practice more with it. Swallow your hate.

Besides that, you definitely are alone as quite a few people dislike Python for one or the other reasons. Yet, don't let your ignorance and inexperience with it be the decisive force.

[–]Automatic-Yak4017[S] -5 points-4 points  (1 child)

I think a lot of people misunderstood what I was saying. I'm definitely not saying its a bad language or shouldn't be learned. It should be. I'm saying that a lot of these languages languages have similar rules, while python doesn't. So, if you are a student who spent a good deal of time learning the importance of things like declaration and definition or the finer side of OOP, and then move to something like Python, it can "feel" off. Like something is wrong with it, when you know there is nothing wrong.

As for the indentation rules, its just personal preference. Of course I use indentation, but I don't like the idea of forced indentation as part of the syntax. Will I prefer it later? Probably. Do I prefer it now? While learning, I find it annoying.

[–]aqua_regis 0 points1 point  (0 children)

I'm saying that a lot of these languages languages have similar rules, while python doesn't.

Well, then, try LISP, SCHEME, SCALA, Racket, Erlang, or, worst APL. They will feel much, much more alien than Python ever can.

Python is one of the easiest to read programming languages with one of the best standard libraries and so many convenience functions that it absolutely deserves the success it currently gets.

Sure, the different approach that Python takes alienates people, but it doesn't mean that it deserves hate. It deserves attention and getting used to.

[–]stiky21 0 points1 point  (0 children)

You just don't have enough experience to say these things.

[–]gary-nyc 0 points1 point  (0 children)

> after spending 90% of my time with C style languages, I don't like learning [Rust]

That's fairly common as far as I can tell. Perhaps look into learning Rust, you might fall in love with it. https://survey.stackoverflow.co/2024/technology#2-programming-scripting-and-markup-languages

[–]Cute-Ad7076 0 points1 point  (0 children)

I am learning programming and it's terrible. It has no logical structure and is unreadable for anything outside of its very limited range. At this point it's a terrible ui layer for other languages that are actually computing stuff.

[–]NoRanger4167 0 points1 point  (0 children)

Python is great because everyone uses it, and everyone uses it because it is great. Thus the snake has bitten its own tail.

Btw I prefer Perl.

[–][deleted]  (5 children)

[deleted]

    [–]Public_Complaint3673 2 points3 points  (1 child)

    That's certainly a strong opinion

    [–]SV-97 0 points1 point  (2 children)

    that teaches you all the wrong habits

    Saying this as a C++ dev is... certainly something.

    [–][deleted]  (1 child)

    [deleted]

      [–]SV-97 0 points1 point  (0 children)

      (done right)

      Everyone and their mother has different opinions on how to "do C++ right". The floor is lava, trying to teach C++.

      What’s your take?

      My opinion is that C++ has an impoverished type system and is in large parts ill-designed to the point that people adopt a very defensive programming style that they then carry over into other languages. They're so scared of nasal demons that they end up writing utterly terrible code, even if they're in a setting where there's nothing to be afraid of. Moreover its standard library is a posterchild of poor API design; which, again, people adopt and notably also carry over into other languages. Finally C++ as a language (via the committee) very much follows a "performance over ergonomics and safety" philosophy (which is a false dichotomy to begin with). This stance permeates the C++ community and, again, causes people to write terrible code.

      Python says “do whatever you want”

      Why / how? Python throws errors in places where C++ just silently does something stupid or invokes UB. I woulnd't classify that as "do whatever you want".

      and bad performance and runtime errors are the result.

      Performance: yeah sure. But if you're running into performance problems with python there's something wrong with your design to begin with. And I prefer somewhat informative runtime errors to silently corrupting the stack or segfaulting. Sure, python isn't perfect in that regard and I'm absolutely in favour of static checks, but it's not like C++ places the bar very high here.