-
Notifications
You must be signed in to change notification settings - Fork 263
Plans for fully functional MacOS and Windows implementation for compatibility #102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi @vsivsi, and sorry for the delay here as I was a bit sick with the flu. Great summary of the current state of things here, and I totally agree with most of your conclusions. Regarding your specific questions:
I also agree that these things have held back Go usage in Jupyter for a while. I think we have a better foundation right now, but I also respect your opinion that maybe further marketing around Go in Jupyter should wait for these points to catch up. Hopefully that will be soon. |
Hi all, I am gomacro author, and I would like to add some considerations:
|
Hi again, since Go is a purely compiled language and does not have a native REPL, nor an official or de-facto standard interpreter or JIT, the task that gophernotes tries to accomplish is significantly more difficult than for other languages with a native REPL or an official interpreter, JIT or similar: I am honored that gophernotes authors chose my gomacro as the Go interpreter to use, yet I must point out that gomacro is a one-person project, and is not fully complete. The reason is simple: while creating a toy Go REPL is easy - just spawn a "go run" each time - creating a real Go REPL with 100% language support is hard, and some features are very hard to implement, especially if you want interpreted code to freely interact with compiled code. The only project I know that claims a Go REPL with almost 100% language coverage is llgoi: https://groups.google.com/forum/#!msg/golang-nuts/tBzpDtzNXq8/nUZDKx7J3fIJ |
I have great respect for what @cosmos72 has achieved with gomacro. Like many, sadly the licensing was a showstopper for my use. I wish gomacro was BSD or MIT licensed. I recently created a Go interpreter,
|
As I wrote privately to @glycerine, sorry for not mentioning While waiting for fixes to plugin.Open() on Mac OS X, I added a workaround that, while cumbersome, allows If you think it might be useful for gophernote users, consider pulling the most recent gomacro. Note: gophernotes will need to change at runtime the global variable |
Update:
|
Update: 3rd party library support for Mac seems to work with Go 1.10.3 |
Update: 3rd party library support for Mac seems still unreliable (sometimes it works, sometimes crashes) with Go 1.10.2 and 1.10.3 Please test, possibly with both Go 1.10.2 and 1.10.3, and send feedback :) |
Mistery solved: on Mac OS X, plugin requires Go 1.10.2+ and to never run |
Update:
|
Hi @dwhitena, I'm putting the finishing touches on my review of your JOSS submission, and everything is looking pretty good.
I do have a couple more general questions regarding your forward-looking plans for the project.
I didn't have any trouble installing or using the software through Jupyter Notebook or Nteract, which is great. But as a developer/scientist who uses MacOS as my desktop OS and uses Golang for systems level work, but not yet too much for data analysis, visualization, etc, I was excited to find this project a few years ago and watch it develop over that time.
It appears that you have done great work here in making it work as well as it does, but I'm left with the sense that this is still pretty unfinished from the perspective of someone who's used Jupyter/Nteract with Python, R, Julia and/or Node.js kernels. There are two main areas of concern:
Thanks for your recent response to my ping on the old issue regarding embedded image outputs for visualizations. For someone coming from one of the other languages above, using Jupyter with Golang is going to seem pretty impoverished if you can't easily and interactively plot outputs of the analyses you are attempting. It's a huge part of the Jupyter Notebook experience that is just completely lacking here.
The limitations imposed by
gomacro
, most specifically the restrictions for MacOS and Windows precluding the use of "non-core" third party libraries. I'm sure that I don't need to tell you that mixing in "non-standard" libraries from a variety of sources is a huge part of coding in Jupyter Notebooks. Without this capability, the MacOS and Windows support feels more like a "toy" environment rather than a way that users can get real work done. Getting around this by hosting the Linux kernel using Docker feels like a band-aid solution at best. I'm also concerned about the lack of proper support for Interfaces ingomacro
as that is such a core feature of the Go language.I think the reality is that much of your target audience for Gophernotes does not use a Linux Desktop, and the current limitations are going to seem highly restrictive to the two main constituencies of potential users:
Existing Jupyter users wanting to try out Golang are going to be disappointed by the lack of visualizations and support for 3rd party libraries (in their likely desktop OS)
Existing Golang programmers are also going to be disappointed by the lack of support for 3rd party libraries, as well as some of the other language limitations imposed by
gomacro
, and will probably find Jupyter less exciting without image outputs as well.So I guess my question is, do you have plans or a roadmap for addressing these issues?
I'm not saying that this project isn't useful without fixing these things, I'm just concerned that it is way less useful than it might be (and in comparison with Python, Julia, R, and Node.js in the same environment.) Given that, I think it's important not to oversell the capabilities of this package until these concerns have been addressed, for fear of turning people off to using Golang in this way. I think we often get one shot to sell busy/influential people on something like this, and if they try it and it doesn't seem very useful, they're likely to (perhaps unfairly) write it off in the future.
Anyway, I'd like to hear your thoughts about this, because I really would like to see Golang succeed in this area, because in so many ways it is clearly superior to the other languages I've mentioned above.
The text was updated successfully, but these errors were encountered: