OK, I'm really confused here:
1) what the heck is so special about go all of a sudden? People have been writing and deploying single file executables built with C and ++, and whatever else? forever. (and indeed, it was a big sticking point for me when I introduced python in my organization)
2) Why the sudden interest in this as core a Python issue? I've been using Python for desktop apps, on primarily Windows and the Mac for years -- and had to deal with py2exe, py2app, etc. forever. And it has been a very very common question on the various mailing lists for ages: how do I deploy this? how do I make it easy to install? The answer from the developers of cPython itself has always been that that's a third party problem -- and go look for py2exe and friends to solve it. And that it is a solved-enough problem. The biggest "unsolved" issues are that you get a really big application.
Don't get me wrong -- I've wanted for years for it to be easier to deploy python-based apps as a single thinking for users to easily install and uninstall where they don't need to know it's python -- but what the heck is different now?
3) There was mention of a platform-neutral way to do this. Isn't that simply impossible? The platforms are different in all the ways that matter for this problem: both technical differences, and conventions. Which isn't to say you couldn't have one API to produce a single "thing" executable, so it would look like one solution for multiple platforms to the user. But the end product should be (would have to be) a different beast altogether.
And doesn't PyInstaller already provide that (may it can't do single-file...)
Anyway -- if there really is a new interest in this problem such that people will put some time into, here are some thoughts I've had for ages:
The big one is Separation of concerns: in order to build a single "thing" executable, you need three things:
a) An API to for the developer to specify what they want
b) Figure out what needs to be included -- what extra modules, etc.
c) A way to package it all up: App bundle on the Mac, single file executable on Windows (statically linked? zip file, ???)
That third one -- (c) is inherently platform dependent -- and there "is more than one way to do it" even on one platform. But it sure would be nice if the API between a) b), and c) could be unified so we could mix and match different implementations.
And, of course, if cPython itself could be built in a way that makes step(c) easier/less kludgy great!
-Chris