Maker Pro
Maker Pro

The software development process.

R

Robert Adsett

Jan 1, 1970
0
John said:
There are several "modern" BASICs around, and they can be quite
readable.

That's rather the point I was making with the reference to more recent
structured variations. They bear very little resemblance to vintage
basic.

FUNCTION PBMAIN() AS LONG

DIM ROM(524287) AS BYTE ' IMAGE WORKSPACE, 4194304 BITS

One of several structured variants. Most of which seem to have
borrowed heavily from pascal, C, fortran etc...

Much easier to read nad write maintainable code in. I'm doing a
project at the moment the uses Visual Basic heavily (it has it's own
set of obscurities).

Not that I think basic is fundamentally any more readable than most
other languages. It's just a matter of being familiar with the
languages cabalistic incantations. It makes a big difference what
language is your original mother tonque. Other language's incantations
tend to look odd in comparison. The one expection, I would definitely
make is APL, that's obscure by most definitions although compact.
Might make a good DSP language come to think of it even if I wouldn't
want to maintain it :)

Robert
 
J

Jim Thompson

Jan 1, 1970
0
PowerBasic is great. It's a serious compiler that lets you do almost
anything that the OS allows.

John

Is it easy enough to learn that I, who hasn't done diddley in software
writing since Turbo Pascal, can handle it? I need to make up some
simulation tools that need GUI's.

...Jim Thompson
 
P

Paul Keinanen

Jan 1, 1970
0
If every program has to start with:

main{

which does nothing, why bother with it?

In many assembler languages a construction like

StartLabel:
instructions
instructions

end StartLabel

is used, in which the label after the "end" statement of the main
program specifies the starting address.

In an even more fundamental level, a mechanism is required to move the
program starting address to the reset vector.

Paul
 
P

Paul Keinanen

Jan 1, 1970
0
Vintage BASIC is readable? Single letter variables and legions of
gotos. Nearly all programs I've seen written in vintage BASIC has been
excreable. Quite unreadable enough to be contenders in an obbsfucated
code contest.

I don't see how you could survive in a obfuscated code contest, unless
you POKE around the BASIC interpreter code or data structures :).

Paul
 
J

John Woodgate

Jan 1, 1970
0
In message <[email protected]>, dated Sun, 10
Sep 2006 said:
It's the "subroutine" that the OS "calls" to run the program. It sort
of means START HERE. The Windows (32 bit) versions of PowerBasic all
start with PBmain() as a declared subroutine, so that poor little
Windows doesn't get confused as to what we want it to do.

Ah, like the 'PDF' in the code at the start of every PDF (everyone that
attempts to work, anyway).
 
J

John Woodgate

Jan 1, 1970
0
In message <[email protected]>,
Vintage BASIC is readable? Single letter variables

They don't have to be single-letter, but it's not much more difficult to
handle (for the programmer; the computer couldn't care one of those
colourful things that people refer to in this context) a variable 'M'
than any of the weird names permitted in other languages.
and legions of gotos.

Well, that's bad programming. In any language.
Nearly all programs I've seen written in vintage BASIC has been
excreable. Quite unreadable enough to be contenders in an obbsfucated
code contest.

There isn't much a simple language can do to stop people writing bad
code. Complex languages seem to encourage it.
 
M

mc

Jan 1, 1970
0
John Larkin said:
Don't I wish. The only way to deliver good code is to assume that the
author is a sloppy idiot whose work must be kept as simple as possible
and checked at least twice.

Exactly. If you underestimate your own intelligence, other people will
overestimate it and pay you big bucks for your high-quality product. If you
think you're a genius, no one else will :)
 
R

Robert Adsett

Jan 1, 1970
0
John said:
In message <[email protected]>,


They don't have to be single-letter,

They did oin vintage basic. Maybe we're using different starting
points?
but it's not much more difficult to
handle (for the programmer; the computer couldn't care one of those
colourful things that people refer to in this context) a variable 'M'
than any of the weird names permitted in other languages.

Not as clear as say nominal_voltage and with a grand total of 26 global
variables (they were of necessity global) you also quickly run out.
Well, that's bad programming. In any language.

Agreed, but there was only that and later gosub which was not much more
than a non-local goto. There really wasn't much choice but to use
them.

There isn't much a simple language can do to stop people writing bad
code. Complex languages seem to encourage it.

Agree with the first part at least. Complexity is in the eye of the
beholder. There needs to be enough constructs available to define the
problem clearly. Very simple languages get in the way of doing so by
forcing you to continually provide the support yourself. Very high
languages get in the way on simpler projects by forcing a lot of
overhead detail not relevant to the problem.

And of course a decent implementation of the language has to be
available for the processor and environment in question.

Robert
 
J

John Woodgate

Jan 1, 1970
0
In message <[email protected]>,
Not as clear as say nominal_voltage and with a grand total of 26 global
variables (they were of necessity global) you also quickly run out.

I learned BBC Basic (after Apple BASIC), which doesn't have that
limitation.
Agreed, but there was only that and later gosub which was not much more
than a non-local goto. There really wasn't much choice but to use
them.

GOSUB gives code that is a LOT more comprehensible than GOTO. But BBC
Basic has PROC as well, which is an immense improvement.
 
P

Peter Harrison

Jan 1, 1970
0
John said:
Ah, like the 'PDF' in the code at the start of every PDF (everyone that
attempts to work, anyway).

Not exactly. The %PDF at the start of a PDF file identifies the file
type and version to the operating system or application just as a
particular type of GIF file might have the identifier GIF89 at the start.

Every executable needs an entry point - some code that is the start of
execution for that program. In a more sophisticated operating system the
task scheduler might load the executable image and expect to have
execution begin at some specified point. Wherever that point is, it has
to be known at load time. In an embedded system, the startup code is
probably much the same for most ROM images and will need to know the
address of the start of the user program.

From the programmers point of view, the start may be the first
executable lines in the source, it may be defined by some directive or
keyword like .CODE or .ORIGIN, or it may be some function with a
predetermined name - like main() in C.

The compiler/linker/interpreter/whatever will then ensure that execution
starts at the specified location. Having a compulsory function like
main() just makes that easier to find.

Pete Harrison
 
J

John Fields

Jan 1, 1970
0
In message <[email protected]>,


They don't have to be single-letter, but it's not much more difficult to
handle (for the programmer; the computer couldn't care one of those
colourful things that people refer to in this context) a variable 'M'
than any of the weird names permitted in other languages.


Well, that's bad programming. In any language.
 
G

Gene S. Berkowitz

Jan 1, 1970
0
Not exactly. The %PDF at the start of a PDF file identifies the file
type and version to the operating system or application just as a
particular type of GIF file might have the identifier GIF89 at the start.

It can also used to detect word ordering (big vs little endian).

--Gene
 
W

werty

Jan 1, 1970
0
You can not write good s/w for some one else .
You end up trying to figure how to make a career
out of that one customer .

Leverage is a bad word , it finishes the job to
early , makes s/w look too easy ......bad for paycheck .
It means everything thing you write helps you to write the
next higher stuff . Macros in assembly might look like
leverage , not very good L' .

A well written modern Forth has ability to create very high
leverage in the
low levels that speed up your app and nix bugs .
Im doin a Forth for ARM 9 .......free .
 
D

David Brown

Jan 1, 1970
0
Joerg said:
Hello Frithiof Andreas,



At the risk that customers become miffed and decide not to buy N+1. Ask
the top brass of some auto manufacturers how that works. Some of them
had to "retire" so they'll have plenty of time for an interview I guess.

In the automotive industry, you have this little thing called
"competition". People can easily chose to go to a different
manufacturer next time. When you have a monopoly in a product field and
related fields, and a free license to abuse it, you can use any dirty
tricks you like to coerce people into buying upgrades and new versions.
Somehow I don't think car customers would be too happy to hear that
their car is only licensed for use in the one garage, and when you want
to park somewhere else, you need to buy a new car.
 
F

Frithiof Andreas Jensen

Jan 1, 1970
0
At the risk that customers become miffed and decide not to buy N+1. Ask
the top brass of some auto manufacturers how that works. Some of them
had to "retire" so they'll have plenty of time for an interview I
guess.

It takes a lot of "miffing" to get people to move their 0wneD
intellectual property from under one proprietary format to yet
another - and even more to move to an open format.
I worked under very formal processes since 1986 (medical electronics).
Has to be that way. It can be done but you will quickly learn that
engraving the functional requirement spec in stone is a necessary part
of that process.

Well, what we usually get stung by is like this real-life example out
of a tome of 48 pages of similar clarity and purpose:

"""
R.xx.xx.x Power Management:

The OS shall not use any power management functions that effects
performance.
"""

This is *also* set in stone - it even carries the impression of being
fashioned by a mad prophet listening to a burning bush. Then we have
to work out what the fschk it was that "God" *wanted* when this was
spouted forth - this is where agile processes and unrestricted access
to the actual end users (not the product managers that came up with
this condensed wisdom) becomes pretty important. Because this will be
going back & forth a lot of times!

Most formal processes do the opposite: They insert new layers of
orcales and preachers to interpret the fleting words of the prophet(s)
and systems of punishments for transgressors and rewards for
syccophants. After a while all output from the official process is
meetings and paperwork. (At the same time two-five guys will do the
entire project while hiding in some abandoned test lab using some
untraceable project number, just like before when the business started
in the garage of one of the guys and they did not have any ISO 9000
certification).
 
F

Frithiof Andreas Jensen

Jan 1, 1970
0
But the fastest way to get it working is to slow down and do it right.
Nah: The fastest way is to work at clarifying the specification until
the job is trivial and can possible be solved with standard
applications, some glue and a GUI slapped over the voids for the
infidel ;-)
 
F

Frithiof Andreas Jensen

Jan 1, 1970
0
Is it easy enough to learn that I, who hasn't done diddley in software
writing since Turbo Pascal, can handle it? I need to make up some
simulation tools that need GUI's.

Give Python a look-see: http://www.python.org - there is already a
large body of Python applications and libraries available that support
numeric applications. Mathplotlib f.ex.

Python applications will, with wery little care, run on Windows and
Unix/Linux if one use the WxWidgets tools for the GUI. This may be
important when you run out of CPU.
 
F

Frithiof Andreas Jensen

Jan 1, 1970
0
mc said:
Amen! Quote for the week!

My other advice is not to disparage error-detecting tools (of any kind) or
error-preventing disciplines as "training wheels." Too many programmers
want to ride without training wheels or without a helmet. But surely the
one thing every programmer knows is his own fallibility.

I tend to write the unit tests first so when the errors go away, it is
done. But this is easy in Python.
 
Top