What's the right environment for easy GUI programming?
September 21, 2010 8:51 PM   Subscribe

I want to be able to throw together a simple application that will allow me to visually play around with R-Trees. What's the most accessible (read: easy, quick) way for me to be able to do this?

Ideally, I want to be able to draw dots and/or shapes on some sort of canvas and have them be shown encompassed by appropriately-sized bounding boxes. Preferably I'd be able to color things variously according to my whims and have a couple input boxes that allow me to control some parameters (max number of children).

I am not as concerned about the background R-Tree stuff, as I can figure that out. However, I have been avoiding GUI programming for 10 years out of fear, and have almost no experience with it, and this is even more complicated (I think) than standard dialog boxes etc.

So, what is the easiest way for me to do this? Is there any library out there that would do most of the work for me if I just make some API calls like drawDotWithCoordinatesAndSize(x,y,s) or something? I learn best off of piles of small-scale examples and sample code, so anything that has easy access to those sorts of resources is a plus.

I have access to both an iMac and an XP laptop, and while I have a slight preference for the iMac, the XP machine is a fine option. I am okay with pretty much any language, but I have the stupid restriction of not being able to download anything over 20MB in size due to work network limits.
posted by that girl to Computers & Internet (5 answers total) 4 users marked this as a favorite
 
A computer algebra system probably would be the best thing to go with for the type of interactivity you describe. They're great for playing around with the inputs to functions and algorithms and seeing the results. I personally have experience with Mathematica and MATLAB, which are very expensive and would certainly do the job, but I've heard good things about Sage, which is open source. As a bonus, it supports scripting with Python, which is probably the best general-purpose language for both playing around and making serious applications. If you want to be a bit more on the Python side and down to the metal, SciPy and friends like matplotlib would serve your purposes wonderfully.
posted by zsazsa at 9:02 PM on September 21, 2010


Best answer: I'm not super-familiar with this space, but I think Processing.js is what you want.
posted by Alt F4 at 9:28 PM on September 21, 2010 [1 favorite]


Response by poster: That looks rather promising, Alt F4! Web programming is one of the few places where making something that users can see and interact with doesn't fill me with a vague sort of dread.
posted by that girl at 9:40 PM on September 21, 2010


Tk is a pretty popular cross platform GUI toolkit. It has bindings for many languages, but it's most often used with Tcl. Here's some short examples of using the Canvas widget with Tcl. This page has Canvas examples in Tcl, Ruby, Perl, and Python (note the color coding.) Other popular cross platform toolkits are wxWidgets and GTK+. Both of these have bindings for countless languages, including most major scripting languages as well as C/C++. For example, here's hello world in PyGTK (more).
posted by Rhomboid at 9:58 PM on September 21, 2010 [1 favorite]


Nodebox is an alternative to Processing, Mac-only, which will allow you to work in Python. Nodebox is pretty sweet. I use it all the time for visually figuring out algorithms (and am tempted to go play with R-trees now).
posted by doteatop at 7:37 AM on September 22, 2010


« Older 11 bulb Scandianvian candelabra dilemma   |   What's a good roller derby spin on a folk song? Newer »
This thread is closed to new comments.