Skip to content

Plans for fully functional MacOS and Windows implementation for compatibility #102

Open
@vsivsi

Description

@vsivsi

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:

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

  2. 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 in gomacro 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:

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

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions