Re: Open source alternative for MsAccess?

From: Bernd Bollman (bernd_at_hotmail.com)
Date: 06/15/04


Date: Tue, 15 Jun 2004 17:49:24 +0200

David W. Fenton wrote:
> Bernd Bollman <bernd@hotmail.com> wrote:
> > [...Microsoft Access...] For a new user
> > with prior experience in other better designed systems it appears
> > completely nonsensical.
>
> Please name some better-designed systems

C, C++, Java and lots more.

> that are the same kinds of
> tools:

I've already stated that I respect the fact that Access provides some
unique features and is of great value to the few who happen to know
it well enough. I did not say that there are better alternatives. All
I said was that its design is total bull*** and its a pain having to
work with it and adapt to its confusing inner workings _if_ you have
had prior experience in a well designed programming environment _and_
you are able to recognize and appreciate the beautifulness of good
structure and desgin if you face it.

> Visual Basic is bad-mouthed because anybody can write it.
>
> I have yet to see anyone provide any technical reasons why VB is
> subpar in any area (including performance, BTW).

I recommend you take a look at one of the aforementioned languages and
it will open your eyes.

> >> I'd like to know what about the documentation you see as
> >> problematic.
> >
> > It reflects the (IMO) bad design and opaqueness.
>
> I don't see that, either, so you're just blowing hot air, so far as
> I can see. If you can't provide specific examples to support your
> assertions, then I feel safe disregarding them.

I dont want to convince you, I was just stating my opinion. You can
think whatever you want, I dont care.

But to not look like a stupid MS-bashing troll Ill show a view of
how it appears to a new user wanting to learn VBA.

Ok, I click "Help"->"Microsof Access help" (sorry if the entries
are named different, Ill try my best translating correctly).
"Programming in Visual Basic" looks good, "Microsoft Access Visual
Basic Reference" too. Im welcome with a graphical overview of the
object hierarchy. So it looks like its an object-oriented language.
Nice. Next come listings of SQL and VBA functions, "Whats new" and...
Oh, "programming concepts" sounds like important basic information.

But what a disappointment. It starts right away with _extended_
concepts, which in turn begins with a discussion of avoidance of
name conflicts with modules, procedures and objects before these
language elements are even briefly described. But okay, its
called "*extended* programming concepts". The following section
has a funny name: "click on activex controls" :)
Of course this and everything else under "programming concepts"
serves no useful purpose for a beginning VBA programmer.

Next in the "Microsoft Visual Basic Reference" come alphabetical
listings of objects, methods, attributes and events. If this
section would be called "Microsoft Visual Basic Class-Hierarchy
Reference" it would make much more sense because the language
proper isnt even remotely touched.

Further down in "Programming in Visual Basic" we have "Microsoft
Office Visual Basic Reference" (which is also duplicated at the
top level). Now whats the difference? From looking at it I cant
tell and it also only provides the same useless object, method
etc. listings as "MS A. VB Reference" does.

The next point is "Visual Basic - Conceptional Topics". Its a
collection of arbitrary but very interesting topics like scope
and lifetime of variables. Sad I dont even know how to declare
one (do I even _have_ to declare it?). Oh, after looking more
closely at this alphabetically sorted (!) list I found "Declaring
variables".

Ok, apparently we have function local, and global variables
which are declared by using "Dim <var> As <type>". "Public"
instead of "Dim" in global declarations provides us with
variables that can be used across modules. Now an overview of
all available types and declaring multiples variables in a single
statement. If we leave out the type it defaults to "Variant".

[experienced programmer stops and thinks for a while about how
the compiler (or interpreter? dont know...) handles variables
that can hold objects of any type and to what code constructs
this could possibly lead]

We also have module local variables by using "Private" instead
of "Dim". Oh, its essentially the same! Now one of them is clearly
superfluous, isnt it? We can also use "Static" instead of "Dim"
to get variables that keep their value between calls. Huh? I can
call a module?

What comes next will scare away any serious hacker if he has
managed to get to this point at all. Variables are implicitely
declared by just using it in a statement (...) and you can even
completely change the meaning of the code by using "Option
Explicit". So there seem to be practically two fundamentally
different syntaxes with the same name - VBA.

I will stop here, I think its enough. This was just a single
section and it goes on like this. I still dont know how the
input text is separated into tokens (if it is at all) and what
are the lexical elements of the language. Can it even be
represented by some formal syntax description language?
And concerning the documentation - its just totally confusing
and very hard to find anything.

> >> Nonetheless, I'll take my "opaque monolithic Monster-Bloatware"
> >> over any of the alternatives any day.
> >>
> >> And I'll probably be able to finish the same project in 1/2 or
> >> less the time it would take anyone working on any competing
> >> platform.
> >
> > May very well be. I would never in my life touch Access again.
>
> Your choice, but that choice mostly seems to based on your own
> ignorance of how to use the tool more than it is on any actual
> deficiencies in Access, which you seem able to identify in general,
> but not in the specific.

I hope I've made my point clear now. And I hope you appreciate
my efforts. You probably dont know how hard it was for me to
start a Windows system, use it, navigate the Access help and
restrain from using animal language in my posting while describing
my experience :)

cheers, Bernd