46 comments

[ 116 ms ] story [ 1333 ms ] thread
How does this compare to feature-wise to jupyter (other than being a native app)?
It seems that its just running the Jupyter notebook and loading it in a "WebView"
I wish they didn't bundle a python installation with it. I'd rather just try the frontend without potentially messing up my python installation.
I think it's specifically meant NOT to interfere with your existing Python installation. Says so under 'Standalone'.
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).

Anaconda/conda has made the scipy and numpy install process pretty pleasant on OSX. 'conda install scipy' just works the way you would expect.

http://conda.pydata.org/miniconda.html

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.

Very, very glad Anaconda exists.

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.)

- Disclaimer: haven't tried Conda.

>I'd rather just try the frontend without potentially messing up my python installation.

That's exactly why the did bundle a python installation with it -- so it wont mess or be restricted by your system Python.

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.
Yes, I'm working on a good way to do this, this is high priority.
The bundled Python is contained within the .app, it does not touch any other part of the system.
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.
Why is that?
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.
Look under Help > Keyboard shortcuts. Not many but it helps.
Simply stuff like changes all () to [] or jump to definitions aren't really supported in an automated fashion.
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.
I use ipython in emacs with elpy.
Sounds Awesome! Do you have a resource for setting that up?
Hmm.. There is already another project with the same pronunciation. https://pypi.python.org/pypi/PyNLPl/
Dunno that anyone is going to get an NLP library confused with an OSX frontend to Jupyter... there's not a lot of overlap. :-)

(Admittedly, you could use PyNLPI within Pineapple, but again, distinct products)

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 :-)
Hey vladsanchez: not sure if you'll see this, but your posts appear to have been shadowbanned for 1300 days... :(

(in reference to this: https://news.ycombinator.com/item?id=10235320, and probably caused by this: https://news.ycombinator.com/item?id=3356399)

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.
Looks like your posts have been un-deaded! :-)
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
Also looks to be Linux compatible (wxWidgets backend), which is sweet.
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.

Thanks, terrific tool! The ability to just drop a dmg is invaluable when teaching.

Compatibility with more prebuilt binaries would be great indeed (tried to install psycopg2 but it doesn't work)

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
Swift also allows REPL for documentation.
Other languages either

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.

Well, Mathematica, the commercial software environment/language has the same kind of thing.

And iPython has been made language agnostic, to work with Haskell, and IIRC, JS.

Nice! Would be good if it was on homebrew.
The GUI is nice, but it does not support an external Python installation. Meaning no conda, limted support for virualenvs etc.