LinuxAsmTools - Small,Fast,Friendly Guide
Tired of bloated programs or complex utilities that
need endless man
pages?
If you want small, simple, fast programs, then help promote this
guideline by mentioning it or using it when writing programs.
Overview of SFF (Small Fast Friendly) guideline
----------------------------------------------------------------------------
* Program must be easy to install, with minimal dependicies.
* Small size is design goal
* Fast program execution.
* Interactive mode if needed. Triggered by absence of parameters.
* Only necessary information displayed to avoid cluttered displays.
* Simplicity prefered to artistic displays.
Not all programs are cantidates for SFF. Games, entertainment, and
some applications will want a different interface. Generally,
utilities
and programs for basic computer maintainence are cantidates for SFF.
UNIX style programs that use pipes to chain commands can still use
SFF by allocating STDIN/STDOUT for UNIX mode and STDERR for
the interractive mode. The program "less" is an
example of how this
can be done. For assembler the program "asmview" is an
example.
Another goal of this guildeline is to slow the proliferation of
dynamic
library files. Currently there are thousands of libraries
and each programing
language tries to create its own library universe. A better
approach may
be a few core libraries and use of static programs. The
dynamic libraries could
be reseerved for common functions that are needed by many
programs.
One rational for reduced size and speed is $$$. This is
most apperant in the business world where time and money are
closely
related. Current programs are often large and
bloated. This costs the
end user time and money. It may be the easiest path for a
developer,
but after we add up all the small costs, delays, and memory
upgrades
the eventual penality is in billions of dollars.
The largest user of computer resources is graphics displays.
Today
many diplays are filled with redundant and confusing
graphics. The
web is an example of "form" dominating "function". In many
cases
it is possible to convey the information faster with
simple text displays
and a few graphics. The arguement given is that
presentation is important,
and computers are idle most of the time.
This arguement fits some users, but those interested in
"function" and getting
work done have other needs. Their computers often are
compute bound and
they want efficient displays and programs.
Design Considerations for SFF
------------------------------------------------
Character oriented displays are efficient. They take less
code and execute
quickly.
Character displays can be used for menus and even buttons.
The key is
to use colors and in some cases fonts.
Generally, simple low level languages produce faster and smaller
programs.
Examples of low level languages are: "C", assembler,??
The user should always have options explained or help
available. Never
leave a user in doubt about where to get help or what to
do next.
The choice of libraries is important. Often a small static
library produces
a small fast program. Beware of libraries where most
functions interconnect.
An unfortunate example of this is some libc
functions. Referencing a print
function causes the library to drag in lots of error
handling and other functions.
In the end you have a large program and much unused code.
Design, design, design. The design almost always
infulences speed and useability
more than any other factor.
|