fsprojects / IfSharp

F# for Jupyter Notebooks
Other
440 stars 71 forks source link

Proposal : Making it a dotnet tool #228

Open ykafia opened 5 years ago

ykafia commented 5 years ago

It would be interesting to add IfSharp as a dotnet tool to ease the installation. I'm not sure if it would be possible but here is the doc for that

cgravill commented 5 years ago

It's definitely possible, some of the Microsoft Quantum folks have another approach with Jupyter here where they do exactly what you're suggestion: https://github.com/Microsoft/jupyter-core/

One of the considerations is how to handle the Python requirement. One approach, instead of a dotnet tool is to install directly into a Python package manager. The other route is the Julia notebook system https://github.com/JuliaLang/IJulia.jl will will install a version of Python for you.

So lots of options but I don't have a good feel for what's the most convenient.

ykafia commented 5 years ago

I will ask the microsoft Quantum devs if F# is in their project. From reading some of their There's a C# Kernel made by the SciSharp people who's considered to be added in their repo.

Question : How about chocolatey's install for python, using parameters to install a python distro + jupyter if not already installed?

cgravill commented 5 years ago

It's not yet. I've spoken with @cgranade (+others) and there's definitely some overlap. I've a background interest in trying to spin up an .NET Core F# kernel within the system which would be nice to see. They have a great tutorial here https://github.com/microsoft/jupyter-core/blob/master/tutorial.md but I've not had the spare time with all the other hobby coding! :-)

There is still the question of what to do about 3rd party bits e.g. plotting. There's an upcoming syntax improvement to F# #r statements around 3rd party which would make it much better.

cgravill commented 4 years ago

As another data point on thisthe new general .NET Kernel: https://www.hanselman.com/blog/AnnouncingNETJupyterNotebooks.aspx installs as a dotnet tool.

When that gains enough features it might make sense to migrate over there.