
Nuitka Progress in 2015 – Python Compiler - rachbelaid
http://nuitka.net/posts/nuitka-progress-winter-2015.html
======
objectified
IMHO, this is a _very_ important project as it makes up for one of the biggest
shortcomings in the Python ecosystem - distribution of software. Distribution
is clearly one of the reasons that Go is so popular. It would be great if we
could take advantage of Python as a language and Python as an ecosystem while
still being able to deploy as if it was a walk in the park.

~~~
rwmj
I find the way software is packaged in Go to be a terrible regression, but I'm
more interested in why you think pip and venv's don't solve the problem for
Python already?

Edit: I see from your reply that we're talking at cross purposes. I thought
you meant source distribution, but you mean binary distribution to end users
or deployment to production systems, and in that case I agree with you.

~~~
objectified
Being able to ship a self contained binary of your application is a very
powerful concept, on which many seem to agree.

The way I see it, pip and virtualenv are not practical for deployment or
distribution. You shouldn't have to download and install things during a
production deployment. I even created a tool
([https://github.com/objectified/vdist](https://github.com/objectified/vdist))
to mitigate this problem, but it will always be a hack when doing it this way.

~~~
_yy
Remember that critical Go security update?

Usual procedure - update the shared library, restart affected services. Go -
recompile everything.

~~~
zwischenzug
Which only needs to happen once.

~~~
_yy
Yes but still. If you have a procedure in place to recompile and redeploy
everything, you could just deploy the libraries as well.

~~~
protomyth
Plus, the system admin doesn't just have to wait on the new security-patched
library to be ready, they have to wait for everyone who used Go to recompile
and distribute their programs.

------
_yy
> The stable release has full support for Python 3.5, including the new async
> and await functions. So recent releases can pronounce it as fully supported
> which was quite a feat.

Wow. That is amazing! Pyston only supports Python 2 and PyPy is working on it.

Nuitka looks very promising.

------
wibr
This looks very similar to Cython, which can also compile .py files without
modification and is more mature at the moment. It seems that Nuitka wants to
do a few things differently, though. The biggest difference is probably that
Nuitka wants to use type inference + hints instead of explicit declarations,
which make Cython code incompatible with CPython but give you more control and
C interoperability.

Edit: Thanks, no more interference!

~~~
qb45
I've never heard about type _inTERference_ , but I'm sure that if something
like that existed, it would have little to do with type _inference_ which you
probably meant :)

interference - obstruction, collision

inference - deduction, derivation

~~~
mikeash
I imagine that type interference might be what an advocate of dynamically
typed languages sees in statically typed languages.

------
scarygliders
It's been great watching Nuitka progress over the past couple of years.

I suggested the tl;dr section to Kay in the Overview ;)

I've also donated to the guy. I'd help out in the development, but to be
honest a lot of what he's doing goes way over my head and I don't have the
time to sit down and try to understand it all.

I encourage others better than me to help in Nuitka's development :)

------
michaelmior
> SSA (Single State Assignment Form)

Is this something different from static single assignment? I'm assuming not,
but I've never heard SSA expanded in this form.

~~~
UniQP
You are right, this should be static single assignment.

------
pcx
This looks pretty cool, know of any production-grade software using it? I
remember reading about something like this being used for Docker Compose,
can't recollect what exactly that was.

------
gtrubetskoy
It's fantastic to see someone taking on the hard problems, things that take
years to solve, especially if you're on your own. This is the essence of Open
Source - take your time to do something right. Great stuff, good luck with it,
we need more grand undertakings like this!

(This comment is mainly based on this talk:
[https://www.youtube.com/watch?v=a8RRbT4BTEw](https://www.youtube.com/watch?v=a8RRbT4BTEw))

------
entrean
I believe this project is filling the single largest gap that Python has for
development of widely-distributed desktop applications. This is pure
awesomeness.

------
truncate
Looking at their future plan, can we say they are aiming to build something
like RPython, but instead of a subset of Python support full Python language?

------
amelius
Trying to understand this project. Is this more than a python compiler?

Edit: Ok, now I see that the "Overview" button is hidden on mobile.

~~~
mseebach
So, from my reading of the "Overview" page, it compiles Python to C++ and then
use native types as much as possible to make things run really fast.

[http://nuitka.net/pages/overview.html](http://nuitka.net/pages/overview.html)

------
disillusioned1
The Requirements section of the user manual says that in addition to a C++
compiler, you need Python2 at compile time even if you're using Python3, due
to a requirement of the Scons tool.

------
AlphaSite
I wonder how the performance of this compares to ZiPy.

------
ptype
Does anyone know if this works with numpy?

~~~
witty_username
It works with numpy. (I tried it and it seems to be 100% compatible, I haven't
noticed any differences)

