Boa or Designer?

hi,

i'm learning wxpython. i assume i want to use a design/layout tool for more complex layouts.

I read many positive references to Boa, but it appears to be in alpha.

Designer is a product, with recent releases and support. Not expensive at all.

No indication that either supports the new wx namespace.

As a newbie, I'm hoping not to have to learn the old wxpython namespace. I assume my own code should be wx-based. Nevertheless, I'm learning about the old namespace just to be able to work thru the sample/obstacle course code on the wiki.

Any recommendations? Which tool is the more complete? Are you happy with the support for Designer? I suppose you _are_ the support for Boa.

Do you like the generated code? Is it intended to be read or is it assumed that you would always return to the tool to tweak the results?

i'm learning wxpython. i assume i want to use a design/layout tool for
more complex layouts.

If it's just for layouting, then there are other choices as well.

I read many positive references to Boa, but it appears to be in alpha.

I'm waiting for an answer from Boa users mailing list on how to use I18N
with it... If you have such a requirement, then you'd better take a careful
look on that too.

Designer is a product, with recent releases and support. Not expensive
at all.

No indication that either supports the new wx namespace.

So, the alternative that I like the most, for now, is wxGlade. It can
generate C++, Perl, Python and XRC output from your layout.

It also supports I18N and the new wx namespace.

As a newbie, I'm hoping not to have to learn the old wxpython namespace.
  I assume my own code should be wx-based. Nevertheless, I'm learning
about the old namespace just to be able to work thru the sample/obstacle
course code on the wiki.

Any recommendations? Which tool is the more complete? Are you happy
with the support for Designer? I suppose you _are_ the support for Boa.

There's a Boa mailing list. *THEY* are such a support (there seems to be
other options, consult their website at http://boa-constructor.sf.net/).

Do you like the generated code? Is it intended to be read or is it
assumed that you would always return to the tool to tweak the results?

Boa's code seemed more compact and easy to read than wxGlade's... But with
both you can change the code by hand. With wxGlade, though, if your changes
are within the 'marked' area, they'll be overriden.

I'm going better with wxGlade, so far... but I'm taking a look at Boa, since
it has some facilities that allow me to look less to the HTML documentation
and has a few more objects :slight_smile: The I18N part and the way sizers are used is
what bothers me...

Give them a try. You'll only know which one works better for you if you try
them.

Be seeing you,

···

On Qua 07 Abr 2004 13:00, Jim Peterson wrote:
--
Godoy. <godoy@ieee.org>

Hi,

> I read many positive references to Boa, but it appears to be in alpha.

I use Boa for non-wx general editing as well; the latest CVS is very good in my opinion (v0.2.8) and has all the nice editor features.

> Do you like the generated code? Is it intended to be read or is it
> assumed that you would always return to the tool to tweak the results?

Like any RAD tool, I got used to the way Boa does things (like creating the wxIds). And, it's a far sight easier/simpler than Visual Studio.

You do get init code blocks like:

     def _init_coll_notebook1_Pages(self, parent):
         # generated method, don't edit

If you add to it, it will disappear, if you change it, it might break.

The help is now helpful, and the short tutorial is a must to familiarize the collection editors and such.

Ray

Jim Peterson wrote:

hi,

i'm learning wxpython. i assume i want to use a design/layout tool for more complex layouts.

I read many positive references to Boa, but it appears to be in alpha.

Designer is a product, with recent releases and support. Not expensive at all.

No indication that either supports the new wx namespace.

As a newbie, I'm hoping not to have to learn the old wxpython namespace. I assume my own code should be wx-based. Nevertheless, I'm learning about the old namespace just to be able to work thru the sample/obstacle course code on the wiki.

Any recommendations? Which tool is the more complete? Are you happy with the support for Designer? I suppose you _are_ the support for Boa.

Do you like the generated code? Is it intended to be read or is it assumed that you would always return to the tool to tweak the results?

I suggest wxGlade, which is a very friendly tool for generating the basic UI code.
Its wxGridSizer functionality seems to be broken now though.

···

--
Regards,
Matthijs de Smedt
mat88@xs4all.nl

On a related note, is there any ide which will allow me to import an
existing file (wxPython code) and use it in the ide. My knowledge is
limited with regard to ides, but I get the feeling that it is a start from
scratch thing. If I, for instance, want to rework my gui, can that be done
from an existing startpoint or do I have to start from scratch?

--vicki

"A pessimist sees the difficulty in every opportunity; an optimist sees
the opportunity in every difficulty."
  -- Winston Churchill

Boa looks for/requires the structure that it creates, to an extent. I have recreated old 1000+ line apps with Boa in a few hours by re-doing the GUI design with Boa, then pasting in the rest - classes etc.
You can edit any text file in Boa, the WYSIWYG designer window just won't be available.

Ray

···

At 12:00 PM 4/7/2004 -0500, Vicki Stanfield wrote:

On a related note, is there any ide which will allow me to import an
existing file (wxPython code) and use it in the ide. My knowledge is
limited with regard to ides, but I get the feeling that it is a start from
scratch thing. If I, for instance, want to rework my gui, can that be done
from an existing startpoint or do I have to start from scratch?

I read many positive references to Boa, but it appears to be in alpha.

The version name doesn't quite reflect its qualities.

Designer is a product, with recent releases and support. Not expensive
at all.

Boa's developer does have a habit of not releasing packaged versions very
often. However, the CVS version is updated more often, so you can just get
that one.

No indication that either supports the new wx namespace.

I think Boa will take some time to support that one. wxGlade already has
it. Don't know anything about wxDesigner. Btw., there's another one called
VisualWx (http://visualwx.altervista.org/). However, that one does have
more of an alpha feeling to it.

As a newbie, I'm hoping not to have to learn the old wxpython namespace.
  I assume my own code should be wx-based. Nevertheless, I'm learning

Good idea :).

Any recommendations? Which tool is the more complete? Are you happy
with the support for Designer? I suppose you _are_ the support for Boa.

Boa is pretty complete as IDE, wxGlade quite complete as GUI code
generator. I'll compare it with wxGlade, because that's what I'm familiar
with. Boa is a real IDE: you can write any kind of code in it, debug (I
like the debugger), generate GUI code, bind events, etc.
wxGlade only generates GUI code.

It's probably easier to understand Boa's way if you come from a visual IDE
like VB or Delphi. On the other hand, wxGlade has (IMO) much better support
for sizers than Boa.
wxGlade also encourages (but does not enforce) separation between gui code
and application logic. The actual (generated) GUI code can easily be
subclassed and only there gets functionality bolted on. Boa on the other
hand encourages mixing functionality and gui code in the same class, much
like Delphi.
wxGlade is released in packaged form more often than Boa.

I for one have chosen wxGlade for GUI generation and occasionally use Boa
for debugging. I suggest you install both (or all three, if you want to try
wxDesigner as well) and give them all a fair chance. Then see what suits
your taste and way of working best.

Do you like the generated code? Is it intended to be read or is it
assumed that you would always return to the tool to tweak the results?

I find both Boa and wxGlade code quite readable. But then again, it's just
Python code, not some black magic stuff.

···

Jim Peterson wrote on Wed, 07 Apr 2004 09:00:58 -0700:

--
Yours,

Andrei

=====
Real contact info (decode with rot13):
cebwrpg5@jnanqbb.ay. Fcnz-serr! Cyrnfr qb abg hfr va choyvp cbfgf. V ernq
gur yvfg, fb gurer'f ab arrq gb PP.

Jim Peterson wrote:

i'm learning wxpython. i assume i want to use a design/layout tool for more complex layouts.

As a newbie, I'm hoping not to have to learn the old wxpython namespace. I assume my own code should be wx-based. Nevertheless, I'm learning about the old namespace just to be able to work thru the sample/obstacle course code on the wiki.

Appologies for jumping in late, I just got my email working again.

[Prima donna mode]

This is possibly an unpopular opinion, but I for one recommend *against* using any IDE that 'automatically' generates the layout code. I've found that hand-rolled code tends to be more meaningful in code review and less clogged with 'noise' code that is common for IDEs of that sort.

They have thier uses, such as rapid prototyping of fascade GUIs, but for 'production' code I've always gotten superior results from coding it by hand, and it's usually far more maintainable down the road.

I have a firm belief that there is absolutely *no* substitute for an indepth knowledge of the library APIs, and I am not just referring to wx here, but any library in C, Py, Perl, Java, or whatever. Relying on tools to do the dirty work only gets you so far. Whenever you hit the limitations of those tools, you have only your own understanding of the API to fall back on. And if you don't constantly excersise it, you'll lose what you knew before. I also believe that the absolutely WORST time to start using one of these tools is when you're first getting started. This is the time when you're most able to establish your own working idioms with little pressure - later, you'll probably be on deadline and not have the luxury of learning new things under the gun.

Like I mentioned earlier, reviewing generated code is generally a nightmare. The naming conventions are generally pretty generic and meaningless, the IDEs I've used don't force you to override that, and thus it becomes a confusing blob, especially if you have to come back to it months later to fix an obscure bug that just got uncovered in the field.

To that end, the most sophisticated IDE I generally look for is something like PyPE or CodeWright (and CW has oodles of stuff *nobody* needs to do Py code). Using that and liberal copy and paste from other projects, I can usually get a working fascade up within an hour or two. That may not be record breaking speed, but it's a system that works well for me personally :slight_smile:

Before the flying monkeys are loosed upon me, please understand that I think the various code generators are great prototyping tools, especially early on. But since I am completely incapable of trusting generated code, it makes more sense for me to avoid them. Other people find them quite useful. I also have to trot out a disclaimer: I haven't looked into any of them in months, since I have absolutely no curiosity in that direction.

Having said all that, if you absolutely *must*, here are some things I consider important:

1) Support for the wx 2.5 API. That's going to be hard to get right away so at least avoid those that are not in active, nay, *feverish* development. Those that are not *might* get support for the 2.5 API by sometime next year, but that's a huge gamble.

2) Outright enforcement of meaningful naming conventions. "window1" and "window2" and "button3" are pretty much useless when reviewing code months down the road. If you can't find one that enforces, at least find one that *allows* you to override the defaults with meaningful labels.

3) Reproducable and editable code - can you edit the code by hand and re-load it into the IDE? If not, ask yourself what that means if you ever find an obscure bug in the generator that you have to override - and later have to add a button or something. Whether the code generated is pure Python or an XRC file, you should have the option of hand editing if at all possible.

4) *full* support of the wx libraries. If you rely on an IDE to do the heavy lifting, then find that one of the libraries contains a key component that you absolutely *need* but can't access through the IDE, you're going to have to take a crash course in doing it by hand if you're not already fluent at it.

[/Prima donna mode]

Well, you asked :slight_smile:

... "Hey, dad, remember our car?" -- Calvin