I am pretty sure they are using virutalenv or something similar so that the python version that comes with it is contained and doesn't overwrite or interfere with your system python.
Given how IPython Notebook has been adopted, bundling is basically the only option. Its popularity is highest in the scientific-Python world, which has been Windows-focused because of the availability and ease-of-use of pre-built single-download stacks of Python plus all the relevant libraries (numpy, scipy, etc.).
Giving those folks the ability to use Macs too is a huge deal (and "just install things yourself" isn't really an option -- it's gotten better, but numpy and scipy have historically been the very devil to manually install on any platform other than Windows).
I would even go a step further and say that probably more than 50% of scientists have a Mac laptop as their personal computer at this point. In DoD, I can't install anything in my office computer. So if I hadn't had iPython up and running on my mac, there's no way I'd have gotten to the point (over years) of going to present a project to the HPC guys on Monday.
I don't think that was a reason for scientists to use windows. It maybe allowed those used to windows to keep using it. Or maybe you only mean it was reason to choose Windows over Mac?
Because on Linux, installing python with libraries has always been trivially automatic.
My windows experiences have always been hunting the net for hopefully compatible installers from 7 different sources and hope it won't mess my python installation... And it always ends up constraining the version I can use.
- Python(x,y) was a step forward but stagnated on python 2.
- Sagemath, which bundles a huge collection of scientific software gave up on installing on Windows. To this day, their answer is a virtualbox linux image. (It's also been a strong reason for developing SageMath Cloud, so people don't need to install Sage at all.)
Would it be possible to have the option of using an existing python installation? I have project-specific conda environments, so it would be great if I could set which Python should be used.
Does it support any text editing features? Compared to anybody's favorite dedicated text editor (vim/emacs/sublime/atom/notepad++) editing in jupyther is quite tedious.
because there are no key bindings aimed at the text editing areas and I can't even drop into vimium because there are so many potential key binding conflicts.
Completely agree. I can't understand how professional developers are able to give up their text editors for iPython. Don't get me wrong, I love iPython/jupyter, but the slick interface comes with huge productivity drops due to the lack of a real text editor.
This looks like an absolutely terrific tool for people learning programming, especially those with numerical interests. I'd also be extremely excited to use it myself.
Are there plans for Pineapple to work with multiple language backends (eg; IJulia, IHaskell, IElixir, etc)? Especially with one-click installs for the languages, it would be such a wonderful way to play around with new languages without having to muck about with installations.
Since multiple language backends are exactly the plan for Jupyter, the project that this wraps in the GUI, I suspect that it will be doable! If we're lucky, we might even get official support someday :-)
Wow! I'm quite surprised by this. I must have ruffled someone with DemiGod status at HN. I'm a huge HN fan and mostly silent observant, and I seldom comment on anything. Notice how old the second comment is (1300+ days ~= over 3.5 yrs)! It's absurd, but I have no control about it. I'd be surprised if my this comment gets even posted. Thanks for the info scott.
Very cool. I don't have a Mac to test it out on, but is there an easy way (integrated pip, conda) to install additional packages? IMO a graphical interface for finding and installing packages would add a huge amount of value. Also here's a link to the source repo: https://github.com/nwhitehead/pineapple
Yes, there is a way to install more packages. Inside the notebook you can do "import pineapple", then "%require NAME" which is just like doing "pip install NAME". There is also a provided pip shell script that should work but it's buried deep inside the Pineapple.app directory and not well tested.
These methods work for pure Python packages. If the package needs compiling then there are more caveats and it may or may not work depending on your system. I'm looking into including conda directly to increase compatibility with prebuilt binaries and make package management easier.
IPython seems really uniquely Python, does a similar “live documentation” tool exist for other languages? I get that Python's usage/culture produces amazing tools like this, but is there anything unique about the language that stops it being ported to JS/Ruby/PHP/C# et al?
The IPython team are doing just that, and have renamed the IPython project "Jupyter", refactoring all the Python-specific code away into another repository and allowing it to be ported to many other languages: currently over 40 of them. For obvious reasons, interpreted languages are much easier than mandatorily pre-compiled ones... http://jupyter.org
Check out Escherpad! It is a real-time collaborative iPython notebook client that just came out today. It somehow didn't make it to the front page at all.
Escherpad support Python, Node.js, and has setup tutorials that allows you to setup a npm packages locally.
46 comments
[ 116 ms ] story [ 1333 ms ] threadGiving those folks the ability to use Macs too is a huge deal (and "just install things yourself" isn't really an option -- it's gotten better, but numpy and scipy have historically been the very devil to manually install on any platform other than Windows).
http://conda.pydata.org/miniconda.html
Very, very glad Anaconda exists.
Because on Linux, installing python with libraries has always been trivially automatic. My windows experiences have always been hunting the net for hopefully compatible installers from 7 different sources and hope it won't mess my python installation... And it always ends up constraining the version I can use.
- Python(x,y) was a step forward but stagnated on python 2.
- Sagemath, which bundles a huge collection of scientific software gave up on installing on Windows. To this day, their answer is a virtualbox linux image. (It's also been a strong reason for developing SageMath Cloud, so people don't need to install Sage at all.)
- Disclaimer: haven't tried Conda.
That's exactly why the did bundle a python installation with it -- so it wont mess or be restricted by your system Python.
(Admittedly, you could use PyNLPI within Pineapple, but again, distinct products)
Are there plans for Pineapple to work with multiple language backends (eg; IJulia, IHaskell, IElixir, etc)? Especially with one-click installs for the languages, it would be such a wonderful way to play around with new languages without having to muck about with installations.
(in reference to this: https://news.ycombinator.com/item?id=10235320, and probably caused by this: https://news.ycombinator.com/item?id=3356399)
These methods work for pure Python packages. If the package needs compiling then there are more caveats and it may or may not work depending on your system. I'm looking into including conda directly to increase compatibility with prebuilt binaries and make package management easier.
Compatibility with more prebuilt binaries would be great indeed (tried to install psycopg2 but it doesn't work)
https://github.com/dpinney/iPythonNotebookServer
1. requires compiling/linking, which is unsuitable for trial-and-error, live REPL like dynamic languages.
2. lack of scientific libraries.
3. lack of Web/networking capabilities.
4. lack of graphing libraries.
So consider all these factors together, Python stands out.
We built a beautiful real-time collaborative client for it and just launched private beta.
http://lesquare.escherpad.com/@yang.ge/A-Collaborative-Real-...
And iPython has been made language agnostic, to work with Haskell, and IIRC, JS.
Escherpad support Python, Node.js, and has setup tutorials that allows you to setup a npm packages locally.
http://lesquare.escherpad.com/@yang.ge/A-Collaborative-Real-...