From: Eric W. <scr...@gm...> - 2007-02-13 07:06:50
|
# from Daniell Freed # on Monday 12 February 2007 04:37 pm: > but it lacks real IDE features =A0 >like GUI designer, code completion, and inline syntax checking. IMO, the GUI designer doesn't belong in the IDE since it shouldn't be=20 generating code (more on that below.) I'll also pass on syntax=20 checking unless it *always* knows what I mean better than I do. At this point, if you build a good xrc editor, the wxWidgets and=20 wxPython users would all jump on it. Hmm, maybe even plugins with=20 Inline::CPP and Inline::Python? I think the XRC system seems fairly workable, but I haven't fully=20 wrapped my head around it yet. The C++ examples make instantiation=20 seem rather tedious, and it appears that your code is still very much=20 bound to the layout (or at least the named contents.) Basically,=20 anything that needs to be connected to an event has to have some code=20 fetch it out of the XRC, and it appears that some objects can't be=20 represented while others have to be manually instantiated. I'm sure=20 there's a method to the madness, but I'm also sure a lot of it has to=20 do with technical limitations of C++. Just now looking at it again, a=20 perlish implementation might involve auto-vivifying (hierarchical?)=20 accessors for each of the XRC entities. But this is just a first (err,=20 fifth) glance and somewhat uninformed opinion at this point. <mildly educational rant about wxglade> To be clear, *statically* generated *code* is *always* going to (at=20 least eventually) cause maintenance trouble. Unless you can subclass=20 and tweak the generator from your own code (i.e. meta-programming (i.e.=20 Moose)), you *will* run out of rope somewhere. This means using wxGlade will eventually earn you a visit from swarms of=20 locusts (or at least a really long session with sed and such.) It=20 doesn't matter how smart it seems to be about tagging the code or if=20 you think you're safe because you subclass what gets generated or=20 whatever. One day you realize that it drops all of your button id's on=20 the floor instead of storing them and your best options (besides=20 ditching it altogether) are to maintain some duplicate table of=20 manually assigned id's or mine the wxg file for them and then generate=20 more code. So now you're writing a compiler compiler and perl6 is sure=20 to beat you to a ship date. Or maybe not that, but simply different=20 versions of glade have different bugs and suddenly the commits in your=20 version control system are full of noise and you don't know what's=20 changing and what isn't. For me, it was lots of big and little things=20 adding up to "this tool is just not working." I almost forgot to=20 mention "generates code that doesn't run under 'use strict'." I learned long ago that code generation doesn't work, but I saw how=20 wxglade did it and thought "hey, this might be feasible." Those who=20 forget (or ignore) the past are doomed to repeat it and all that jazz. Your milage may vary, mine didn't. </rant> =2D-Eric =2D-=20 We who cut mere stones must always be envisioning cathedrals. =2D-Quarry worker's creed =2D-------------------------------------------------- http://scratchcomputing.com =2D-------------------------------------------------- |