Re: Development of cross-platform GUI for Open Source DBs

From: "Tomi NA" <hefest(at)gmail(dot)com>
To: "Ritesh Nadhani" <rn(dot)mailing(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Development of cross-platform GUI for Open Source DBs
Date: 2006-11-25 11:55:29
Message-ID: d487eb8e0611250355y3a021ffid973ea5a3c27135b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

2006/11/25, Ritesh Nadhani <rn(dot)mailing(at)gmail(dot)com>:
> Hello all
>
> Let me introduce myself first. I am the ex-lead developer of SQLyog
> (one of the most popular GUI for MySQL which is Windows only and runs
> on Linux through WINE, more info at http://www.webyog.com)
>
> ===
> New Project: wxWidgets based cross-platform GUI for Open Source databases
> ===
>
> ===
> Motivation
> ===
>
> I have recently shifted to US to study for MS (and hopefully PhD in Univ
> of Iowa). I have also shifted to Mac OS X as my primary usage machine
> (after lifetime of Windows devotion).
>
> As part of my coursework, I work with MySQL and PostgreSQL
> extensively. I searched but couldnt find any GUI which has similar
> power like SQLyog by any means. I have tried (and have tried before
> also) various GUIs for respective databases but somehow the features
> in them are restrictive and are not powerful enough for developers
> like me who writes lots of SQL queries and needs to get things done
> fast.
>
> We can say that we already have enough GUIs for all open source
> databases (open source as well as commercial) available in the market
> but are they powerful enough to suffice the needs of an experienced
> SQL developer as well as newbies. The top three problems with existing
> GUI managers are:
>
> - Most of the usable/powerful GUIs are not open source which is one of
> the most powerful motivation for us to look for an alternate solutions.
>
> - 90% of such GUIs are DB specific. It becomes very hard for developers
> who work with multiple DBs as part of their work. It forces them to
> learn different user interface/softwares to work with the respective
> databases.
>
> - Of the few multiple-db GUIs, 99% (or probably 100%) use JDBC/ODBC
> layer to connect and work with the databases and JAVA or some other kind
> of high level toolkit/language to develop the GUI. This results in
> applications being bulky and slow and never able to provide the speed
> that a low level C/C++ client API provide and are supported by all of
> the standard databases.
>
> A simple to use GUI for all databases
> ===
>
> The basic idea behind such a GUI is to develop a small footprint,
> extremely fast, multilingual, cross platform administrator/development
> tool for databases. One of the basic requirements thats this GUI will
> fulfill is to allow a developer to efficiently execute/plan queries and
> allow an administrator to quickly do jobs like backups/restores etc.
> with fewest mouse clicks and across different databases.
>
> Once the basic architecture has been set, I plan to extend it to support
> advanced features like MS Access like form development, query builder,
> scheduled backups, data synchronization, configuration management,
> replication manager, user manager etc.
>
> wxWidgets
> ===
>
> Since last couple of years, wxWidgets (formerly wxWindows) has
> transformed itself into a highly powerful cross-platform GUI library
> which when compiled gives the native look and feel of the host operating
> system. This is something which other libraries like Qt, JAVA lack.
>
> More info about wxwidgets can be found at: http://www.wxwidgets.org.
>
>
> Yet unnamed DB management environment
> ===
>
> I dont have the time nor the resources to do everything by myself. As I
> see, there are too many things which are best distributed among
> people/developers who are good at those specific things. E.g. I will
> require good graphics designer to develop the icons for the tool, web
> developer to keep the website updated, db specific veterans to best code
> individual db management code etc.
>
> Also, it would be a great way to learn some programming and show it as
> part of your undergraduate/graduate project development requirement :)
>
> Is it viable?
> ===
>
> I am not too big a fan of reinventing the wheel or work on a project
> which will go bust in couple of years? So what I want is from you people
> a little initial idea and discussion about such a tool. Is it viable? Is
> it OK to develop such a tool? Will people use it?
>
> I am cross posting this to various db mailing lists as well as relevant
> newsgroups to get maximum idea about it. You can also contact me
> directly at riteshn(at)gmail(dot)com if you would be interested.
>
> Waiting for your comments.
>
> -- Ritesh
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
>

The generalities of the project make sense to me: there really isn't a
very good tool that is cross-platform, cross-database and has a lot of
advanced options.
The feature list of sqlyog is rather comprehensive, although I think
that the missing relationship diagram editor leaves an obvious gap in
the company of the other advanced features.
Do I have time to contribute to the project? Depends. I don't have
time to hack the source, but do have a lot of advice to offer (what
people call consulting and usually charge a hefty sum for :)).
I don't think you'll like/agree with the bulk of my advice, though.

First of all, I'm sure that wxWidgets and also Qt and GTK+ are all
very nice frameworks to work with. C++? Great language, but is it the
right choice for this kind application?
As I don't intend to do any actual coding on the (possible) project I
really don't consider myself to have a vote on the subject, but it
seems to me a bit silly to go down that road when there's the NetBeans
platform and Eclipse RCP to build on.
Why sentence the programmers to writing another integrated help
system, actions and window management framework, options management,
updates management, modular architecture and module management and
message passing framework, just to name a few of the obvious
advantages of the two platforms?
As far as performance is concerned, a vanilla NetBeans-platform-based
application (i.e. justh the platform, no modules) uses about 5MB of
RAM and loads, well, not as fast as snapping your fingers, but fairly
close.
A quake2 engine was written in java and is within 20% of the framerate
of the original C-based game. And the mere mentioning of a jdbc driver
in the context of performance...I don't know...if you had thousands of
queries per second it might have made me take a pause for thought, but
I just don't see that kind of action happening in this kind of
application.
What's more, developing such a DB management tool as a set of NetBeans
of Eclipse modules leaves the option available to all the people using
one of these IDEs to complete their database tasks from the same IDE
they do their other programming in: it's a nice feat.

As for portability, I assume not a word need be said.

Native look and feel? Well, 1.5 swing-based apps don't offer a native
look and feel (although they can come fairly close), but the eclipse
UI is completely native and from what I've read, jdk 1.6 swing
applications will use native UI controls (at least on Longh...sorry,
Vista).

The fact that java is to be open sourced and that every new generation
of the jvm is really significantly faster (since 1.4) doesn't leave a
C++-based app much to boast.

On the other hand...if I were in your shoes, I would be very hard to
talk into dropping a language I know if favour of another. ;)

Have a nice weekend,
t.n.a.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Allison 2006-11-25 17:14:11 Re: indexes
Previous Message Thomas Kellerer 2006-11-25 10:15:29 Re: Development of cross-platform GUI for Open Source DBs