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.




Fork me on GitHub