Hacker News new | comments | show | ask | jobs | submit login

Executable documents are powerful tools for teaching and learning. Focus in this area will pay off all across the Python community.

Executable documents are powerful tools for teaching and learning.

These already exist, though, and the ecosystem already has a lot of support and momentum behind it: javascript within the browser.

Would you explain what some of the benefits are in comparison to this? I'm an outsider so I don't have a very firm understanding of what the implications are.

I'm very optimistic about iPython as the solution for "executable documents", much so over Javascript by itself (despite all of Bret Victor's amazing efforts).

There is a development branch of iPython by Brian Granger that emits JSON when you display a python object in the notebook. You can easily create handlers that display any Python object using javascript. That means D3.js or whatever HTML5/WebGL app you can throw in there becomes the front-end to a very powerful numerical computation back-end. Check out this demonstration I help code, http://www.flickr.com/photos/47156828@N06/8183294725

Javascript isn't quite what people mean by 'executable documents' - this is about an interface which mixes visible code blocks and results with rich text.

You could certainly base something like that around Javascript, and it would have certain advantages. But the Python world has a lot invested in scientific computing - Numpy, Scipy, and dozens of packages built on top of them. It's also got good integration with other languages, from FORTRAN to R. This sort of scientific computing is where we think the notebook really shines.

As other replies have already eluded, this isn't really comparable to JavaScript. Also good luck crunching huge datasets on clusters from within your browser with a pure JavaSCript implementation.

Python has a tons of scientific libraries and scientific who know how to use them.

And for doing harm. (re macro viruses for MS Office).

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact