Skip to content
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

generate output for notebook environments (maybe wrap/convert to html svg tag objects)? #159

Open
bdklahn opened this issue Mar 14, 2021 · 5 comments

Comments

@bdklahn
Copy link

bdklahn commented Mar 14, 2021

Thanks for maintaining/doing this!
My 11-year-old daughter was recently introduced to Turtle in her 6th grade CS course. (I'd be happy to share her cute code for a turtle hatching out of an egg, if you want)
The instructor would share examples, and they would do assignments, using Trinket. That seems to be a nice simple interface to write/display/share code. But I was a little annoyed that they only recently allowed Python3 for free (If anyone, kids should be starting with modern/future versions of tools. They don't have legacy code to maintain.) And Trinket seems/feels a little limited/old.
I got to thinking that there are better open/free interfaces/services for experimenting with and sharing Python code. At work, colleagues and I use Jupyter Lab and know/use Google Colab. Colab would be a nice way for kids to experiment and save/annotate multiple coding tries/parts, etc.I found that Colab is an app which seems to be enabled for use in her school (Google Classroom-enabled) account.

But I found that the standard (Python3.7 tkinter-based?) Turtle didn't work there, due it not knowing/having access to a/the regular DISPLAY, etc.
I understand that/why. So I found the following package, for doing a similar Turtle thing in Colab:
https://github.com/tolgaatam/ColabTurtle
I've been in contact with that developer, via GitHub issues. It seems to me he is/was on the right track by using html svg tags, when in a notebook environment (since Turtle seems to do very simple shapes, etc.). But it would be nice if, for the things he has implemented, it would match this/the traditional API. He is now thinking to return and implement a couple more bits of the API.
But I was wondering if it might be easier to match this API by directly using this API. One thought was to fork this, and see if there were any decorator functions he could add/create to wrap some low-level display ones here.
I looked around a little here, for such things. But I wonder now if it would/could be easier to use any methods already available in/with wx (wx.html???). I am not familiar with wx. Do you have any thoughts/ideas?

@cool-RR
Copy link
Member

cool-RR commented Mar 14, 2021

Hi Brian. It's been many years since I've done any work on PythonTurtle. I wouldn't really try to combine anything from it in a web-based solution. There isn't really any brilliant code here, just a few hacks to get the GUI working right, and solving ugly problems that are typical to desktop programs.

@bdklahn
Copy link
Author

bdklahn commented Mar 14, 2021

Ah. Thanks for the reply. Good to know.
So maybe, if that other developer is motivated/able, it could be a good time to do a little bit of a modern Turtle "reboot".
I still like the idea of enabling (some/more) API compatibility with the traditional Turtle for simplicity/familiarity, and as en hommage. :-)

Thanks again!

@bittner
Copy link
Member

bittner commented Mar 14, 2021

Hi there @bdklahn,

I would be open for supporting a PythonTurtle revival. We already do have invested quite a few efforts to make this project more ready for the future. This was for a reason. And while for @cool-RR this project is "over", I think it still has potential for a bright(er) future.

There are enough ideas in our issue tracker to improve PythonTurtle, and at least one of them is already about saving and loading Python code (issue #64, PR #142). Unfortunately, the latter was abandoned by the contributor short before the finish line. Someone needs to pick this work up.

So, yes, let's do something about it! I'd be happy to see a save/load feature to/from various formats. In the past we applied for a grant at the PSF (#130) but were turned down. With a more convincing roadmap and more active members maybe future endeavors like that will have a better chance.

@cool-RR
Copy link
Member

cool-RR commented Mar 14, 2021

Any effort to revive this project would be welcome.

@bdklahn
Copy link
Author

bdklahn commented Apr 8, 2021

Hi @bittner,
Such efforts/proposals do seem like things appropriate/useful for the foundation to fund.

Personally, I would just like it if Turtle was usable in a Jupyter Lab/Notebook. It doesn't really make sense to include Turtle as part of an introduction to Python for a new user trying things out in a notebook, if it doesn't even render a drawing there.

With all the web engine type ways of rendering/displaying graphics/GUIs, etc. (think notebooks, atom, VS Code, web apps, etc.), it seems html svg, etc., might be an appropriate modern default/standard to natively support.

I'm pretty heavily buried in my own software work (including COVID-19 government agency decision support).

But I wonder if some proposal might get funded with something like a collaboration with people interested/available here, and someone at:
https://github.com/tolgaatam/ColabTurtle

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants