I know people joke around about this a lot. But I was blown away by a recent switch to I did from using cv2 with python to using cv2 with C++.
I had literally hundreds of thousands of images to analyze for a dataset. My python script would have taken 12 hours.
I ported it to C++ and it literally destroyed it in 20 minutes.
I’m sure I was doing something that really wasn’t optimized well for python. I know somewhere in the backend it probably was using a completely different library with multi thread optimization. Or maybe turbojpg is just garbage in python. I’m still not even sure what the bottleneck was. I don’t know enough to really explain why.
But holy shit. I never had that much of a performance difference in such a simple task.
Was very impressed.
If you had let me write the C++ code, I could have literally destroyed your dataset in a couple of seconds.
Exactly what this comic is saying. C++ can handle in 20 minutes what takes python 12 hours, but something gets destroyed.
But make sure to bill for the full 12 hours.
Was a personal project. But absolutely. Half my job is trying to explain why something is taking so long when in reality I actually it’s already done I just don’t want to do nothing for the next few days.
Managers never really know. And other engineers don’t care. It’s all about balancing expectations.
These comics are always fun to read because as an R user, I only ever hear about how fast python is.
Not having true vectorization and having to regularly code that into Python helps even the odds.
This has got to be the best, most legitimately funny programmer/computer joke I’ve seen in years.
I thought that too! :D
Python’s core implementation is in C though. It’s just a fancy way to call C libraries.
so?
You could say this about a lot of things…
It’s interesting that, with Python, the reference implementation is the implementation — yeah there’s Jython but really, Python means both the language and a particular interpreter.
Many compiled languages aren’t this way at all — C compilers come from Intel, Microsoft, GNU, LLVM, among others. And even some scripting languages have this diversity — there are multiple JavaScript implementations, for example, and JS is…weird, yes, but afaik can be faster than Python in many cases.
I don’t know what my point is exactly, but Python a) is sloooow, and b) doesn’t really have competition of interpreters. Which is interesting, at least, to me.
Pypy is often considered the “best” alternative Python implementation. In some cases it can be much faster. But it’s often one or two versions behind, and not 100% compatible, and of course it doesn’t work with native Cpython extensions.
alternative joke
C++: “Hey, what’s your name?”
Python: *grabs C++* “what is my name?”please explain I want to laugh
Pythons weak typing means it never knows what is what. It’s up to the programmer to not screw it up.
Python is strongly typed. I get your point since it is dynamically typed, but still strongly.
I think it’s more that a ton of popular python libraries (things like pandas, tensor, etc) are actually built in C, so python is just C wearing a mask
Not just libraries, the entire language itself is actually C under the hood
you mean __name__?
__main__
JavaScript fits too
NaN
Javascript’s still arriving to the meeting
Javascript took the wrong turn and ended up in [object Object]
It had to download 300 of it’s buddies first
nodejs hasnt started yet
It’s waiting for the “light weight” node development server to start as well.
After that it’s waiting for the call to open a browser to go through.
Then it’s waiting for Google telemetry to finish phoning home before the page can load.