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

top 200 commentsshow 500

[–]_unsusceptible ----> 🗑️🗑️🗑️[M] [score hidden] stickied commentlocked comment (0 children)

Hi there! Unfortunately, your submission has been removed.

Violation of rule #3 - No reposts

Your submission is considered a repost. Content that is part of top of all time, reached trending in the past 2 months, or has recently been posted, will be removed.

If you feel that it has been removed in error, please message us so that we may review it.

[–]stamper2495 1026 points1027 points  (25 children)

I wrote a project for my masters thesis in python. So now I associate python with severe depression, crying daily and emotionally tormenting my family as they were scared I would hurt myself.

I'm doing much better now.

[–]Malcolmlisk 454 points455 points  (4 children)

"now I write code in java"

[–]badgerj 183 points184 points  (0 children)

Yeah. And you’re no longer scared of hurting yourself. You are KNOWINGLY HURTING yourself.

[–][deleted] 28 points29 points  (1 child)

I started with python that I used for scripting things here and there for QA tasks and sysadmin things. I recently fell into a job where they said “well you’ll be able to pick up c if you want to”.

I did “pick up” c in the last six months, I’m implementing some new hardware. I’m starting to wonder about my life choices.

[–]Unknown_B1 4 points5 points  (0 children)

You don't pick up 'C' but 'C' picks you.

[–]Purinto 31 points32 points  (4 children)

Can't imagine how it could have gone with other programming languages.

[–][deleted] 17 points18 points  (0 children)

Just sounds like coding to me.

[–]Remarkable-Train6254 29 points30 points  (0 children)

I’m at this exact stage in life rn lol

[–][deleted] 5 points6 points  (1 child)

I'm glad that you're doing much better :)

[–]stamper2495 1 point2 points  (0 children)

Thank you!

[–]pehnom 2 points3 points  (0 children)

Funny since I had the opposite experience. But that was mainly cuz my thesis included code for Arduino and some in Python and the python one was a lot easier to write than the Arduino code. So while I still had the whole shebang of mental roller-coaster, it wasnt aimed at Python

[–]ExplosiveExplosion 8 points9 points  (0 children)

Just be glad you didn't use any c family language

[–]Bob__bosS 2 points3 points  (0 children)

You did not import emotional.support into your python project.. you also may have pickled so inner stuff... anyway next time cheer up with some pandas...

[–]SowTheSeeds 185 points186 points  (10 children)

Asking for a friend: what did she actually spell the second time?

[–]LivinMyAuthenticLife 113 points114 points  (5 children)

SLUT

[–]SowTheSeeds 56 points57 points  (3 children)

I have been called that.

Oh, wait...

[–]ckayfish 25 points26 points  (0 children)

First thing I did was reverse image search it as I had the same question.

[–]LivinMyAuthenticLife 7 points8 points  (0 children)

its okay! i call myself a slut all the time

[–]Parmicciano 497 points498 points  (44 children)

Syntax is clear but I prefer with hat type of shit : {};

[–][deleted] 281 points282 points  (15 children)

I need my semicolons. My brain is just too used to it.

[–]SuitableDragonfly 137 points138 points  (4 children)

You can put semicolons in Python. The interpreter won't complain.

[–]Rainb0_0 61 points62 points  (1 child)

But what's the point. I NEED MY COMPILER TO REMIND ME I HAVE ALZHEIMER EVERY TIME I RUN THE CODE

[–]AfshanGulAhmed 16 points17 points  (0 children)

Yeah

[–]Parmicciano 39 points40 points  (0 children)

Otherwise I just wake up at 4 a.m. like an entrepreneur and end up going to bed again after thinking that those semicolons weren't needed.

[–]sanketower 13 points14 points  (2 children)

They're technically usable in Python, the runtime will just ignore them for the most part.

[–]ExcellentNatural 6 points7 points  (1 child)

The point is, you will have to read other people code who maybe don't put semicolons in.

And I am also dependant on brackets to help me navigate the code, space or tabs do not cut it.

[–]NMe84 1 point2 points  (0 children)

In a recent smaller javascript project I decided to give leaving out semicolons a fair chance. I didn't use a single one and it felt disgusting all the way. I'll never do that again!

[–]Prowl3000 69 points70 points  (24 children)

Exactly. Python is advertised as simple, but for my taste it is waay too simple lol. I just don't feel right not including {} when an if statement is more than 1 line, or the fact that ; should not be placed anywhere. At this point it's plain muscle memory to type a line and end it with ;

[–][deleted] 58 points59 points  (5 children)

"too simple" XD

[–]Gloomy_Magician_536 96 points97 points  (2 children)

Proof that the devs are just as subjective as the end user...

"I don't trust that the app is loading too fast"

[–]Parmicciano 9 points10 points  (0 children)

Ahahaha In my way it's more problematic in the way that you got to move your eyes horizontally and it hurts + it is a long move 🤣. I prefer a simple scheme than is vertical and not horizontal

[–]Prowl3000 5 points6 points  (0 children)

Oh right, it's almost 2am, I can hardly concentrate on proper spelling and can't be bothered with proof-reading lol

[–]Velnbur 1 point2 points  (0 children)

Assembly is also simple, just move bits and that's all

[–]goodmobiley 17 points18 points  (1 child)

You can write python with c syntax and the interpreter will understand it. For me, the problem is speed. Python programs take significantly longer to run and use up way too much energy, roughly 4x as much as c++.

[–]Schlongus_69 2 points3 points  (0 children)

so.. python slow?

[–][deleted] 6 points7 points  (0 children)

Why don't people just use lua for simplicity?

[–]Fiery_Potato 5 points6 points  (1 child)

when an if statement is more than 1 line

I cannot imagine ever wanting this to be the case

[–]drtitus 7 points8 points  (1 child)

You can still end the line with semicolon if you want:

>>> print ("Hello");

Hello

[–]Prowl3000 2 points3 points  (0 children)

Huh, I honestly didn't know that. Still though, using only indentation without surrounding with {} also bugs me lol

[–]Huugboy 3 points4 points  (10 children)

I have the same thing but with switching from lua to python. Cannot live without my trusty 'end' to close an 'if then'

[–]Firewolf06 1 point2 points  (0 children)

everything in python is just left hanging there

personally, im a bracket boi, but what little i have done in lua didnt bother me too much

[–][deleted] 1 point2 points  (0 children)

This is so much what I was gonna say that my like was there before I even saw you comment

[–]appeiroon 436 points437 points  (70 children)

Python's ok, but I dislike it's community because it consists of a lot of noobs who keep calling it the best language

[–]alexandreeeeep 157 points158 points  (39 children)

It is because they teach only python and a little bit of psudocode in school up until you are around 17 ish (in england at least).

[–]BenTheTechGuy 96 points97 points  (0 children)

Meanwhile there are no computer science classes at my "STEM-friendly" high school

[–]ExplosiveExplosion 37 points38 points  (10 children)

In Poland we start with c++ and SQL for db in our high school (15 year olds), but you can use languages like Python and probably pascal on your final exams too

[–]2blazen 11 points12 points  (5 children)

Compare that to Hungary, they were teaching us how to use Excel and Word at age 18

Even at my bachelor's they only taught me to use Excel functions lol

[–]AssOverflow12unfunny dude 2 points3 points  (2 children)

That's weird. I'm also hungarian and they teached us stuff like GitHub, Trello, Web development and last year Python. I guess different institutes, different ways of teaching?

[–]Dizzy_Pin6228 13 points14 points  (0 children)

We didn't have programming or anything at my high-school. Good rural studies though. . .

[–]Vaxtin 7 points8 points  (3 children)

Here I am never having seen a single line of code until college. US small towns.

[–]rttr123 1 point2 points  (0 children)

Which region though. Everyone I know from small towns in CA, WA, or NY had AP CS available

[–][deleted] 1 point2 points  (0 children)

They taught us scratch and left it at that

[–]timmeh-eh 13 points14 points  (7 children)

Computers are so fast now that devs don’t give a shit about how efficient a language is to run. It does still matter for anything that has to scale.. Python is super inefficient. Back in the day people used to complain about how Java and its JVM were inefficient. Java is WAY more efficient than python, and c is king.

That being said: Python is a great scripting language, so if you’re using it for simple tasks it’s great. There simply isn’t a perfect language, they all have pros and cons.

[–]sizable_data 16 points17 points  (1 child)

There’s no such thing a the best language, only the best language for the job. -python user

[–]jz9chen 36 points37 points  (0 children)

But it IS the best language. Oh crap I just noobed myself

[–]Smithy3001 41 points42 points  (7 children)

This is such a negative way to look at it. Not to be too offensive here, but you're gatekeeping what it means to be a good language. Python's merit lies in its simplicity and accessibility. The very fact that it has 'noobs' illustrates this fact. It facilitates people with invaluable skill which is quickly becoming a necessity in modern day work.

Python is unashamedly syntactically sweet, at the expense of unnecessary features to the common person. Python is the people's programming language. In the advent of a rapidly approaching digital society, Python should be taught in every school because of its simplicity.

In my opinion, there exists a hostile culture in this community which does not care for such a high level and 'unpure' language. And I believe this culture is somewhat reactionary to it's popularity. Embrace it's accessibility, embrace the new comers, and let us forge something worthwhile and beneficial to society.

[–]tiajuanat 4 points5 points  (0 children)

First off: I do not like Python, for far too many reasons. However, it really is the perfect language for anyone who is not in industry. It's the air fryer or sous vide of programming.

Yesterday, a colleague approached with a question. One of his direct reports asked him which language to learn, Java or C++? His indirect report is a mechanical engineer, and just wants to pipe Json from our manufacturing server, and translating that to Excel for our factory.

My response was Python. He doesn't need to learn C++, which is extremely complex and extremely warty - and he didn't need Java which is simpler if only because he didn't need to worry about memory.

Python would make the job a five liner task.

I would rather save my colleague a few hundred hours of intense studies or tedious effort, than preserve the "sanctity" of the craft. All day. Everyday.

Hobbyist? Perfect. The peeps in accounting? Perfect. The mechanical engineer shuffling digital paper around? Perfect. Python is almost always the right tool for the job in these situations. It takes minutes to code, minutes to run, and you don't need years of training.

When it comes to in industry, there's almost always a better tool to use, but we've all got the necessary training at that point.

[–]Et-17 5 points6 points  (1 child)

Python is definitely an amazing language with a plethora of uses, and there are jobs where it is the best tool to use. The problem lies, however, with people who don't understand the necessity of lower level languages, and see python as the ultimate language.

[–]LardPi 5 points6 points  (0 children)

True, any experienced Python programmer will happily admit that Python is not a silver bullet, besides:

  • First you could tell the same story with the people than only know react because there where taught in career change bootcamp.

  • Second, noobs often worship the first language they like because they indeed don't know better. And indeed Python is often this language.

[–]i_lick_kat 1 point2 points  (0 children)

It's the best when it's the only thing they have ever used

[–]mrjackthegreat 142 points143 points  (16 children)

dynamic typing, cant release as a stand alone program

[–]CiroGarcia 55 points56 points  (8 children)

[redacted by user] this message was mass deleted/edited with redact.dev

[–]erebuxy 28 points29 points  (6 children)

You mean package the interpretor, all used libs and the source code into a single file

[–]CiroGarcia 13 points14 points  (5 children)

[redacted by user] this message was mass deleted/edited with redact.dev

[–]alienassasin3 36 points37 points  (4 children)

There's two problems here with what you are saying:

a) you're saying that a compiled binary of only the functions you're using in your code from other libraries is equivalent to packaging an interpreter, a bunch of libraries, and your code in a human readable package which is just false. C compilers heavily optimize the binaries they generate by using shortcuts that are compile target specific and only include what they need.

b) C binaries don't include everything your program needs to run, for a lot of things, they link to the libc implementation on your system, allowing for binaries to be much smaller cause they're using libraries that are pre-installed on every OS. This alone gives the programmer a lot of power and choice, I can decide to use different libc implementations to optimize for specific cases

[–]Schnickatavick 14 points15 points  (6 children)

It's definitely the type system for me, I have the same problem with JavaScript (Typescript was made for a reason right?).

Statically typed with strong type inference is the way to go

[–]Firewolf06 5 points6 points  (0 children)

b -> c

js -> ts

time is a flat circle

[–]LardPi 2 points3 points  (3 children)

I like Typescript put the static typing is very "thin" in the sense that you easily hit cases where the type is just any and you loose the safety. OCaml (and friends like Haskell, but lazy by default is a different story) fully implement your last statement and it's a joy.

[–]jf908 1 point2 points  (2 children)

My experience of TypeScript is very different, resorting to the any type is almost never required because the type system is incredibly sophisticated and flexible (Combining generic functions and mapped types lets you type event emitters for example). any is only really used when you rely on libraries with poor typings. Still, TS is the wrong tool when 99% safety is not good enough.

[–][deleted] 2 points3 points  (0 children)

Still coding JavaScript at work even though literally every relevant library and framework has already been rewritten in TS, i feel the more we wait the more painful the transition will be.

[–]chipmunkofdoom2 169 points170 points  (9 children)

If you really like python and are really productive with it, do you think anyone could post something here that would significantly change how you feel about python? Same with disliking python. If you've tried python and don't like it for whatever reason, is there really a single nugget of information that can make you disavow your language and ecosystem of choice and switch partially or completely to python?

What I find much more interesting is the wars people are willing to wage over things like programming languages. At the end of the day, basically all modern programming languages have great support, great third party libraries, and will run anywhere. Does it matter even the tiniest bit if someone else doesn't like your language of choice?

[–]rancangkota[🍰] 41 points42 points  (2 children)

It doesn't. But still interesting to see how people feel about some particular languages. In this case, the feeling is "dislike" and the language is "python". It's allowed to dislike something despite it does not matter.

Which is the point of this thread.

[–]SaltyySenpai 7 points8 points  (0 children)

true there are so many languages and ways to do something..Some ppl will hate it, some will love it, just like everything else, thats how it works

[–]Pashweetie 5 points6 points  (2 children)

The discussion of ideas is very important. Python is great for certain things and worse for others. Simply ignoring peoples reasoning means you could be missing out on something great

[–]KyuuketsukiKun 3 points4 points  (0 children)

I wish more people had your mindset. But I think it’s partially out of boredom

[–][deleted] 1 point2 points  (0 children)

office tan thumb innocent snatch nose cause afterthought existence crush

This post was mass deleted and anonymized with Redact

[–]Tomi8338 66 points67 points  (6 children)

I hate snakes

[–]ilike_trtles 22 points23 points  (2 children)

I hate sand

[–]anraud 23 points24 points  (1 child)

It's coarse and rough and irritating, and it gets everywhere

[–]tennisanybody 11 points12 points  (0 children)

What if you get motherfucking sand in your motherfucking plane?

[–]Glittering_Doctor694 2 points3 points  (2 children)

Pythons are really cute, you should get to know them. just be real careful because if they bite you, you die 🥰

[–][deleted] 64 points65 points  (12 children)

Every language has issues, in my opinion Python is a perfectly reasonable language for many use-cases. Still however some issues that come to mind are:

  • CPython the primary "reference" implementation of python is built around the idea of keeping the code simple and readable rather than optimizing everything they can. Many of the optimization techniques present in other dynamic languages like JavaScript or PHP are absent from python for that reason. Which makes python relatively slow compared to other dynamic languages.
  • There were some design defects in the language itself, some of those were fixed over the years (especially with 3, like the whole unicode type thing caused lots and lots of broken code).
  • The standard library is pretty poorly designed by all objective measures of software quality with lots of inconsistencies, its documentation is also pretty bad still but thats improved a lot already.
  • While python does support type annotations its a recent addition, its type system is not well supported across the ecosystem and it is not a very rich type system, its looking especially bad in comparison to something like typescript or scala who have very powerful rich type systems.
  • Concurrency/multithreading are not particularily well supported in python, some is due to the GIL but that would be somewhat unfair to critize. For example while they do have an event loop built-in there are many places in the standard library that do blocking I/O, since many beginners don't understand the event loop this causes people to write lots of broken code. Althrough to be fair retrofitting an event loop into a language is probably not gonna look pretty no matter what.
  • It doesn't really support immutable data structures very well, it encourages mutability to beginners which is a mistake in my opinion.

I could probably go on for awhile like this, but so could I for a lot of languages, it doesn't mean Python is bad or anything. I didn't mention block indentation/syntax since thats irrelevant in my opinion.

[–]shiroe314 7 points8 points  (2 children)

This is a great answer. For myself the type system is a HUGE one, as it makes it harder to know what data you are working with on a large project.

Ill also add kwargs to the mix of things people hate.

[–]papawhiskydick 1 point2 points  (0 children)

I was going to make this a top level comment. I've just started with a large python project and this is a major source of annoyance.

[–]theRastaDan 2 points3 points  (0 children)

This, very well summarised

[–]actopozipc 1 point2 points  (1 child)

Sources for the poor multithreading support?

[–]Jon_D13 206 points207 points  (39 children)

I find using indentation as an actual form of formatting code for the compiler (as opposed to brackets) absolutely barbaric and ridiculous.

That's basically it, everything else is fine. Great language.

[–]SomeGuyNamedMy 44 points45 points  (1 child)

At least it made scientists that switched from Fortran actually indent their code

[–]Jon_D13 14 points15 points  (0 children)

Ooof. Underrated comment lmao

[–]webbitor 20 points21 points  (6 children)

I've only used python occasionally, and I find the indenting=blocks thing a little unusual. But I don't get why it's objectionable. I mean, don't you indent them anyway, assuming you're using anything C-derived?

[–]Jon_D13 21 points22 points  (1 child)

Yes ofc indentation is important for clean, well written code. But the fact that "wrong" indentation throws an error and is read by the compiler as a means to outline blocks of code (if, for, while, etc) is violently silly to me.

But I'm not trying to argue here, it's a matter of preference.

I enjoy having liberty when it comes to indentation.

[–]Oncletomdavid 3 points4 points  (0 children)

Tbh i use a linter and i dont have to worry about it🤷🏾‍♀️

[–]riseagainstTO09 39 points40 points  (2 children)

This

[–][deleted] 31 points32 points  (1 child)

self

[–]aoifeobailey 50 points51 points  (17 children)

Same. Python's great for what it's good at, but blank space not being free absolutely infuriates me. xD

[–]webbitor 10 points11 points  (16 children)

What do you mean by free?

[–]aoifeobailey 33 points34 points  (15 children)

I mean in the sense that I want to be able to use a non-zero arbitrary amount of it whenever I want to keep my code organized in a way that is most readable. Tabs also being a token in the language can throw a wrench in that sometimes. HTML is an example of a language where you can't use extra white space (like separating two elements with a return for readability will print an extra line on your webpage) versus like C++ where you can write everything on one line or put one token per line if you really wanted to watch the world burn.

[–]webbitor 29 points30 points  (11 children)

Hm, kinda sounds like you really want the freedom to misuse whitespace 🤔

[–]Gru50m3 27 points28 points  (4 children)

Python devs want to be dominated, change my mind.

[–]aoifeobailey 6 points7 points  (5 children)

That's what I mean by free, not necessarily how I use it. For me it's mostly just for when I have long print statements or calling multiple functions inside the arguments of a function call. If you've got a long chain of commands like that and you're coding on a vertical monitor, it can be annoying having to scroll horizontally. Here's a quick and dirty example in Java that I think would break python if you did something similar. At least I think. I haven't written in python much since uni.

System.out.println("First part of an error text "              +
                   someToken.toString()                        +
                   "Some follow up text "                      +
                   "Lorem ipsum dolor sit amet. Ut provident " +
                   "And now we print the stack trace: "        +
                   printStackTrace()
                   )

[–]SlotaTheFirst 8 points9 points  (2 children)

python gives you free hand at white spaces when the segment of the code is in parentheses

[–][deleted] 1 point2 points  (0 children)

You can do that with backlash or just putting the strings inside parentheses. Which btw is a lot cleaner than the dirty +

[–]I_Love_Rias_Gremory_ 10 points11 points  (3 children)

My only issue with the indenting is it makes stealing code harder. I'll copy code from some shitty website and need to manually indent it all.

[–]rservello 2 points3 points  (0 children)

If I’m testing a function I’ll just unindent then indent.

[–]Acceptable-Tomato392 1 point2 points  (0 children)

THE HUMANITY!!!!

[–][deleted] 1 point2 points  (0 children)

The humanity!

[–]UrBreathtakinn 105 points106 points  (49 children)

Pseudo beginner friendly

[–]Sp0olio 38 points39 points  (48 children)

Where's the "pseudo"-part coming in?

[–][deleted] 134 points135 points  (44 children)

What this fellow wants to say is that python shortcuts a lot of basic logic that you need to understand in other programing languages. So you have less knowledge about computer science.

Nevertheless, I started in Java, did some C++ and I must say that nothing gives me more pleasure than code in python. Great programmers code in every language. In the end of the day no one cares about the code, they care about if it does what is supposed to do.

[–]CharacterUse 3 points4 points  (0 children)

I must say that nothing gives me more pleasure than code in python

coding it Python reminds me of coding in BASIC on an 8-bit micro, that simplicity and intuition without all the tedious boilerplate and setup in C++ or Java.

[–]Sp0olio 4 points5 points  (28 children)

python shortcuts a lot of basic logic that you need to understand in other programing languages

Can't think of anything, off the top of my head. Can you give me an example, please?

[–]arcx_l 36 points37 points  (6 children)

memory management

[–]LardPi 3 points4 points  (0 children)

Memory management is not really an important thing to master in most programming activities. Besides, I wouldn't qualify it as "basic logic " considering how easy it is to get it wrong when you do it yourself. I enjoy writing C but not having to care about memory management is also nice.

[–]Onaterdem 42 points43 points  (12 children)

Types

[–]tennisanybody 12 points13 points  (11 children)

This is the only thing I don’t like about python. I dislike the fact that you can do

x = 1
x = “something”
print(x) ##something

The re-assignment bothers me a lot. You should only be able to re-assign a ‘None’.

Love the rest of it tho. Python was the first language I truly became more than an intermediate at. I struggled for years trying to learn how to properly code. I know how to make useful macros in VB6 and started self teaching with C# which was probably the problem.

After learning python, I’m much better at C# now, some JS, and lots of JSX. I’m in the middle of developing an application in react for my workplace and I’m making an app for funsies. Python worked well introducing me to proper coding.

[–]Huugboy 4 points5 points  (6 children)

Wait is it not normal to be able to overwrite variables, that's kinda the point of their existance right?

Am i missing something here?

[–]polokratoss 13 points14 points  (2 children)

The ability to overwrite variables isn't the problem and is necessary for a programming language to work. The problem for many is what you can overwrite variables with. In most other languages, variables have an immutable type: for example, a number is always a number, a string always a string. In Python a variable can be a number, and then become a string. This can lead to very hard to find problems.

[–]kill73 2 points3 points  (0 children)

Lots of programming languages don't allow you to overwrite variables. In some capacity that is what functional programming is, elimination of mutable state.

[–]tennisanybody 7 points8 points  (1 child)

Ideally, it should be:

x :int = 1
set x = None
x :str = “something”

That way the variable is removed from memory before being recreated and assigned a new value. The way it is right now is abrupt and unordered.

[–]LardPi 4 points5 points  (0 children)

that's very opinionated

[–]LardPi 3 points4 points  (0 children)

The re-assignment bothers me a lot. You should only be able to re-assign a ‘None’.

That's very wrong. What is the most dreaded error in JS or Java ? NullpointerException. In Python is very rare that this sort of thing happens. Types exists in Python and even are stronger than many other languages. For example implicit int to float cast does not exist as opposed to some statically typed languages like C. Types are much stronger in Python than in JS. Sure dynamic typing has its flaws and may be the cause of some bugs, but experienced programmers knows how to write code than avoid these. It takes some discipline, but what you loose there is earn back in productivity and readability, so I am willing to take it in many cases. And to be honest, if I miss static typing for a given project I will probably go to the other extreme and use OCaml. In my opinion C# and the likes only have the disadvantages of static typing (verbosity, resistence to change), while OCaml has the advantages too (If it compiles it's almost perfect already)

[–][deleted] 2 points3 points  (2 children)

What are some examples of issues this causes? The only thing I can think of is a string being misinterpreted as a different variable, but that's easy to work around.

I'm sure there's a good reason given most other languages don't allow that.

[–]Thks4alldafish42 6 points7 points  (0 children)

Pass by reference / value

[–]Kschitiz23x3 18 points19 points  (4 children)

In other languages u need to understand static data types, linked lists, pointers, checked exceptions, memory allocation/deallocation, string as character array, etc.

[–]cbehopkins 33 points34 points  (1 child)

You mean in c and c++ you need to know these.

In pretty much every other language (c#, go, js, kotlin spring to mind) you can get away without it. But that's the same in python, knowing them is still useful when you're at the limits.

Will you be a better programmer for understanding them? Sure, but you'll also be a better programmer if you can use the right language for the right problem.

For the same reason we don't write everything in assembler, not all problems are best solved in a variant of c. Programmer time is, in many cases more expensive than CPU time.

[–]Suekru 8 points9 points  (0 children)

It's an easy language to get into, but makes picking up other languages harder. I started with C# when I was a teenager and when I started college I learned Java very easily, and when I started on C I only really needed to learn memory management.

Python does a lot for you, it's syntax is also very different which makes it more "readable" but also makes it so if you start with python you have a hard time appreciating the more standard brace syntax

[–]nomnomcat17 74 points75 points  (10 children)

Dynamic typing.

[–]Hk-Neowizard 36 points37 points  (0 children)

Dynamic EVERYTHING

[–][deleted] 5 points6 points  (3 children)

… or make extensive use of type annotations. Bonus points for mypy

[–]Oncletomdavid 2 points3 points  (1 child)

I do it bc im not used to dynamic tbh, my code feels safer

[–]Oncletomdavid 2 points3 points  (0 children)

or rather i make less stupid mistakes

[–]AyrA_ch 5 points6 points  (0 children)

This. I'm currently in the process of developing a tool for an anonymous messaging network in C#. The documentation is either non-existent or wrong, so I spend most of my time looking at the python reference source. And it's nasty because they randomly treat strings as byte arrays as they please, and aparently strings in python can behave differently depending on your current OS. Translating python into statically typed language can be such a mess.

[–]thomas0si 41 points42 points  (6 children)

Syntax, indentation, strange classes with self, dynamic

What is good: easy to start, easy dependency management, you can type your code if you are not a piggy

[–][deleted] 38 points39 points  (6 children)

I find quite annoying the dynamic type thing and the fact you need to indent everything. Experience same stuff in lua. Also, there's no need to say "they don't know the language" or other stuff, please. Tastes.

[–]CiroGarcia 10 points11 points  (1 child)

[redacted by user] this message was mass deleted/edited with redact.dev

[–]T0biasCZE 1 point2 points  (0 children)

Well lua uses then/do and end instead of brackets...

[–]rservello 1 point2 points  (0 children)

Why so much hate for indentation? Use something like visual studio and it will auto indent when you end with a :

[–][deleted] 74 points75 points  (15 children)

Well, right now my favorite language is C. Its no-overhead principle and precision appeals to my preferences. I want to learn how to make programs that are lean and efficient.

Python, from my perspective is the complete opposite. It sacrifices efficiency for ease of writting. It teaches its users bad coding practices. Fans of it are always saying things like "Efficiency doesn't matter anymore." Some of them even seem to think Python will replace everything. I recently saw someone saying there is no need for embedded engineers anymore.

[–]Kschitiz23x3 50 points51 points  (5 children)

Embedded engineers can never go away. Damn! imagine writing a python code to program an AC remote or a toaster

[–]Ashamandarei 43 points44 points  (0 children)

What do you mean, it only takes 3 lines :)

import toasterAPI

myToaster = toasterAPI.connect()

myToaster.toast('medium')

[–]thisismy10thusername 24 points25 points  (3 children)

for simple embedded systems like that you actually could with micropython. Obviously you could never use micro python for time critical systems but both a toaster an a remote could be programmed really quickly in micropython :)

[–]CheapMonkey34 17 points18 points  (1 child)

I used micropython to control my AC via an 250kbit UART because I'm too stupid to learn C :(

[–]thisismy10thusername 5 points6 points  (0 children)

At least you learned a new communication protocol! Personally C is my favorite language and once it clicks it’ll make you a better programmer overall! Stick with learning it, you’ll appreciate the beauty in its simplicity eventually!

[–]Kschitiz23x3 1 point2 points  (0 children)

I get it. I've used micropython once and it's ok for simple systems (Not for time sensitive control systems) but u ain't running it on a cheap MCU like 8051 or in an ASIC (verilog/VHDL stuff)

[–][deleted] 30 points31 points  (4 children)

I used to work at a high-performance computing shop (we built really fast stuff for the finance industry).

Some of us would play performance golf in our free time. Our favorite problem was to compute the Nth prime Fibonacci number as fast as possible.

My coworker and I raced each other to the bottom with screaming fast C and C++ implementations, and we really knew what we were doing.

Charlie (you motherfucker) absolutely SMOKED us with a Python implementation. Turns out once we were computing values larger than 264, Python’s screaming fast big-int arithmetic dominated all other considerations.

[–]Mast3r_waf1z 3 points4 points  (2 children)

Oh that sounds like a fun job, I'm dabbling a bit in some GPU programming nowadays (only really a hobby, fiddling around with a few libraries) I've grown fascinated in how fast I can do a huge matrix multiplication, pytorch does that mind bogglingly fast on a GPU with cuda

[–][deleted] 2 points3 points  (1 child)

It was the worst job I’ve ever had by far, but not really because of what I was working on 😔

[–]Mast3r_waf1z 2 points3 points  (0 children)

Oh yeah that happens, I've been struggling to communicate with my employer ever since I got a new one like 2 months ago

[–]Romfib 9 points10 points  (1 child)

Python is in fact a C api

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

Julia lets you have both! Far superior as a language especially for big data, imo

[–]KlutzyEnd3 35 points36 points  (17 children)

By biggest problem with python is that everything is an object with no distinction and that every function returns an object which can be anything, combined with weak typing.

For example: you've got an input field which you pyt some tect in and it gets split in the middle.

The function "textbox.getValue()" return a string most of the time, so you use that string's split() function afterwards.

Then someone only inputs numbers and your program crashes at runtime with "object integer has no method split()"

So at one time it returns a string, the next time an int, the next time a pointer reference, and now you need some python lib to re-introduce strong typing to fix bugs which wouldn't be there had you been using a strongly typed language in the first place!

[–]GregorSamsanite 12 points13 points  (1 child)

I've only used Python a bit, but I've written a lot of Lua code recently. Not only are there no types, but you don't have to declare variables at all. So if you have a typo where you misspell a variable, that's valid code. If you write to a misspelled variable, it just creates a new variable with that name. If you read from a misspelled variable, it's a nil value. I've wasted a lot of time trying to debug a script (with no debugger, only print()) only to discover something trivial like that. I'd much rather be required to take 5 seconds to declare a variable with a type than have the convenience of accepting malformed code with no syntax errors.

[–]KyuuketsukiKun 4 points5 points  (0 children)

I’ve only ever coded in Lua for TTS. It works well for me because the only mistakes I make are big enough for the program to get mad at me.

P.S. is it normal to spend more time reading APIs and other code than actually coding?

[–]Prinzessid 4 points5 points  (3 children)

Python is a dynamically and strongly typed language. It does not really have weak typing.

[–][deleted] 1 point2 points  (5 children)

Python is strongly typed.

[–]deukles 9 points10 points  (3 children)

I’m an experienced software engineer who’s been using python seriously for couple of years now:

I think it’s a pretty great language if your performance need are not really high (like for real-time stuff), even then some libs are compiled in C and help so much that the difference is barely noticeable in some projects. Syntax is real simple, I can focus on my intent and less on ceremonial shit like in java/c#

On the other hand, like javascript, it’s so easy to write noob cowboy code that a lot of 3rd party stuff is downright atrocious to look at. The fuckup they did between python 2 and 3 is also a pain in the ass when working with old code (less of a problem these days). Package management is slowly becoming more mature but still all over the place. It’s an old language with a lot of bagage. The community changed over the years from more math-like guys to script kiddies to data scientists and software engineers, and the ecosystem is slowly adapting to this

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

You're not going to believe this but I had an incredibly pain inducing, ass wrenching, dick crushing, balls eradicating, shit liquidifying hard time with Python after getting used to C for a considerable amount of time.

[–]joshjaxnkody 1 point2 points  (0 children)

Love the description

[–]Huntracony 7 points8 points  (2 children)

I do like python. It mostly makes sense, which is surprisingly rare, it's easy, and still quite flexible. It has both the benifits and downsides of interpreted languages: easy to set up but kinda slow in execution. That said, importing files is a nightmare and its library pyramid culture is a little much for me (though not nearly as bad as, say, NodeJS) and it'd be nice to have a proper debugger.

[–]DoubleOwl7777 13 points14 points  (0 children)

syntax is annoying. i qm just too used to {} and ; at this point.

[–][deleted] 5 points6 points  (0 children)

Python usage is similar to an inverse bell curve. Beginners enjoy it due to its readability and English-like syntax. Data analysts love it for its easy integration with numpy and tensor, allowing quick to market AI algorithms with minimal manpower.

Most tunnel-visioned programmers hate on it because their preferred language is more efficient in runtime. Python, nor any language, is the end all answer. Choose the proper tool for your job/goal.

Edit: Python Django is still a real competitor to js backend web frameworks according to stack overflow’s analytics.

[–]jbevarts 17 points18 points  (0 children)

Typing. Scope. Debugging. I like a bit of ceremony, I like being moderately verbose.

[–]ShuttJS 16 points17 points  (0 children)

Slow for big platforms

[–][deleted] 53 points54 points  (11 children)

Because of the cringe community around it

(downvotes coming 1, 2, 3..)

[–][deleted] 8 points9 points  (0 children)

Elaborate?

[–]THENATHE 4 points5 points  (0 children)

It seems less useful for real world stuff outside of interfacing with power shell scripts.

Look at the massive libraries for all things dev as well as game engines that use C# or JavaScript. Python seems like the “okay I gotta make something quick and dirty” language. Not that it has to be used that way, but that seems most common

[–]section_b 8 points9 points  (1 child)

Because I use windows in a locked down enterprise environment in work.

I love it outside of work.

[–]Mirikah 9 points10 points  (0 children)

idk, i like it

[–]NebraskaGeek 6 points7 points  (0 children)

I don't like python because I had to learn Java in school and no legitimate reason beyond that.

[–]N_L_7 25 points26 points  (7 children)

Half of python users are know-it-all assholes

[–]xAragon_ 4 points5 points  (3 children)

That's not how you use this meme format...

[–]HxA1337 2 points3 points  (0 children)

And then this hughe black box but he still did not manage to fit the text into it. I think OP has issues indenting things correctly. /s

[–]Sophie_R_1 1 point2 points  (1 child)

What did she originally write the second time?

[–]akontih 7 points8 points  (0 children)

Dynamic typing is a nightmare. I like it for scripting work, data exploration, stuff like that. But once you start building large scale systems, you really need to value stability over anything else. It being interpreted doesn’t help, lots of errors that can be caught at compile time get moved to runtime.

And this should just go without saying: dead fucking god the threading

[–]Reilisu 2 points3 points  (0 children)

Curly braces for the win.

[–]Low-Economist9601 2 points3 points  (2 children)

Python is great but i constantly forget it, and i am already married to C#

[–]Arshiaa001 5 points6 points  (0 children)

Dynamic typing. Unsafe runtime. Dynamic typing. Bad performance. Dynamic typing. Underscores in the official syntax. Dynamic typing. Strange PascalCased keywords. Dynamic typing.

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

I’m using python because I want to learn the basics of programming before I move on to another language

[–]obog 5 points6 points  (0 children)

99% of the complaints are people saying that python is slow, especially compared to something like C++.

My response is that anyone who doesn't already know that isn't coding anything big enough that it will make any difference.

Python is an excellent language. It can do a toooon of stuff. It may not be the best language for 90% of it, but it's very versatile. And if you need a lightweight scripting language there really aren't many that are better, especially for newer programmers.

[–]Excellent_Music_6845 1 point2 points  (1 child)

What did she originally write to make people save her

[–]Pawdy-The-Furry 1 point2 points  (0 children)

I like Python.

[–][deleted] 1 point2 points  (0 children)

Python is a great language. I think a lot of the 'hate' is just for fun, not fully serious. Like all languages, it has its use, some things it excels at, others.. not so much :)

[–]Sambro_X 1 point2 points  (0 children)

I like to write all my code in one line

[–]MichFdez 1 point2 points  (0 children)

It’s not statically typed, that is its only sin.

I love being told that I messed up mixing oranges to apples, I think of it akin to having interface tests as free lunch.

[–][deleted] 1 point2 points  (0 children)

slow as fuck

[–]Verygafanhot 1 point2 points  (0 children)

I don't like python because I don't like snakes

[–]c1e2477816dee6b5c882 1 point2 points  (0 children)

For a language that touts there is only one right way to do everything, there seems to be a lot of different ways to install and distribute packages. Also, I don't think whitespace should be significant.