I really don't find it insane. Young people have much more powerful brains, they just have to learn programming at a younger age. I did it, and I find myself (and others who learnt programming as kids) better programmers than those who learnt in college.
The thing that I've idly wished would work in PyGTK and wxWidgets (the ones I've used and liked) has these features:
- takes full advantage of data-type literals like dictionaries and lists
- allows method chaining -- I think this implies mywgt.add(NewWidget(), callback, data) must return a new modified object, rather than modifying mywgt in-place and returning None.
So I can build an app the clean way (generated XML or Django-style models), and then if I need to whip up a simple dialog in straight Python, I can do it like this:
import gui
myframe = gui.Frame(
title="Password",
width=300,
modal=True,
).add(gui.Col([
gui.Label("""Enter the password to enable
this feature:"""),
gui.Password(),
gui.HRule(),
gui.Row([
gui.Button("OK", self.accept),
gui.Button("No!", self.cancel)])
]))
myframe[3][1] += gui.Image("images/hellno.png")
Not sure if it's possible to use dictionaries as part of the toolkit since ordering is lost, but you see the idea: let container widgets like HBox and VBox accept literals instead of requiring repeated foo.insert() calls; have different methods for in-place modification and returned values; implement container widget's magic attributes like __getitem__ to allow semi-obscure shorthand (since the inline Python form is mostly for simple throwaway/prototype code). There are probably a lot more shortcuts I'm missing; I haven't had my coffee yet and I'm no guru to begin with.
I chose RoR over Python/Django for one simple reason: RoR's tight integration with the Prototype AJAX javascript library. Personally, I like Python as a language much better than Ruby. But if I'm going to code up a Web app, I want easy AJAX integration - I don't want to hand craft a bunch of javascript. It's not that I've got anything against writing javascript, but I hate, hate, hate trying to debug it.
Then what you want is jRails, which subs jQ in for Prototype in all the Rails helpers and removes Prototype from your project. You "plugin install" it, forget about Prototype, and use nothing but jQuery from then on.
I have to agree with the other commenter. I prefer to "roll my own" here. Not because I don't like it when frameworks take care of mess for me, but because I'm constantly frustrated by how frameworks handle JS. A quick and dirty RESTful JSON api is easy enough to build in either framework, and once you're there, Ajax becomes pretty trivial (especially with any of the nice JS Frameworks)
you should try it out and see if you like it.. shoes is a good way to learn ruby
shoes is good for simple apps. But if you need complex controls like trees and sliders, coding in shoes would get annoying. Also the documentation for shoes leaves something to be desired.
but it is pretty fun.. i'm coding a shoes app right now and would recommend it