<p dir="ltr"><br>
</p>
<p dir="ltr"></p>
<p dir="ltr">On Thu, May 28, 2015, 12:14 Barry Warsaw <<a href="mailto:barry@python.org">barry@python.org</a>> wrote:</p>
<blockquote><p dir="ltr">Go seems to be popular where I work.  It is replacing Python in a number of<br>
places, although Python (and especially Python 3) is still a very important<br>
part of our language toolbox.</p>
<p dir="ltr">There are several reasons why Go is gaining popularity.  Single-file<br>
executables is definitely a reason; it makes deployment very easy, even if it<br>
increases the maintenance burden (e.g. without shared libraries, you have<br>
multiple copies of things so when a security fix is required for one of those<br>
things you have to recompile the world).</p>
<p dir="ltr">Start up times and memory footprint are also factors.  Probably not much to be<br>
done about the latter, but perhaps PEP 432 can lead to improvements in the<br>
former.  (Hey Nick, I'm guessing you'll want to bump that one back to 3.6.)</p>
<p dir="ltr">Certainly better support for multi-cores comes up a lot.  It should be a SMoE<br>
to just get rid of the GIL once and for all <wink>.</p>
<p dir="ltr">One thing I've seen more than once is that new development happens in Python<br>
until the problem is understood, then the code is ported to Go.  Python's<br>
short path from idea to working code, along with its ability to quickly morph<br>
as requirements and understanding changes, its batteries included philosophy,<br>
and its "fits-your-brain" consistency are its biggest strengths!</p>
<p dir="ltr">On May 28, 2015, at 10:37 AM, Donald Stufft wrote:</p>
<p dir="ltr">>I think docker is a pretty crummy answer to Go’s static binaries. What I would<br>
>love is for Python to get:<br>
><br>
>* The ability to import .so modules via zipzimport (ideally without a<br>
>temporary   directory, but that might require newer APIs from libc and such).</p>
<p dir="ltr">+1 - Thomas Wouters mentioned at the language summit some work being done on<br>
glibc to add dlopen_from_memory() (sp?) which would allow for loading .so<br>
files directly from a zip.  Not sure what the status is of that, but it would<br>
be a great addition.</p>
<p dir="ltr">>* The ability to create a “static” Python that links everything it needs into<br>
>the binary to do a zipimport of everything else (including the stdlib).</p>
<p dir="ltr">+1</p>
<p dir="ltr">>*The ability to execute a zipfile that has been concat onto the end of the  <br>
>Python binary.</p>
<p dir="ltr">+1</p>
<p dir="ltr">>I think that if we get all of that, we could easily create a single file<br>
>executable with real, native support from Python by simply compiling Python<br>
>in that static mode and then appending a zip file containing the standard<br>
>library and any other distributions we need to the end of it.<br>
><br>
>We’d probably want some more quality of life improvements around accessing<br>
>resources from within that zip file as well, but that can be done as a<br>
>library easier than the above three things can.</p>
<p dir="ltr">E.g. you really should be using the pkg_resources APIs for loading resources<br>
from your packages, otherwise you're gonna have problems with zip<br>
executables.  We've talked before about adopting some of these APIs into<br>
Python's stdlib.  pkgutil is a start, and the higher level APIs from<br>
pkg_resources should probably go there.<br>
</p>
</blockquote>
<p dir="ltr"></p>
<p dir="ltr">Donald Stuff proposed importlib.resources a little while back to handle the storage-agnostic api dor reading data and I have been thinking about it for years. I plan to make it happen in Python 3.6.</p>
<p dir="ltr">-brett<br>
</p>
<blockquote><p dir="ltr"><br>
Cheers,<br>
-Barry</p>
<p dir="ltr">_______________________________________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev">https://mail.python.org/mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/brett%40python.org">https://mail.python.org/mailman/options/python-dev/brett%40python.org</a><br>
</p>
</blockquote>
<p dir="ltr"><br>
</p>