4 ms·
I think Python definitely has its drawbacks, and it's not fast. The other downsides listed in that article (whitespace, variable scoping, lambdas, mobile, etc.)
by dmuller 5y ago
I think Python definitely has its drawbacks, and it's not fast. The other downsides listed in that article (whitespace, variable scoping, lambdas, mobile, etc.) may also be get in your way sometimes, but seems doubtful that they are language killers...I agree the argument presented in that article is weak.
I'm biased, but I think Python as your daily driver language is a great choice.
- okareaman 5y agoThanks. If I need speed I can always interface to C. I'm still going to learn a bit of Julia today to see what it's about.
- nerdponx 5y agoPyPy and GraalPython also can offer significant speedups in certain workloads.
- gota 5y agoPreamble: I like Python - it seems to fit my mental models well, and I'm productive writing in it. However, only just recently I tried to develop a more-than-trivial program to deploy as an executable for my Windows-using friends. This may sound naive, but I'd never thought about how hard it is, especially when mostly everything else in Python is well-tooled, well-documented, and works. If you check my post history you'll see I've been following this subject lately... in the hopes I won't have to re-write my stuff in C# or something. I got it done, but am thoroughly underwhelmed by the experience and the resulting size of the executable (due to cascading dependencies that I'd really rather not pick apart). So here's the question - what's your take on how to package a Python program as an executable (wherein package does not mean Python package, but generate a click-and-run Windows executable)? Anything on that in the book? I can't tell from the 'Contents' list, but it seems not, right? Congrats on the book. I'll take some time to go over the Extracts (and thanks for those, too!)
- nsomaru 5y agoNot OP, but I’ve had good success with pyinstaller and nuitka.
- muunbo 5y ago'Nuitka' might be what you're looking for
- gota 5y agoHey, I did try it - it was how I got it to work at all. Relatively simpler than the alternatives, IMHO, but still suffering from the large executable size due to dependency cascades I'm at peace, now, with having to prune and bound my imports to account for that. But it is a negative thing that I have to change my code from what it'd normally be to make it remotely passable... This is definitely a relatively smalln and maybe rare, but still a disadvantage of Python (that, in retrospect, I should've obviously have anticipated, so that's on me)
- mumblemumble 5y agoPerhaps https://pypi.org/project/treeshaker/ https://pypi.org/project/treeshaker/ can help with that?
- gota 5y agoI was not aware of this, thanks a lot! Will definitely look into it
- dmuller 5y agoHey - thanks for checking the book out. Yeah, you are correct---the book does not cover packaging a Python program as a click and run style executable. It's definitely a tricky problem. (Depending on the audience for the tools (e.g. if it's developers), one potential option might be to package your code in a Docker image and distribute it that way---although that's not without its own drawbacks.) Other commenters have posted potential tools to check out too.
- roywashere 5y agoAlso, the article states: > Python is slow. Like, really slow. On average, you’ll need about 2–10 times longer to complete a task with Python than with any other language. But that is real nonsense. It is comparable with Ruby or Perl or other dynamic languages.