On Jun 6, 2007, at 5:41 PM, Josh wrote:

> Aside from Java, there is one environment that I've used: Rekall.

        I used Rekall, and also its big brother, Black Adder. I found Rekall  
to be *too much* like Access - it really felt like a toy. Black  
Adder, though, felt more like a real development tool.

        Neither Paul nor I set out originally to create something like Dabo.  
We both thought that there already had to be something out there  
already, and while there are several tools that sort of did what we  
were looking for (Black Adder, QtDesigner, GNUe, etc.), all of them  
lacked in some critical areas, and with the exception of GNUe, were  
not open source, so we couldn't make them work the way we wanted.  
Hence, Dabo.

> So, I wonder, how much more work is involved in making Dabo up to  
> par with
> where Rekall was?

        Unless I missed a large part of what Rekall could do, we're way past  
that.

> What about if we add other Python-based components,
> such as Stani's Python Editor, and one of the visual wxPython-based  
> GUI
> editors?  If we do so, we make a giant leap in the right direction  
> with
> regards to easy cross-platform RAD.

        That would work if our goal was to be a wxPython-only product. But  
although we only support wxPython now, our goal is to be UI-toolkit- 
agnostic. You'll notice that we've gone to great lengths to get rid  
of wxPython-specific conventions and naming practices in favor of a  
more universal-feeling API for dealing with UI elements. When we  
eventually wrap Qt and Tkinter, those same APIs will have to be  
translated to native Qt/Tk classes and methods, just as we've done  
with wxPython.

        I tried to adapt wxGlade to work with Dabo classes, and there are  
simply too many places where it assumes that you are working with  
wxPython, and it was almost impossible to get it do anything useful.

        The sad truth is that while code re-use is great, there are times  
when existing code is too specific to be adapted to more general  
usage. This was the case here, which is why I wrote the Dabo Class  
Designer from scratch.

> There is one side-note, however.  Even if we have the best RAD,  
> developing
> in Python may be a turn-off for commercial app developers because it's
> nary impossible to obfuscate Python code.  But, it does open the  
> door for
> open source developers to create cross-platform vertical apps.

        I'm not concerned with the obfuscation question. If that's an issue,  
they aren't going to be looking at Python anyways, whether it's Dabo  
or PythonCard or anything else.

> But there's another twist.  Suppose we were to add a pre-defined  
> set of
> Business Objects to our RAD environment, such as Customers, Vendors,
> Items, Accounts, Invoices?  And, suppose that those business  
> objects just
> happened to come with a fully-featured accounting application, on- 
> par with
> QuickBooks Enterprise as far as maturity, support, and featureset are
> concerned?  And suppose it was all free?

        That doesn't sound like something that would be a part of the Dabo  
framework itself, but rather part of the eventual Dabo IDE that I  
hope to be starting on soon. The Dabo IDE, like the Dabo Class  
Designer, will be written in 100% Dabo code, so it will be easy for  
others to create their own classes, form templates, etc., and make  
them available for others to use.

> Imagine this.  You're designing a new app for your vet's office.   
> In your
> GUI editor, you start with the main window of a blank project.  To  
> create
> a "New Customer Entry Wizard", you simply drag a Customer object  
> from the
> Business Object pallette onto the main window, and you're all set.   
> You
> press the test button, and you can browse customers that are  
> already in
> the accounting app's database with your new wizard.

        That's assuming, of course, that your pre-made business object knows  
the exact structure of the tables in the database, and also knows how  
to connect to it. What I think is a more valuable approach is along  
the lines of the Quick Layout Wizard, which I demo'd in these  
screencasts:

http://leafe.com/screencasts/dataenvironment1.html
http://leafe.com/screencasts/dataenvironment2.html

        The general idea I foresee for the IDE is to define a connection,  
and then retrieve the database/table structures, which are stored  
locally. These can then be used to define bizobjs as well as the data  
entry structures used to display/edit the values.

> I think we can get this functionality, it's just a question of how  
> much
> work?

        Lots and lots. Trust me; I thought that creating a wizard to grab  
data environment information and create a live form would take me  
about 2-3 days. It ended up taking me over a month. Yeah, the basic  
stuff worked great after a couple of days, but there were so many  
tangential issues that are involved in creating a generic tool for  
mass consumption. I could have made it good enough for me to use  
pretty quickly, but to make something that 95% of developers could  
use for their needs is not trivial.

        BTW, I've started a general discussion on ideas I have for the IDE.  
It's really sketchy right now, as I've only had a little time to copy  
some of my notes there, but feel free to add your ideas. The page is
http://dabodev.com/wiki/IDEDesignIdeas

-- Ed Leafe
-- http://leafe.com
-- http://dabodev.com




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/dabo-users/[EMAIL PROTECTED]

Reply via email to