On Sun, Feb 1, 2015 at 7:55 AM, Volker Braun <vbraun.n...@gmail.com> wrote: > I wrote a basic Python + GTK Gui a while ago > https://github.com/vbraun/notebook. IMHO Gtk is more suitable because Python > is a first-class supported language, whereas Qt is C++ with a handful of > competing Python bindings of various levels of incompleteness. But that > isn't even relevent at this point.
Is GTK "cross platform"? That's a core requirement... http://stackoverflow.com/questions/14079909/is-gtk-3-x-a-real-cross-platform-solution I would say that very good Windows support for a GUI would be a bare minimum requirement. Even if Sage doesn't run natively under MS Windows, a GUI could, with the Sage process running in a VM and communication over a local network connection (or a remote cloud service like with the native Sage android/iphone apps). > > What I took away from the exercise is that we first should write a reliable > way to call Sage as a library. And asyncronously, in a separate > process/container/vm, with support for interactive widgets. With a > documented and stable protocol, and ideally client libraries in more than > one language. This is really the basis of a GUI and we need a good solution > there first before we should think about writing another GUI. Right now > every UI does that as an afterthought and in various sucky ways. You're right that this is an important problem, but I'm not convinced that *every* UI does it as an afterthought. This is the first thing both IPython and SageMathCloud already do very much not as an afterthought -- they make it so Python is called as a library asynchronously in a separate process. For example, that's what this code [1] does for SMC, and it's kind of the main point of the ZMQ-based architecture of IPython to solve this problem (which was key in them moving forward past their command-line only UI years ago). > Part of it > is that graphics (in particular 3d plots) are a mess with various SageNB > crap hardcoded in the Sage library, which is what I'm trying to address at > #17234 in my negative spare time.. Totally agree. With SMC 3d plotting, I just wrote everything completely outside the sage library [2] and 100% ignore anything involving sagenb directly in the library. [1] https://github.com/sagemath/cloud/blob/master/sage_server.py [2] https://github.com/sagemath/cloud/blob/master/graphics.py > > > On Sunday, February 1, 2015 at 10:40:10 AM UTC-5, William wrote: >> >> On Sun, Feb 1, 2015 at 7:00 AM, Volker Braun <vbrau...@gmail.com> wrote: >> > IMHO that is out of scope for a GSoC project. Maybe somebody with a lot >> > of >> > experience could do it, but a sound MVC framework with robust test >> > coverage >> > is IMHO going to take more effort. Sure, you can slap together a GUI, >> > but >> > that'll just be another me-too notebook that'll soon be as >> > unmaintainable as >> > SageNB. >> >> +1 >> >> > Having said that, if you are going to write a proposal that covers >> > details >> > like, say, unlimited undo/redo and testing in a believable way then I'm >> > sure >> > we would pick it up. >> >> If there were already a good Python (or IPython) Cross Platform Native >> GUI (is there?), then a viable project would be to take it and make it >> actually useful for Sage too. You should: >> >> - find all existing "open source Python (or IPython) Cross Platform >> Native GUI's": >> - what's their current status? >> - how widely used are they >> - how's the code quality >> - etc. >> >> Such a list would include IDLE [1]. >> >> Then take the best existing one, and if it **doesn't totally suck**, >> make a plan to extend it to make it useful for Sage. >> If there is nothing like the above, after 20 years of Python (and 10+? >> years of IPython), with millions of users, then you're probably not >> going to write something better for Sage="Python+a massively >> complicated library" in 2 months. Or, if you could, then you should >> do it for millions of Python users first, not just for Sage. >> >> (Aside: I agree with Nathann's skepticism about this statement: "In >> the notebook, it would be a much harder task than in a native GUI." >> Good cross platform native GUI's are also very, very hard to write...) >> >> William >> >> [1] http://en.wikipedia.org/wiki/IDLE_%28Python%29 >> >> -- >> William Stein >> Professor of Mathematics >> University of Washington >> http://wstein.org > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at http://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- William Stein Professor of Mathematics University of Washington http://wstein.org -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.