Generic GUI Wrapper For Python
An Anonymous Coward writes "IBM is working on a generic GUI wrapper to allow Python developers to write cross-platform GUIs. The anygui project will expose a common set of functions to the programmer and choose which backend gui toolkit to use for the given platform: TK, WIN32, GTK, Bethon, etc. Currently the software is in an alpha stage. The article also has some example code." Update: 10/27 23:53 GMT by T : Magnus Lie Hetland wrote to point out that though this article is hosted at IBM, "Anygui has nothing to do with IBM. It is,
in fact, an independent Open Source project currently
hosted at SourceForge."
First Post Suckers!
Cum togetherrrrrrrrr
Right noww
over meeeeeeeeeeeeee
I'm sorry, I think I'm still recovering from thinking of JonKatz as a gimp.
Larry Wall probably agrees with me that Perl is a much better language. What's this shit with OOP? OOP is a sinking ship, it's been already demonstrated a hundred times that it shows no advantages (except for morons who don't know what they're doing) and is always 5-500 times slower, take C++ or Java for example.
Sincerely, Mike Bouma
Mad propz to JonKatz, the original sweaty buttock crevice.
:o)
Slow Down Cowboy!
Slashdot requires you to wait 2 minutes between each successful posting of a comment to allow everyone a fair chance at posting a comment.
It's been 1 minute since you last successfully posted a comment
If you this error seems to be incorrect, please provide the following in your report to SourceForge:
Browser type
User ID/Nickname or AC
What steps caused this error
Whether or not you know your ISP to be using a proxy or some sort of service that gives you an IP that others are using simultaneously.
How many posts to this form you successfully submitted during the day
* Please choose 'please felch me' for the category!
Thank you.
What's wrong with WxPython? I've seen software on Linux and Windows that uses that. What is the difference between WxPython and IBM's one?
David
a Python story about a generic GUI wrapper.
-Mr. Redundant
Fuck you in the ASS.
Well, what about MacOS X?
Anybody know anything about future Python support for the X as well as this anygui?
I want something to wrap around my python. Neither Durex nor Trojan seem to be able to help.
BRINGING JonKatz ALONG
CmdrTaco answered the doorbell, saw Hemos, and turned around
walking away and clapping his hands.
"Hot damn! Got some juicy porn flicks for us tonight,
buddy."
"Hope so," Hemos said, ushering a third guy in, then closing
the door. CmdrTaco turned.
"Uh, who's this?"
"That's JonKatz. He's a queer," Hemos stated flatly, taking
off his jacket and throwing it over a chair.
"What?" CmdrTaco frowned, looking JonKatz up and down. "Uh,
what'd you bring a queer along for?"
"Instead of sitting there like a couple of idgits with our
hands down our pants, I figured we'd do it up good. Strip down
and let him lick us while we watch porn."
"You're weird, man!" CmdrTaco shook his head.
"Nuts. You'd like to lick CmdrTaco's cock and balls, wouldn't
you, JonKatz?"
JonKatz stood there nervously, staring directly at CmdrTaco's
crotch. "Unh huh."
"See, I told ya."
"I don't care. I ain't gonna let no faggot mess with me!"
"Suit yourself. You'll change your mind once you see him
working me over. He's got a wicked tongue. A real special
talent. Besides that, he's a nasty little punk. You like doing
nasty things, doncha, JonKatz?"
JonKatz nodded up and down, a stupid smile on his face.
"Whadda you mean, nasty? Cocksuckin' another dude is nasty
enough."
Hemos took CmdrTaco by the shoulders and turned him around.
"JonKatz, how'd you like to ram your tongue up my buddy's hairy
butthole? Look good to ya?"
JonKatz's eyes lit up and his tongue did an obscene little
swirl. "YOU BET!"
"WHAT?!" CmdrTaco cried.
"Pop a tape in, man. I'm ready to get started." He began to
remove his pants and shirt. "JonKatz sucks assholes, dude. JonKatz
loves to suck assholes. Wait'll you see him sucking mine out."
"Are you doped up or what? I don't wanna see him suckin'
your shithole, man!"
"Oh, you will, buddy. Then you'll throw your legs up and
beg him to drill his tongue up your keester."
"Hey, do what you want. Just stay down at that end of the
couch, okay?"
Hemos sat bare-assed on the couch, sprawling his legs out.
CmdrTaco took a few furtive glances at his buddy's nakedness, then
averted his eyes as he pushed the remote. He sighed disgustedly
when JonKatz also took his clothes off, although he was somewhat
glad the guy wasn't some ugly old troll.
"Hey, JonKatz," Hemos said, fiddling with his balls, "go and
bring us all beers."
JonKatz hopped up and went into the kitchen.
"Are you serious?!" CmdrTaco hissed after he left.
"Trust me, man. Just treat him like a punk slave. He'll do
anything you say. Come on, take your fuckin' clothes off and
get into it."
Reluctantly, CmdrTaco began to strip. When JonKatz came back, he
saw CmdrTaco's big cock and whistled appraisingly. CmdrTaco blushed.
"Nice big honker, hunh, JonKatz?" Hemos said, looking his
buddy's cock over. "Got you drooling, thinking about the two
big loads you're gonna get? We used to jerk each other off when
we were kids. CmdrTaco shoots a big wad."
"Jeez, don't tell him that!" CmdrTaco cried.
"Why not? You do."
"I don't mean that, I mean...the other."
"Cripes, you've turned into such a pussy. Ever jerked off
with your straight buddies when you were younger, JonKatz?"
"Sure. All the time. Then I started sucking 'em. They dug
it, but then they eventually gave me the heave-ho."
"Stupid fucks," Hemos growled, taking a swig of his beer. He
leaned over and rustled JonKatz's hair. "I wouldn't have done
that. I would have fed you cock all through junior high and
high school. Some guys just don't know when they've got
something cooking. Woah, nice pussy! Get a load of the meat on
that fucker, too. Bet you'd like to sucker the jizz outta that
guy's balls, hunh, JonKatz?"
"Yeah, but I'd really to suck his hairy asshole!" JonKatz
replied.
"Bet he'd let ya. You really get off on bungs, doncha? You
like smelling 'em, too, doncha? Sure dig sniffin' mine. I was
pretty ripe the other day, wasn't I?" His cock was up hard and
he was fisting it slowly.
"You sure were...real ripe!"
"But you liked it that way, didn't you?"
"I sure did, Hemos! Got a stinky one tonight?"
"Better than stinky, man. That's why I'm sitting on my
shirt. Don't wanna get any butt slime on CmdrTaco's couch." He
chuckled while CmdrTaco gasped.
"Aw, that's filthy, man! Are you sitting there with a
shitty asshole?"
"Hey, I'm on an old shirt. Relax."
"Are you saying that queer...licks shitty assholes?!"
"I don't know. This is the first time I've offered it to
him dirty. JonKatz, you still wanna suck my ass?"
"Absolutely!" JonKatz gushed, crawling between Hemos's legs.
"I'll lick it clean for you. I like 'em kinda raunchy, but
if there's shit on it I don't mind licking it off."
"If CmdrTaco lifted his legs up and he had a ring of crap
all around his hole, would you lick it off for him?"
"Sure. I'd eat CmdrTaco's shit. I mean, I'd lick it off his
asshole."
"Here, lick it off mine. No sense messing up this shirt."
He grabbed his knees and pulled them back. CmdrTaco stared in shock
as JonKatz stuck his face up to Hemos's butt and began to sniff
and lick his hairy ass. "Watch this, CmdrTaco."
"Jeez, what about the movie?" CmdrTaco whined.
"Fuck the video. This is real. Watch how he licks off my
shithole."
JonKatz's tongue was bathing Hemos's entire crack. He loved
the smelly thing and soon had his tongue circling Hemos's shitty
hole. Hemos even reached down and pulled his cheeks apart,
letting the astonished CmdrTaco get a good peek. CmdrTaco couldn't help
staring as JonKatz cleaned his buddy's dirty crapper.
"Oh, this is the life!" Hemos moaned, throwing his head back
and glancing over at CmdrTaco. "When something gets dirty, just
have your personal slave lick it. He cleans my armpits and even
sucks the grunge from between my toes. He'll do anything you
ask him to, CmdrTaco. Just tell him what you want."
"Yeah, what if I wanted to SHIT on him?!" CmdrTaco snarled in
contempt.
"Go ahead. Hell, shit in his mouth if you want. Yeah, I'd
like to see that myself. You'd let CmdrTaco take a shit in your
mouth if I wanted, wouldn't you, JonKatz?"
"Um, gee, I guess so, Hemos, if you wanted me to. I've never
done that...sucked on a turd, I mean. I'd rather do it to you,
Hemos. For the first one, anyway."
"See, what'd I tell you? Well, I might be all shitted out,
so maybe we'll have to postpone the turdsuck for another time.
But suck me out real good, JonKatz. Maybe there's a leftover
turdball up there. If you can suck one out, there's a good
chance we can get CmdrTaco to take a poop for you."
"You're insane!" CmdrTaco cried, shaking his head. But he
continued to watch JonKatz eat out his buddy's splayed bunghole
...keeping a close eye out for any turdballs that might come
flying out. Not that he particularly wanted to see one.
"Mmmm, clean me out. Eat that shitty hole. Aw, look at him
slopping out my turdhole, CmdrTaco. Lots of shitjuice going down
his throat and he's happy as all fuck."
"Gee, Hemos, maybe he'd like to drink your enema," CmdrTaco said
sarcastically. "Oh, that's too demented to even suggest!"
"NO!" JonKatz piped up.
Hemos laughed. "Naw, that's more perverted than fun."
"I'm sorry I even mentioned it," CmdrTaco whined.
"Oooh, he's gettin' my hole loosened up. Maybe if I bear
down. If I plop out a little turd in his mouth, Hemos you go
through with it, CmdrTaco?"
"You know, just to show you how disgusting this all is, I
just might. Yeah, I'll fuckin' shit in his mouth, just so
you'll have to smell my shit!"
"Wouldn't be the first time, pal. I've followed you in the
bathroom before. You suck and I'll push, JonKatz. If that doesn't
work, maybe you can scoop some out with your fingers."
"I don't mind eating your shit off my fingers, Hemos," JonKatz
said, "but it won't be the same as a big turd in my mouth."
"You're right. Bad idea. Unless you just wanna scoop some
out anyway."
"Why can't you guys just do some normal cocksucking and
forget the shit?"
"Yeah, my hole's clean. Crawl over and see if CmdrTaco's ready
to let you lick his prick."
CmdrTaco had a stiff rail in his hand, despite everything else.
He sighed in resignation, and pushed his boner down between his
spread legs, letting the eager JonKatz lick the crown.
"Uh, yeah, that's okay. What the hell. I've let a couple
fags go down on me in the past. Go ahead and suck it if you
want."
"That's the spirit, CmdrTaco! But let him treat you, don't go
blowing your load too soon. And when you're ready, just lift
your legs and tell him to lick your ass."
After JonKatz slobbered over CmdrTaco's knob and teased up and
down his shaft for a while, CmdrTaco was getting turned on much too
fast. He pulled his cock from JonKatz's mouth and lifted his
thighs.
"Alright," he sighed with false reluctance, "Go on. Might
as well get my ass sucked for all this baloney you're putting
me through." He stared at the ceiling--a feined attempt to
disassociate himself from what was happening.
"Aw, poor baby," Hemos chuckled, making CmdrTaco laugh, too.
Then CmdrTaco let out a quiet little gasp as JonKatz's wet tongue
began to circle his hairy anus.
"Ah, fuck!" He lifted his thighs more and held his knees
back. "If you're gonna eat out my shithole, man, go for it! Oh,
god, I didn't know I was so sensitive down there. Oh, that's a
great sensation!"
"You got him hooked, JonKatz baby," Hemos cried, getting down
on the floor to watch. "Make him squirm. Lick that hairy
stinkhole and show him whose tongue is boss. Make him quiver
like you did me that first time. Look at him holding those legs
back, offering everything he's got. Eat that smelly hole!" Hemos
looked up at CmdrTaco and winked. "Kinda neat having a faggot
between your cheeks cleaning out your shitty asshole, isn't it?
And the best part is he likes the way you smell down there and
he likes the way you taste. He's gonna ram his long tongue up
your hot turdhole and try to lick out your steamy rectum!"
Then he turned back to JonKatz. "How's he taste?"
"Oh, he's delicious! And his smell doesn't go away after
licking it, cause it's so hairy, I guess. Best smelling asshole
I ever smelled. I could keep my nose in here for a week!"
"Well, buddy, guess your shit does stink better than mine."
"Oh, that's, I mean..." JonKatz stammered, "I still love
yours, Hemos."
"Heh. Just eat. I know enough about bungsuckers to know
that the sweetest asshole in the world is the one they happen to
be eating out at the moment." He sat down next to CmdrTaco, raised
his own legs, then grabbed CmdrTaco's hand and wrapped it around
his prick while taking CmdrTaco's big cock in hand. Then he
grinned. "Hell, we might as well trade handjobs while he
tickles our innards."
CmdrTaco was about to take his hand away, but the feel and
texture of his buddy's cock felt comfortably familiar. "Guess
one more time wouldn't hurt."
"Hell, I never did want to stop. Even after we started
getting chicks, I could have gone for a wild meat-beating with
you now and then. And it's a lot safer now."
"How's that?"
"Well, with a cocksucker to do our bidding, we won't be
tempted to try it out."
"I never was tempted to try that!" CmdrTaco said defensively.
"Fuck you and the big balls you rode in on! I thought about
it, and I know you did, too. We were both just too chicken,
that's all."
"Yeah. Well, good thing we got a cocksucker, right?"
"Right. How's your bunghole feeling?"
"Ah, good! Makes me think about something else we never
tried." He chuckled.
"Hey, we're big boys now. You can stick it up my hole if I
can stick it up yours! And JonKatz can suck our cocks clean!"
"Fuck each other like a bitch, hunh?"
"Yep. Then we can both fuck JonKatz."
"And I'll still lick your pricks clean!" JonKatz blurted out,
smiling.
I have been working with Python sience this summer Ranging from Web Apps to console apps. I find it real nice because I dont usually have to annoy the administer to add more modules on to the system (like in perl), Pluse my code comes out really clean and most of the time the programs are cross platform so it makes distribution a lot simpler. And the main reason I usually avoided using graphics in Python is because the GUI interface needed a tcl/tk program and that becomes more of a hasel for distribution. If they can come up for more of a common graphical interface that can be imbedded into the Python source and works platform independent I am all for it.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Pretty much all the portability problems with AWT came from the use of native widgets. So, why is Mertz going to repeat the same mistake in his implementation? In fact, it looks like he is going to work hard to make things worse by exposing different APIs on different platforms.
There are a couple of good cross-platform GUIs for Python: FLTK with Python bindings, Fox with Python bindings, and wxWindows (universal or native) with Python bindings. Mertz's project seems like it recreates something whose functionality already exists--a typical case of N.I.H.
Kuhrelturn fed annoprul geshaks, noz redfuzim grbbrtz.
Ertresspal mhhlu frmmtz relprms ertorzm !
Gurrmsn am dhsimd figgl trom, ghef fhod norrmugml.
Retkapml prrt glgl ortz.
The problem: existing cross-platform libraries are not ported everywhere.
The solution, according to IBM: port an existing cross-platform library everywhere? No! Make an entirely brand new cross-platform library interface, that runs no previously-written code. Also, instead of wrapping the few unsupported low-level GUI interfaces not yet supported, and deal with all the quirks of each system, they will wrap every existing Python GUI, and deal with the quirks of each system. Naturally this will result in a far superior, much more portable product. Why? Because We're IBM and We say so! (it's their company motto, slogan, and vision statement, look it up)
So all Python programmers should immediately embrace this new standard, which, despite being alpha at best, will surely soon be much better than any existing toolkit.
Sure, they could just clean up the TK ports, but where's the fun (or branding) in that?
"...The emphasis of anygui is to provide a usable set of interface elements that will work with every backend; particular backends might themselves be capable of more advanced interfaces, but anygui sticks to what is common to them all. ..."
it looks like awt.
awt was replaced by swing because by sticking with
lowest common denominator, you end up with just
very simple (and not very useful) widgets.
Please try to stay on topic in the future and this will become a much happier place. Okay?
Someone should try this with perl, it could use a good abstraction layer like this.
Mertz's affiliation is given as "Gnosis, Inc.", not IBM. The article is simply published in IBM's DeveloperWorks for Linux.
Python is used for twenty-seven open source AI projects on SourceForge, and therefore a Mind-to-Python liaison page has been established at http://mind.sourceforge.net/python.html -- along with fifteen other Open Source AI languages.
Artificial Intelligence in Python at http://www.strout.net/python/ai/ is one instance of how important Python is for AI.
What most open source AI projects lack is a Theory of Mind well-grounded in neuroscience. The http://mind.sourceforge.net/theory5.html page with ample co-references provides not only the fundamental AI theory but also its albeit primitive implementation in both Win32Forth and MSIE JavaScript -- which any AI enthusiast may easily save-to-disk and begin hosting on a personal Web site, as the AI Mind pervades the 'Net and leads us upwards and onwards to Technological Singularity!
You might be interested to know that this project has nothing to do with IBM. There is an article about it on IBM developerWorks, but that's it.
Also, it's not David Mertz's project, the project leader is Magnus Lie Hetland.
More info: http://anygui.sf.net/
Regards,
Kalle Svensson, PyGTK backend developer.
Someone then please explain why pygtk is unsuitable...?
A strange game. The only winning move is not to play. How about a nice game of chess? - Joshua (Wargames)
SUN has been working for years to create a cross platform application framework. It is called swing. Swing is very complex and heavy on resources but it does the job. It supports printing, drag & drop, integration with the native clipboard, key bindings, skinning, all sorts of graphical stuff and lots of other stuff.
...). Swing integration is easy if you use jython. I think there are also python bindings for Mozilla so you should be able to create XUL applications in python. Presumably integration with GTK or QT is also easy.
While you might disagree that Swing is a good solution, the fact remains that Sun realized that all of the above is needed if you want to create competitive GUI apps.
The solution suggested for python seems to make the same design mistakes sun made early on (AWT) and seems to be based on the same naive view on what comprises a good GUI. In addition it seems to ignore a whole lot of other perfectly good solutions (qt, gtk, XUL, Kylix, Swing,
Wrapping is no good solution for anything but the most trivial applications. As soon as you make things more complex, you will have more and more trouble keeping things crossplatform since each platform works slightly different, has its own bugs to work around and may or may not support what you need.
Jilles
Most of the posts so far seem to have missed the point.
This is not a new GUI toolkit. It is a wrapper API for a large number of underlying graphic toolkits. You write code for AnyGUI and don't have to worry what GUI toolkit is used. "On Windows, the Win32 API might be used (or wxWindows); on MacOS, native calls; on BeOS, Bethon; on Linux, TKinter or GTK"
Also, as far as I know this is not an IBM project. The article is just published on an IBM site.
If this works as well as the AnyDBM module which allows basic database access from Python without having to worry about what actual database you are using it will be great.
Check out http://anygui.sourceforge.net/
Because GTK sucks ass.
If it did work, somebody would have done it by now.
Java tried it, failed.
Netscape tried, failed.
That's... a good point. I read it as a somewhat odd press release, and skimmed right over the header material to read the body.
It changes the tone of the article completely, from giant nonsensical arrogant corporate initiative to just another cross-platform GUI library for Python.
Wow, I'm dumb.
More justification to love python. I use it for everything. Unfortunatly the apache mod_python interface sucks badly if you want to use it the 'proper' way. But this anygui sounds great. I wrote an app in tkinter and made it into a stand alone windows program, but it had to include so much crap to make sure it ran, the simple program turned into a 3meg bloat. I wrote another program in pygame (SDL interface,) and it came out a lil smaller, ~1.5megs. But I think the main goal with anygui would be ubiquitousness. The GUI you need is already there, so if I were to make stand-alone windows programs, it wouldn't be bloated including the GUI libraries. This is great!
--Roy
According to Mentifex, all topics are relevant to Mind, which is a shitty AI which does nothing, based on a shitty theory which he dreamt up alone and nobody else respects.
Was a word mentioned that could be fit into the same sentence as Mind? Well, clearly Mind is not off-topic!
Who am I kidding? Alex Chiu doesn't even come close to this level of goofiness. At least he sells some magnets to suckers.
Though Java rox as a language and was the first to implement the VM principle and has a huge set of APIs (which make for it's biggest advantage but often are written very haphazardly), it has one big downside in comparsion to Python.
Python is GPLd. Java is not.
If the other-way-around aproach IBM is taking now is crappy, there be no one stopped from enhancing it or writing a better one. Everyone can go by and rewrite any part of the Standard library if he thinks it's to slow. If IBM wants to bug SUN a little in the "nifty new language concept" dept., this is not the stupidest thing to do.
We suffer more in our imagination than in reality. - Seneca
I understand not wanting to make pike or forth topics, but you have done so many articles on python at this point, it's getting ridiculous! I know slashdot is perl-centric, but for the love of god!
Having dabbled in Python programming, I see this as a Very Good Thing (TM). I read the article, and as others have pointed out, this is not a new GUI toolkit, but a wrapper for all of them. So now I can write Python programs that use both PyQT (Linux) and Tk (Windows) without having to learn two different toolkits.
Now if only PyKDE2 would come out soon, so that I can start making a couple of kicker applets for KDE2. Of course, by the time PyKDE2 is out, KDE3 will have come out, and the whole cycle will start over again!
The worst terrorist attack in recorded history occurred last month, and now we're involved in a WAR and you people have the gall to be discussing Generic GUI Wrapper For Python???? My *god*, people, GET SOME PRIORITIES!
The bodies of the thousands of innocent civilians who died (and will die) in these unprecedented events could give a good god damn about Generic GUI Wrapper For Python, your childish Lego models, your nerf toy guns and whining about the lack of a "fun" workplace, your Everquest/Diablo/D&D fixation, the latest Cowboy Bebop rerun, or any of the other ways you are "getting on with your life" (here's a hint: watching Cowboy Bebop in your jammies and eating a bowl of Shreddies is *not* "getting on with your life"). The souls of the victims are watching in horror as you people squander your finite, precious time on this earth playing video games!
You people disgust me!
I love choice, but part of me wishes that more effort would go into getting wxPython/wxWindows polished (and more fully cross-platform) to knock Tkinter from its status as defacto Python GUI.
Sometimes we do write stuff just to learn. If what we've written also turns out to actually be useful so much the better.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
anygui is not an IBM project -- it was just reported on in IBM developer works. If they write an article on java, does it mean they invented java? Sheesh.
From the website:
The purpose of the anygui project is to create an easy-to-use, simple, and generic module for making graphical user interfaces in Python. It's main feature is that it will work transparently with many different GUI packages on most platforms.
You can use it to write a generic GUI app and it will scan the gui toolkits on your box and choose the best one to use for your app.
A successful project with analogous goals is anydbm
You can make generic operations on databases, and it will work on mysql and postgresql. It's already a part of the standard python distribution.
I am rapidly becoming a wxWindows fan. I've spent the last week or so learning this toolkit and implementing something like Gamespy or The All Seeing Eye.
I admit this is the first GUI toolkit that I've used (for the desktop), but it seems to be very clear to use. I've got most of the standard functionality down now - events, windows/frames, window sizing, encapsulated string handling, etc, and I've only had to consult the mailing list for a single issue.
I'm using it with C++, but there are some rather popular bindings for Python called wxPython, as well as Perl and an assortment of other languages.
And the thing that gives me wood is that it looks native in each environment. GTK+ with themes under Linux, and Win32 GUI widgets under windows. And yes, it manages to do this without taking the lowest common denominator route: Sometime features like traybar iconifing under Win32 get plainly ignored under other OSes.
Learned a new API this year? (If you are a coder...) If you have not, you're due.
It's a great example of how an idea that seems good when discussing it in a CS class, falls apart where the rubber meets the road.
- adam
Perl isn't an OOP language? Guess I need to tear out chapters 12-13 of my Camel Book.
http://stage.linuxports.com/projects/pyqt/book1.ht m
The only book on Python and QT programming
Get your PostgreSQL here: http://www.commandprompt.com/
Anyway, I find it hard to get excited about this toolkit, because it looks to me like a solution waiting for a problem.
I don't think it will come close to wxWindows. wxWindows already runs on OS9 and OS X, and a Mac port of wxPython is actively being worked on.
While all the current ports of wxWindows use native widgets (when available), the wxUniversal port will provide an emulated set of widgets that will make it easy to port to other platforms until native support is available.
Among other platforms, wxUniversal will run on Sci Tech's MGL library, which supports Windows, Linux, DOS, OS/2, QNX, SMX, RT-Target and other embedded operating systems. Other platforms (such as OS/2) are also being developed.
I am David Mertz, the author of the referenced (but somewhat mis-described) article on IBM developerWorks about anygui. Some other folks have posted several clarifications, but let me try putting them together in one place.
1. I am not the lead developer of Anygui. That honor belongs to Magnus Lie Hetland, who has been doing a wonderful job. As indicated in the article, or on the project page, I -did- volunteer to lead one tiny aspect (but have not yet done any work, for which I apologize).
2. Anygui is not sponsored by IBM. I just write columns for IBM, and found the project interesting enough to devote an installment to.
3. Anygui does not "repeat the mistakes of AWT", nor does it aim to replace another toolkit like GTK or Fox. Anygui is a *wrapper* around lower-end toolkits. The idea is that you can distribute *identical* source code to different users, on different platforms, and have it run with *some* available backend.
4. Anygui will never be as feature-rich as many of its backend toolkits. It is not trying to be. The aim of Anygui is to provide a minimal, but -universal-, GUI API. If you want the full sophistication of, e.g. Swing, don't use Anygui. If you want users of Jython, MacOS native, Win32, and PyGTK (and others) to all be able to receive and run (without modification) your common Python code, Anygui is a brilliant project.
Buy Text Processing in Python
A successful project with analogous goals is anydbm. You can make generic operations on databases, and it will work on mysql and postgresql.
anydbm is a generic interface to variants of the DBM database, not relational databases like MySQL and Postgres. For relational databases the generic interface is DB-API.
Hamish Lawson
What the article describes - a common interface to the lowest common denominator of a wide range of GUI toolkits - is exactly what the Java AWT did. Unfortunately the intersection of all common toolkits is quite small: many don't support graphics on buttons, or sliders. There are also significant differences in the behaviour of the widgets between platforms that create problems. It looks to me as if you haven't examined the AWT and the reasons for its failure in enough detail, so you're going to make the same naive mistake again.
On top of that, the callback/event-look API described surely went out with the ark.
Alternatively, Python should mature to the point that people can write a toolkit in Python itself, relying only on drawing primitives from the platform (the same could be said about Perl).
I especially think PyGTK is an example of somewhat relatively well-done work. In my experience with Perl and Python, Python tends to lend itself better than Perl for maintenance. However, the way in which data members of a class can be declared *anywhere* could create problems on larger projects. Also, having to have self as an argument to your class functions is a bit strange, and having to reference all class methods and members explicitly through self is a bit strange too, strange way of distinguishing between local and class methods and variables. And the way private vs. public is a bit strange. Other than this, I really like Python, a really impressive interpreted language, with a really excellent way to interface with C code, more impressive to me than any other non-C language, espeically makes JNI of Java look like complete crap.
XML is like violence. If it doesn't solve the problem, use more.
Why does a different cross-platform interface need to be built for each language? Wouldn't it make more sense to have a set of API's that works for all languages (or at least the common ones)?
Table-ized A.I.
Actually, tkinter works cross-platform. I use Python a lot, and I have used tkinter on Macintosh (an old 68040, not a modern Mac) as well as UNIX. I am told that tkinter works in Windows, but I have never used it there myself. As far as I know, you don't need to change your code either, or at least I have never had to. If you are using Python to do something GUI-style, tkinter is an excellent choice, especially because of the easy cross-platform support.
Best Slashdot comment ever
>> This is what people who have never truly grasped OOP always say. <<
And people who claim to grasp it cannot provide evidence that it is objectively better. OO has become an Anecdote Club.
>> PP is a sinking ship, it's been already demonstrated a hundred times that it shows no advantages.....OOP projects take a bit longer to create but maintainability and extensablity more then make up for it.
<<
If precedural and OO are the same, but OO has a longer learning curve, then doesn't it make sense to stick with procedural?
The biggest problem with OO is that its assumptions about the patterns of change are pretty much wrong. However, people believe them because those patterns are the only ones people are trained to recognize due to inundation by OO texts. IOW, OO is the right solution to the wrong problem.
oop.ismad.com
Table-ized A.I.
The idea of a API which provides a way to hook into whatever provider exists on a platform reminds me of the SAX XML event-driven interface. Right now it does not seem to provide much that an effort to port Tkinter to the "minor" platforms might give you, but maybe in the future it might be able to let a GUI app query the underlying provider whether certain capabilities (e.g. bitmaps on buttons) are supported and make intelligent choices based on that information.
Inventor of the LOLbalrog meme.
I'm a Delphi and Python developer. I consider both to be RAD (Rapid Application Development) tools.
If Python had a good GUI builder similar to Delphi or VB, I belive it would be a revolution in software development.
Python stands in a class by itself. I consider it not a RAD tool, but a VRAD tool (Very Rapid Application Development). Unfortunately this qualificative does not apply to the GUI building, where Delphi or even VB are a lot better than it.
I have tried several available libraries, including wxWindows. It simply does not compare to Delphi.