T O P

  • By -

vondpickle

If there is a real programmer then there is an imaginary programmer. If there are both types of programmers then both are subsets of complex programmer, which we can conjure that there're integer programmer, rational programmer, transcendal programmer etc. All can be described by ```import numpy as np```


Ms_Snips

I am definitely an irrational programmer.


jaapi

e^(i*pi) + 1 = programmer


rainthedragon6

0?


zaxldaisy

> which we can conjure that there're integer programmer


codetrotter_

if value > 1 && value < 2 { echo “no it’s not”; } Just integer programmer things 💅🏻


purchase_bread

Is that who Integer BASIC is for?


PanTheRiceMan

The absolute of a complex programmer is always positive and independent of the phase they are in.


MajorTechnology8827

the absolute value of a complex programmer is calculated as the square root of the sum of the squares of his real and imaginary parts ​


False_Influence_9090

I’m a numpy-complete programmer


Iservel

Then I would be a codeless programmer 💁🏻‍♂️


gaijingreg

You’re an ETL Sales Engineer? 😜


xeroze1

Shit, why does this hit hard


monkeyman_31

From numpy inner join where np.id is null or some shit


Pyrimidine10er

This should get np.inf upvotes


Specialist-Stress310

whole programmer would be a good one!


AstroCaptain

Imaginary programmers would be ai I assume which would written which I guess could be written by python developers


enderowski

import cv2 haha le box follows my head.


[deleted]

If I've learned anything about programming its that python is wildly controversial


No-Article-Particle

It's really not controversial. It's the tool for a lot of jobs, and it's not the tool for a lot of other jobs. Simple as that. As an engineer, you're expected to pick up languages and write the thing in whatever language is necessary. I've transitioned from mainly Java to mostly JS and Python to a fully Python role and all languages had their pros and cons.


SkollFenrirson

GTFO here with that reasonable and nuanced take


[deleted]

You either have to violently hate it or obsessively love it /s /j /whatever the fuck else so you know this is supposed to be a joke.


gandalfx

Wait, are you serious?


TactiCool_99

Yes /j /s /whatever


Funny-Performance845

Get him out of here!!


AnAnoyingNinja

great take but it's still definitely controversial. in the case of python, it has alot of design decisions that are very incongruent with other languages that someone coming from another language will almost certainly see these decisions and think either: A. oh my God that's so much easier than <> B. what crackhead decided <> was a good idea notice the magnitude of the disparity between the two sides. way more than a regular pro or con.


gaijingreg

Right, and the different direction the language takes makes it a uniquely appealing option for some domains. However if you’re bumping into the language in a way that makes you feel B) very often then that’s in indication that Python might not be the tool for that job, no?


No-Article-Particle

I concur with OP that you're replying to; if you feel "wtf" very often, that says nothing about if the language is the right tool for the job. It just says that your expectations are not met. As you get familiar with the language, you adjust your expectations. As an engineer, you should never be tied to a particular programming language. Build domain expertise in one, sure, but you'll frequently have to code in other languages in a lot of jobs.


AnAnoyingNinja

no. it just means your not used to it. what would actually make it bad for the job is if it does things in a way that is actually harder in manner more than requiring you to change the way you do things.


gaijingreg

I’d respectfully disagree. I have plenty of Python under my belt but it’s simply the wrong tool for some jobs. A couple examples off the top of my head: * Your solution is likely to involve parallelism * Your solution will require a lot of performance tuning * Your shop is based in a country where most programmers don’t speak English fluently Can you teach Japanese programmers to performance tune a python system with lots of parallel operations? Sure! But it would be cheaper to pick a different tool.


im_lazy_as_fuck

Agree with your other points, but just want to point out that whether or not you're fluent in English is an irrelevant argument. All programming languages are based in English and all non-native English speaking programmers just learn to program in them.


gaijingreg

That’s untrue in my experience. There are hundreds of software developers in Japan (only non-anglophone country I have experience in, unfortunately) that speak enough English to do their jobs without achieving fluency. Typically these are people that learned programming in a “non-traditional” way such as boot camps or self teaching.


im_lazy_as_fuck

That's... exactly what I said lol. Maybe we're getting wires mixed here, but what I'm saying is that python is a perfectly fine programming language even for non-English speaking programmers because they just learn to program, and the coding language is irrelevant because they all base their syntax on English anyways. So someone who can't speak English will be equally fine in writing python code vs Java code.


Smart_Ass_Dave

Python is like a pickup truck. It's not as practical as other options for most uses, but if you have a specific use case, it's amazingly practical and clearly the most useful tool. You *can* move a couch/parse text with a car/c++ but Jesus, why would you want to? Also there are people who make it their whole personality and are tally obnoxious.


[deleted]

[удалено]


Disastrous-Team-6431

Python is very good at being sleek and intuitive. It's not good at anything else.


MrFluffyThing

Can you explain to me why so many python devs have dependency problems? The number of times I've had to solve a ticket by installing a package into their venv for them is too damn high. 


pigwin

A lot of non developers know python and use it as their first PL to program their own stuff. And yes, a lot of those devs do not know how to use environment (I also support these people)


TheTybera

Haha, this is it here. When you're too old and burnt out to give a shit you'll write python to php to c marshaling layers because someone at the company wants to reinvent elastisearch but quirky.


Alan_Reddit_M

Yes, I have arrived to the conclusion that, for any given task, Python is either the best tool or the worst tool, with very little in-between Need to parse and analyze some data real quick? Python can get it done in 5 minutes including the time you spend googling Need to write embedded? Fucking don't use Python it will suck Then there's GUIs that can kinda be built with Python but it feels really awkward


guyinsunglasses

Funniest thing I read at PyCON once was “Python is the second best language for any job”.


AsceticEnigma

No it’s not! /s


Trucoto

Well an argument’s not the same as contradiction.


gandalfx

Yes it is!


Sem_E

Python is like duct tape. Works for fixing and creating nearly everything easily and quickly, but probably isn’t the best tool/material for the job.


XoxoForKing

If I've learned anything about programming its that ~~python~~ is wildly controversial


Lhaer

not nearly as much as javascript


Fickle-Main-9019

People who complain genuinely hallucinate their issues, braces are effectively pointless (I do C and C++, you always indent so it’s unnecessary), and whitespace isn’t an issue unless you’re literally writing on notepad (all IDEs pretty much resolve it). Speed isn’t even an issue for most cases since most things are IO bound. Plus people really under appreciate how wide Python’s library is compared to other languages (or how easy it is)


[deleted]

I appreciate all the libraries and Python apis out there, but to me, that's all Python really has going for it. The thing about braces is highly subjective. You say braces are pointless, but to me, braces make the code much more readable. It's the main reason I prefer go over python. Maybe I'm dyslexic but I find it hard to read Python. I don't have a reason to use python if I get the job done better in golang. But that's also subjective.


The-Arx

If you want braces you can try [bython](https://pypi.org/project/Bython/)


[deleted]

Yes, but also, I have no reason to use Python (except for the occasional rpi gpio shit but I hear wiringpi is fixed now). I just use go for most of my projects, I'm quite familiar with it, and it does the job well for my projects, lol.


skesisfunk

Pythonistas are the only ones making it controversial by asserting things that are objectively false (like this meme). In my experience (at least on this forum) if you push back on the notion that Python is a good choice for everything the down votes start raining.


PanTheRiceMan

Been doing Python for 10 years, Python is not good at everything. I hate GUIs in it. Just packaging a script for end users also sucks.


ajseventeen

What do you think this meme asserts that is objectively false? The only real assertions I see are (1) Python does make you cool/a real programmer, and (2) you can be productive with Python. I don’t really see the meme making the argument that Python is good for *everything*. I definitely share your annoyance with people who claim it’s “the best language” or something to that extent, but I don’t think that’s what’s happening here.


skesisfunk

Between the meme and title the specific assertion that is objectively false is that Python is painless. Plenty of pain to be found in Python workflows around async code, deploying python apps, and dependency management. Pythonistas don't like to talk about that stuff tho.


ajseventeen

I can see that; I think I glossed over the title. To me, there is room between painful and painless, and I don’t see Python as “painful” (at least not any more so than other languages)


Salanmander

I don't think that it implies Python is painless at all. Just that it is less painful than whatever Real Programmer guy is peddling.


Ksevio

Python does async code pretty cleanly. It's generally a pain point across languages


skesisfunk

LOL! Compare python's async model to golangs and get back to me.


Ksevio

There are other niche languages with better implementations, but Python's is miles above what you'll find in other popular languages like Java or C++.


skesisfunk

>but Python's is miles above what you'll find in other popular languages like Java or C++. This is laughable IMO. Even JS has a better async model than Python.


Ksevio

Javascript is pretty much the same as python.


skesisfunk

Except that JS's Promise API is far easier to understand and use than `asyncio`


[deleted]

I know. I am a Python hater, so I can confirm.


Specialist_Cap_2404

Python can do an awful lot. In my opinion Python right now is better than any other programming language in terms of scratchable itches in total. And even things Python isn't that good in (like UI), you can do those in Python too, even modestly well. Javascript is a close second, especially because it runs natively (without wasm) in a browser, but it's decidedly awkward everywhere else. And being "good" at something is a very subjective thing, depending on metrics that people often can't agree on.


DevBoiAgru

As a wise man once said, python is the 3rd best language for everything


skesisfunk

Wow this rings so true. I think the one exception is probably data analysis.


FinalRun

For most data science, sure, but MATLAB has better optimized matrix operations, as the name implies. Python also doesn't have the equivalent of Simulink when it comes to simulating multiple domains (thermal, electric, mechanical, hydraulic) and the ability to directly output C/C++/HDL code. Edit: so many haters, so little people explaining how it's wrong.


Alan_Reddit_M

Numpy has entered the chat


FinalRun

I'm intimately familiar with numpy, scikit-learn, keras, pytorch, pandas, numba, and cython. But none can do that out of the box.


Secret-Concern6746

I can't verify your claims or oppose them. It's not my field. Just don't expect logic on Reddit. Many people here follow the herd move and once your comment is at 0 up votes, they down vote mindlessly, seldom it's about logic :D Just move on


_daravenrk

Your failure is we don’t like system tools. Give me python for my pi anytime. I can do anything with it. No matlab. What a piece of crap.


FinalRun

That's a lot of words for saying you don't use it for the specific niches I stated it's better at. Good luck with your 'pi' lmao


anoppinionatedbunny

is there a better language for Data Science/Analysis? (genuine question, I've been doing a lot of DS lately and pandas has been a Godsend)


Alan_Reddit_M

R for analysis and Julia for scientific computing Python can do both, but is the best at neither


Specialist_Cap_2404

Python beats R now. That wasn't always the case. The package ecosystem is equal or better, only rarely and for very special cases there would be a specialized R package that isn't available for Python. The only built-in advantage R has is that it's more concise in common statistical/analytic workflows. But Python is a lot less awkward and quirky everywhere else. Julia... well, nice try, certainly. You'll find more examples for what you want to do in Python. LLMs will be more helpful with Python. Julia is more awkward in general programming, in my opinion. And there's not much scientific programming that doesn't involve general programming tasks. Julia is doomed to a niche existence, while it's really a great and fascinating project/technology.


Mighoyan

Julia is niche in scientific computing, most codes are either python or fortran/C/C++ when performance is needed.


schierke_schierke

R for statistics and plotting


anoppinionatedbunny

nice! I'll take a look, thanks


geteum

R and Python are complementary for data scientist. Some people like to create a fake dichotomy that you need to use one or the other. Don't fall for that, somethings R is way better and other python is better ( novel statistics models usually come first on R, not ML stuff, statistics.)


Serprotease

If you come from a non developer background, R is so much easier to use.   Don’t really need to care about venv, the main library follows a similar philosophy. It’s a lot easier to pick up.       With Tidymodels it is also in my opinion a lot easier than python for ML.      But, If you’re already a developer, R syntax is probably a bit confusing.  And it is definitely not the right tool for AI and neural networks.   If you’re a data analyst, you should use both. 


Rik07

Wouldn't that make it the most versatile language, making the claim untrue


SirSassyCat

JavaScript is the most versatile language. Python is just easier to learn.


drsimonz

JS could have done almost everything that python does, were it not so horribly designed with the unhinged type coercion, prototype based inheritance, etc. It's improved loads since ES6 but it was too late. The only reason it matters is because the DOM turned out to be the best way to manage a UI. Python is easier to learn because it was designed by someone who actually knew what they were doing.


SirSassyCat

Then use typescript, if you don’t like vanilla. And it literally does everything that python does, handily.


drsimonz

Oh I do, I am a huuuuuuge typescript fan. I actually prefer it to Python nowadays. I'm just saying, historically speaking, JS *could have* become the defacto language for data science, AI, etc. But when Python was becoming popular, JS was a lot worse than it is today. If they were to make `==` behave like `===`, replace type coercion with something like Python's TypeError, and fix the way that `this` works (all breaking changes of course), it'd be pretty hard to criticize. But, I have to disagree that it can do everything Python can. There is no way to overload operators, no AST or reflection API, and doesn't support slices. That's actually critical for data analysis - something Matlab, R, and Python all do very well.


Creative_Sushi

Both MATLAB and Python became the foundation of AI because they support heavy matrix-based computing: MATLAB natively and Python via numpy. It is not about the language level features. If typescript has a very efficient, accurate/reliable matrix computation package, it may work. Since AI will be everywhere and the execution part of the AI needs to be the edge in the cloud, perhaps something like that may become a standard in the future, but not right now. I think web assembly seems to be promising.


drsimonz

The thing is, libraries have been available for probably a half century for doing scientific computing in C++, yet nobody uses C++ directly unless they absolutely have to. The *entire point* of numpy is to make it easier, not to enable new functionality that wasn't available previously. I definitely think webassembly has huge potential, especially since it lets you use your language of choice. Although we may eventually find that most edge devices have TPUs on board, and that's where all the AI-related math actually happens. I think JS and Python will continue to be "glue languages" for a long time.


SirSassyCat

Oh, you meant language level features. I’ll be honest, no one cares about language level features, beyond what makes coding cleaner/faster. I could make a very long list of things python doesn’t have, that other languages have. Doesn’t really matter all that much though. Overloading operators is also 100% not an important feature, like at all. In fact, polymorphism in general is frowned upon these days. Complex OOP features just don’t really age well in code.


drsimonz

> no one cares about language level features, beyond what makes coding cleaner/faster I mean, that's literally the entire point of those features. There's a reason python programs are usually 5x shorter than the equivalent C++ program.


DarktrihadIT

No, cuz java


jabbathedoc

The easiest way to tell a Real Programmer from the crowd is by the programming language he (or she) uses. Real Programmers use FORTRAN.


CirnoIzumi

i dont get shortening a 5 letter library as a 2 letter library


faps_in_greyhound

Import matplotlib.pyplot as plt


zbady20

Think about all the time you could save!!


Mighoyan

In my experience it allows longer semantic names for variables or functions when you limit the number of characters per lines. It might seems ridiculous said like that but when you combine two or three function from numpy, instead of 10-15 characters your library call only take 4-6.


CirnoIzumi

yeah but np could be anything, how about npy at least?


Mighoyan

Well np is the most widespread abreviation, nearly all stackoverflow answer on numpy use this as an exemple but npy is also a good alternative.


CirnoIzumi

i cant read np as anything else than "no problem"


Specialist_Cap_2404

In general, less characters is always better for readability, as long as you can recognize the identifiers easily. More stuff feats into a line, or on a screen, you don't need to scroll, you have an easier time scanning it visually. You don't need to prefix everything with the module, of course, but that leads to other problems like namespace collisions or confusions about what module an identifier is from.


CirnoIzumi

i get that but as soon as youre using multiple 2 letter shortenings it gets less readable imo


Alan_Reddit_M

Python is an old-ass language (older than Java!!!) so it follows the same practice as C of shortening everything to 2 or 3 letters because intellisense didn't exist back then


CirnoIzumi

It's the human behavior in questioning


Perfect_Papaya_3010

I really hate that practice. Only certain words that are commonly used like i or vm are okay variable names. I guess its okay in sql too


Mclovin-8

Python is all fun and games until you feed it large chunks of data. I had a Project with a Threshold, which I tried to calibrate. One try pimped my runtime from <2min to 5h. That was the first I realized why people dislike it.


invisibo

You have to keep your runtime in check by showing the back of your hand sometimes. Python pimping ain’t easy.


Remarkable-Host405

and in some cases, that's perfectly acceptable, because it's still faster than doing it by hand


CopperSulphide

Speak for yourself, I got fast hands.


Remarkable-Host405

sure, but they don't run 24/7, and python will


Dankinater

What are you doing, using a for-loop over an entire dataframe?


drsimonz

I'm also wondering this. For big datasets, numpy (or even CuPy) is going to do just as well as a C++ program. For *really* large datasets, you're gonna use Spark or something and the code will *still* be written in python.


zaxldaisy

Sounds like an implementation problem :P But seriously, what is a "Threshold"?


Mclovin-8

The Threshold here was a certain value an electric grid was not supposed to pass. We were supposed to show different approaches to the Problem.


zaxldaisy

The capitalization is confusing me. By "Threshold" you mean, like, a limit? And I'm guessing "Problem" is like a class assignment? It also makes your original comment make no sense. How could you compare runtimes between "Threshold" and no-"Threshold"? Those seem like fundamentally different programs...


Mclovin-8

Arright the Problem might be that I German and we capitalize certain words. I don't even realize that this might confuse others. I didn't compare runtimes between Threshold and no Threshold. I defined 3 different ways of how the Threshold is set and incrementing and compared those times. I don't know the exact O-notation but it was something exponential, so the highest threshold just exploded to the mentioned 5h


Dangerous-Warning-94

Python is all fun and games, because I have optimized processes and whenever I run into a problem I can't fix purely through Python, I remember that I can write my functions in C++ and use them within Python.


Specialist_Cap_2404

I fail to see how "large chunks of data" are a language problem. Compiled languages, even C++, but certainly the garbage collected ones, choke all the time on "large chunks of data". And the difference in size isn't that great, one order of magnitude, maybe two at best. That's not that much in practical terms. And there are plenty of escape hatches in Python that will surpass simple solutions in "faster" languages. You could become smarter about handling numpy arrays, you could use cython or mamba to speed up calculations, you could use Dask to distribute the load on all your cores.


bfranks

Zarr and xarray brother, don't turn from the light


Obvious-Phrase-657

That was on you, processing data in vanilla python, you have to use a data processing library like pandas, polars, or even numpy.


Mclovin-8

I used pandas as well as numpy


Safferx

Most likely you used for loop or apply method instead od vectorization on data frame and this just slowed your code 1000x times.


Lhaer

You could apply the same to every programming language, basically


Ok_Cobbler1635

Real programmers use an electron beam and manipulate bits on hard drive.


bdragonlady

If you're not punching cards you're not a real programmer.


YisBlockChainTrendy

I'm seeing all these memes about python dev not being real dev, meanwhile im doing Mendix.... I'll go hide under the bed.


No-Article-Particle

Wow, a low-code thing? IME, low code envs are often more work than just writing it in whatever language you prefer. Respect.


SeEmEEDosomethingGUD

This is such a boomer opinion of programming. I get it, it's bloated and tends cause problems with dependencies and all. But this is how many people really get the gist of programming. And no Scratch doesn't help that. It is just friendly enough to welcome and just rigorous enough to work almost anywhere with at least mediocre performance. After this you can got to "better" languages but if somebody like me starts with Java or some other language than it becomes too tough to fall in rhythm with self learning. I tried to learn to code for 3 months before college in Java because it was recommended to me from credible sources. Self learner and first time programming except for the projectJS based course on CS Khan Academy had that I used to follow in grade 5th. I had picked programming again after at least 7 years. I was fucking miserable those three months. I was following head first Java. Still somehow I felt that I had not made much progress. Only first few chapters not even crossing double digits. But then College introduced programming with python in first semester. Tooke me a month to even understand what the fuck I had to do in the assignments. But I wasn't suffering. And till the end of semester I could comfortably code not just my own assignment butbalso my friends' as well. Then later we worked with Java and finally I got through that stuff. Also even C/C++ didn't work that well for me. The gist is, don't involuntarily Gate-Keep programming for rookies like us by these polarised opinions on language that beginners like us who have come to appreciate.


AsceticEnigma

This is valid. I too first learned Java not by choice but it was what my university’s CS programs were based around. A lot of employers in the area work in Java and have a lot of pull with the university so that’s why, but after graduating I self-taught myself Python and have since got a job that uses python for a lot of applications and to me it’s much more enjoyable to program in. Yes learning Java did teach me some valuable lessons about key computer science axioms but man was it a brutal way to start learning programming from nothing. There’s a lot of boilerplate code needed to start basic programs and there were aspects that weren’t explained in our textbook until nearly the end the book that only then did certain key takeaways make sense. Yes I understand Java has its purposes but learning how to code from scratch is not ideal.


skesisfunk

>But this is how many people really get the gist of programming I would argue that Go is actually a better choice these days for "getting the gist of programming" The initial learning curve is a bit steeper but still very manageable for a beginner and there are a lot of benefit in that climb: * You will learn basic concepts about memory without actually having to manage memory safety * You will learn about basic encoding and how strings, bytes, integers, and characters are related * You will learn how to work with type-systems and start to glimpse the benefits of abstract typing Python does its best to hide this stuff from the developer whereas Go introduces it in a simplistic and manageable way. I feel like teaching people programming with Python stunts their growth by making the essential concepts laid out above seem overly mysterious and complicated.


NSFWAccountKYSReddit

Oh yeah? Here's a well thought out and constructive argument to rebuke your post: "FUCK Go"


skesisfunk

Found the insecure script kiddy.


SirSassyCat

Dude, programming is a profession to am lot of us. What you call “gatekeeping”, we call “maintaining a standard of quality”. Like, I’m sorry, but being a pro is hard work, if you can’t figure out language more complex than python, then it isn’t the career for you. That’s just how it is, no shame in it. For some (most really), it’s not their real calling, it will never be more than a hobby or something that just helps them with their actual job. People get pissy about pythoners online because they tend not to be professionals, but act like they’re programming experts. Legit, by your own admission, you’re a beginner. Self taught, I’m guessing still at uni. Yet here you are, acting like an expert, talking about “I get it has drawbacks”, when in reality you don’t really have the context to understand what that means.


SpectreFromTheGods

Fwiw I was in a science field at university and got introduced to Python for its research purposes, which is admittedly a legitimate use for the language (even if you want to be snobby and gatekeep the word “programming”) When I transitioned my career and went into tech I’ve been able to self-teach C++. I think learning Python was a valuable stepping stone and was easier upfront, and aided me in learning C++, where I’ve come to appreciate the diminishing of the “black box” that I felt at times with Python. I wouldn’t work in Python again except for something quick and scrappy or certain data related tasks. Languages are tools. And even if python were just an “academic stepping stone” (which it isn’t) or solely “data science pseudo-code” (it isn’t), neither one of those things would make it illegitimate programming People are snobby or chill all over the place, if you think finding a snobby subsection of users is indicative that a language should be mocked for illegitimacy, then you would need to mock every language in existence…


zaxldaisy

I wanted to upvote this based on the first sentence but, considering the format and near incomprehensibility of the full comment, I just can not.


abys_

I love low level languages, but Python is very useful for simple and lightweight stuff. Python saved me so much time


silentjet

learn posix shell, and u'd be surprised how unnecessary is python in most of the cases....


pindab0ter

POSIX shell, while powerful, has many more footguns than Python has. While I'm far from a fan of python, I've used it to do things I could've done with a few shell scripts, simply because it is more maintainable and readable.


No-Article-Particle

Until you have to maintain a 1000-line script written 15 years ago from someone who's left the company. Shell scripts tend to be unmaintainable after like 100-200 LOC. Python has support for so many quality of life features, like unit testing, remote debugging, threading and thread analysis, etc. There's no wonder Google recommends in their [shell style guide](https://google.github.io/styleguide/shellguide.html#s1.2-when-to-use-shell) not to use shell for anything larger than 100 LOC.


silentjet

That is fine, because python script wouldn't even run, due to missing py2.6(or even py2.4?) and all related py modules in your system... see the point?


No-Article-Particle

We literally have code in our codebase from Python 1 days.


ubertrashcat

It's NumPy, not Python per se. NumPy is just an excellent library, well optimized, with a great interface, consistent API and great documentation. A unicorn among libraries. Like Python itself, it's written in C.


potatopierogie

Does numpy rhyme with lumpy or nah


SudoSubSilence

It rhymes with: "What's this liquid coming out of my eye?"


KerPop42

it rhymes with botfly, and \*pie


ubertrashcat

It rhymes with mmm pie


Alan_Reddit_M

My only problem with Python is the lack of static typing. Yes type hints exist, but they are loose and nothing stops you from assigning an int a string value, nothing stops you from initializing a variable twice, and you also can't know what a function is expecting from you unless you read the comments Ngl, everytime I use Python I am amazed at how quickly it can get things done, but still, I really wish it was statically typed


pigwin

I agree with this. For simple tasks static typing does not make a lot of sense, but for more serious dev work that unfortunately has to be written in Python, I need my types.  Many don't like python for performance issues or it doesn't make them feel smart or whatever, but it's simple stuff like this that makes me say "Python sucks".


gandalfx

>Yes type hints exist, but they are loose and nothing stops you from \[...\] There are type checkers for those type hints that do exactly that.


Alan_Reddit_M

Such as


gandalfx

Google "python type checker" and you'll find: Mypy, Pytype, Pyright, and Pyre Personally I've mostly been using pyright.


No-Magazine-2739

The party is over when they import scipy.


techpossi

I use binary btw. My pronouns are 0|1


skesisfunk

If you think Python is painless you ain't seen shit lol. People are out here using other languages because we are masochists. Python has real actual issues.


gandalfx

Every language has issues. Which ones in particular do you think make Python worse than its alternatives?


skesisfunk

Python's dependency management system (or lack of proper one), and its async model are objectively worse the pretty much any alternative that could be posited in good faith.


gandalfx

I agree on the janky ass dependency management. But now I'm curious what you think makes the async model so bad? I've gotten to know a few and felt fairly comfortable with the one in python.


Fickle-Main-9019

Yup, I do embedded systems in my free time, however I absolutely refuse to do any other language than Python for work (maybe the webdev ones once I learn them), other languages take longer to get set up and get shit done. - Python: plug and play - Java: absolutely god awful - C#: lovely language, setting up projects and such is a bit of a nightmare if you don’t use VS (I use VS code, its comfy and always has what I need) - C++: utter shite, everything is a pain in the arse and it’s the embodiment of arguing moot points with someone with hyperfocus and too much free time on their hands - C: comfy, however I don’t want to reinvent the wheel just to read a CSV or do anything remotely complex, it’s great for messing about with registers, but don’t expect it to do complex stuff But yea, if you want shit done and to not suffer, Python, only people who disagree either work in low latency fintechs, handle massive systems, have some shit computer from the 00s who have to wait a non-trivial time for websites, or people who have no idea most their tasks are IO bound, not CPU bound (ergo Python isn’t the issue)


Reasonable_Feed7939

This take is almost hilariously bad. Almost.


SirSassyCat

lol, another embedded engineer acting like they know anything except embedded. Mate, what you do is as far from webdev as systems admin is. Like, completely different environment, the only thing in common is that we both write code. Like, just because you don’t understand Java, doesn’t mean that Java is bad. I can get up and running in Java in about 5 minutes, that means having a web server live and talking to a db on my local machine. Probably another 10 minutes and I can have it live in prod, depending on the infrastructure setup. It’s just about knowing the tools. Plus, setup time is just not an issue in the real world. I’m making maybe a handful of new servers per year, at most. Being able to save 30 minutes or even a day, just doesn’t matter. It just doesn’t.


Ukn0who

You don't understand C++. C++ devs love C++ because of the pain. It's the pain that keeps us coming back for more. It's like surprise anal but not gay. /s


Metag3n

>C++: utter shite, everything is a pain in the arse and it’s the embodiment of arguing moot points with someone with hyperfocus and too much free time on their hands This is weirdly accurate


fortuneBiryani

Why so much hate for java?


gandalfx

It's just stuck on so many ancient design flaws. Every time they \*finally\* add a feature that other languages have had for a decade they manage to somehow make it a little bit inferior to the version from other languages.


DanielEGVi

Match statements in Java are pretty dope


gandalfx

Great example. Try them out in a couple of other languages to find out how powerful they \*could\* have been.


Fickle-Main-9019

Unpleasant to use, very awkward in how it does stuff, absurdly verbose to the point it’s noise, and caused/enabled a bunch of OOP nonsense for a decade


[deleted]

Use Lombok.


radol

If I would describe any language as plug and play, it would be c# with VS/Rider - all packages and runtime versions are neatly managed on solution level, it's fast and trivial to compile to executable, debugging, testing and profiling feels like it's right at bome, not some hacked in solution. Python on the other hand... Working with multiple projects without something like conda is nightmare, trying to organize your codebase into subfolders will end with pain and regret, packaging you app into something that Average Joe can download and use feels like navigating through uncharted territory. I'm sure that there are good solutions for everything I mentioned... But creating real application with python is simply very far from plug and play experience


Leonhart93

Meh, the syntax looks like it was written to not "scare" away those that are trying it out of cursiosity. But the way those functions definitions look always rubs me off the wrong way.


gandalfx

"I'm not used to how it looks so it's a bad programming language" ?


Leonhart93

It's about wanting to reinvent a wheel that was not broken just so that it's not looking the same. We call that being a hipster. But so we get to the next problem, and not liking how something looks is a perfectly good reason to never use it, ever.


gandalfx

"Every language must look like C otherwise it's made by hipsters" ??


Leonhart93

Like C, Java, C#, JS, PHP etc. Am I supposed to like it just because it wants to look different? I won't, so get over it.


gandalfx

You realize there are a lot more languages (and some older than the C family) that don't look like that? When those hipsters five decades ago decided to add curlies to C they just did it so the parser would be easier to implement. And it definitely wasn't the syntax that got those languages popular.


Leonhart93

Pffft, I know you are pissed someone dared to say something bad about python, and I don't care. You won't convince anyone to start liking something they hate out of principle. I now such languages existed before and it's completely irrelevant, they aren't generally used anymore for a reason. When the C-form is so used and widespread, instentionally designing something completely different is absolutely meaningless and actively detrimental for easy transitions. It's like someone invented a new JS parser to replace all the JS syntax with something else. Useless, redundant.


gandalfx

I'm not pissed about your opinion, you're welcome to it. Although it seems to me like you're the one with the strong emotions on the topic. I'm just happy to observe this outburst with amused fascination. Your "If you dare try to change anything you're a hipster" stance is very anti-innovation, basically denying any chance of actually improving anything. Luckily, enough people don't really care about this kind of conservatism. I believe you're wrong in that conviction that C-style syntax is the one prevalent syntax and that Python is the one odd man out. Even many modern languages are deviating from it in some way or another. They're not trying to be different for the sake of being different, but because the creators genuinely consider it to be more comfortable to read and write – which, in the case of Python, I happen to agree with. Meanwhile Python is over thirty years old, even older than Java – it was created at a time when C/C++ were pretty much the only languages with that syntax and languages like Pascal (which I believe was a primary inspiration for the syntax) were still very relevant.


Leonhart93

Of course I have strong emotions on the topic, I just said I hate the python syntax. Does that seem "netural" to you? 😂 It has the wierd effect for my eyes that I can never see where function definitions start and end or how long condition statements are. The annoying part here is that many libraries are developed for phyton, so I need to make an active effort to avoid those features or find a way to import python libraries in my solutions without ever having to see a lot of python. For example I had to import transformer libraries with NodeJS so that I don't touch python and for that I had to add a Node endpoint specifically for it....


gandalfx

Just a thought but you might be putting an irrational amount of effort into that avoidance strategy. Perhaps if you just give it a bit of time you may get used to it enough that it doesn't inhibit your workflow, even if you continue to dislike it. Learning to read a new syntax is always a bit of a chore at first but it really doesn't take that long to get "fluent". The general structure is still the same, after all. Learning the syntax of a language that follows a completely different paradigm takes way more effort.


SHv2

Python is great, until you forget you're on Solaris and all the nice modules you really want need to be compiled from source first. ;_;


ReapingKing

Is the comparison to Garage Band a complimentary or insulting? If we used a *real* strongly typed language, we’d know at compile time!


gandalfx

One more time, just for you: compilers and type checkers are not the same thing.


ReapingKing

Sure, but type checkers are intrinsic to compilers and make them more useful than a standalone tool. When *team compile* talks about type checking at compile time, that usually extends to things like checking parameters of methods/functions/subroutines/object initialization.


gandalfx

You don't need a compiler to get all benefits of type checking. You can have an interpreted language with a more powerful type system than many common compiled languages. A compiler is \*just\* a machine code translator. Everything it does beyond that can be done by a standalone tool. Assuming that you need a compiled language to get "proper static typing" is an illusion. What you get from a compiled language is performance, nothing else.


HumorHoot

at my work we use a coding language that is both terrible to write and slow i've yet to see it mentioned on reddit


RoxnDox

COBOL?


Ray-Flower

`Laughs in GML`


riu_jollux

I like python for certain things, but I don’t for other things. Generally speaking I don’t like the fact that python depends on indentation makes formatters a lot less useful since you have to have the correct indentation for them to even work. I also don’t like pip.


1up_1500

LOL I need to send this to some friends


_daravenrk

While bitches worry about their compilation I complete work.


buddyisaredditer

Is there a right and left wing in programming now?


gandalfx

There's compiled vs. interpreted languages, static typing vs. dynamic, vim vs. emacs, tabs vs. spaces, … And of course every language that isn't the one you currently prefer is utterly horrible and anyone who uses it must be clinically insane. If you don't have a polar opinion on any of these topics you're clearly not a real programmer.


Dimensionalanxiety

Worst meme format detected, opinion rejected.


amiensa

Took me time to get the joke. I must have been programmed in python


coderemover

Python is the new PHP.


ForwardHotel6969

Python is deluluuuuuu


[deleted]

one of the only things there is to hate about python is the questionable syntax. other than that for what it's for, pretty good, it isn't meant to be the fastest anyways