Folks, I've always been of the opinion that topics like macros, and the
programming needed to create them, should be handled in a way that takes
into account the skill and interest levels of the average user.  For
instance, I tend to doubt that most of our users know what Star Basic or
its avatar QBasic are.

As a result, I'd like to see either this part of a Getting Started Guide,
or standalone coverage of the topic of programming in some form of Basic,
be put together.  Here's, an example of the topics I'd include:


Application

Binary

Bit

.bmp

Browser

Bus

Byte

Chip

Command Line

CPU

Database

Default

.doc

Drive Letters

Executable

.gif

Giga

GUI

Hardware

Hexadecimal

HTML

HTTP

.htm[l]

.jpg

Kilo

Mega

Network

Operating System

Pixel

.png

.ppt

Protocol

RAM

ROM

Server

SMTP

Software

TCP/IP

Tera

.xls

In other words, introduce users to basic computer-speak, and to the fact
that
- OpenOffice Basic is a domain-specific language designed specifically to
interact with and automate the features of the OpenOffice application
suite.  Like other third-generation BASIC dialects such as Visual Basic, it
supports both object-oriented and event-driven programming paradigms.

Which brings us to the point of clarifying what object-oriented and
event-driven mean.  Object-oriented organizes software design around data,
or objects;  , rather than functions and logic. Event-driven coding, on the
other hand,  designs software in which the flow of a program is determined
by external events, such as user actions (mouse clicks, key presses) or
system-generated signals (network messages, sensor outputs).   So, an
event-driven program waits for events and reacts to them dynamically.

It might seem like I'm getting far too deep into the weeds.  But I feel
we'd be doing better by our users if we give them at least this much of a
frame of reference.  Simply presenting them with things like this:

LET BOTTLES = 99: LET BOTTLES$ = "99": LET BOTTLE$ = " bottles"FOR A =
1 TO 99PRINT BOTTLES$; BOTTLE$; " of beer on the wall, "; BOTTLES$;
BOTTLE$; " of beer."LET BOTTLES = BOTTLES - 1IF BOTTLES > 0 THEN LET
BOTTLES$ = LTRIM$(STR$(BOTTLES)): LET PRONOUN$ = "one"IF BOTTLES = 0
THEN LET BOTTLES$ = "no more": LET PRONOUN$ = "it"IF BOTTLES <> 1 THEN
LET BOTTLE$ = " bottles"IF BOTTLES = 1 THEN LET BOTTLE$ = "
bottle"PRINT "Take "; PRONOUN$; " down and pass it around, ";
BOTTLES$; BOTTLE$; " of beer on the wall."PRINT: NEXT APRINT "No more
bottles of beer on the wall, no more bottles of beer."PRINT "Go to the
store and buy some more, 99 bottles of beer on the wall."

or this, which would have intimidated the living daylights out of me early
in my working life:

SCREEN 13DIM a(3976) AS INTEGER, b(3976) AS INTEGER, c(3976) AS
INTEGERDIM d(3976) AS INTEGER, e(3976) AS INTEGERcol% = 16: col1% =
16: col2% = 16: col3% = 16: col4% = 16col5% = 16: col6% = 16: col7% =
16: flag = 1: flag1 = 1flag2 = 1: flag3 = 1:flag4 = 1: flag5 = 1:
flag6 = 1: flag7 = 1DO    GET (1, 38)-(318, 62), a    PUT (2, 38), a,
PSET    LINE (1, 38)-(1, 62), col%    IF flag = 1 THEN col% = col% +
1: IF col% = 32 THEN flag = 2    IF flag = 2 THEN col% = col% - 1: IF
col% = 16 THEN flag = 1    GET (2, 63)-(319, 87), b    PUT (1, 63), b,
PSET    LINE (319, 63)-(319, 87), col1%    IF flag1 = 1 THEN col1% =
col1% + 1: IF col1% = 32 THEN flag1 = 2    IF flag1 = 2 THEN col1% =
col1% - 1: IF col1% = 16 THEN flag1 = 1    GET (1, 88)-(318, 112), c
 PUT (2, 88), c, PSET    LINE (1, 88)-(1, 112), col2%    IF flag2 = 1
THEN col2% = col2% + 1: IF col2% = 32 THEN flag2 = 2    IF flag2 = 2
THEN col2% = col2% - 1: IF col2% = 16 THEN flag2 = 1    GET (2,
113)-(319, 137), d    PUT (1, 113), d, PSET    LINE (319, 113)-(319,
137), col3%    IF flag3 = 1 THEN col3% = col3% + 1: IF col3% = 32 THEN
flag3 = 2    IF flag3 = 2 THEN col3% = col3% - 1: IF col3% = 16 THEN
flag3 = 1    GET (1, 138)-(318, 162), e    PUT (2, 138), e, PSET
LINE (1, 138)-(1, 162), col4%    IF flag4 = 1 THEN col4% = col4% + 1:
IF col4% = 32 THEN flag4 = 2    IF flag4 = 2 THEN col4% = col4% - 1:
IF col4% = 16 THEN flag4 = 1LOOP UNTIL LEN(INKEY$)

Our users are more than capable of mastering this and more, but I think it
has to be presented incrementally.

Reply via email to