The actual BetterOS philosophy is the heart and soul of the BetterOS website and
software. It is the guiding principle of BetterOS.org. Here is the formal
definition of the philosophy.
Efficiency: The main goal of all software is to accomplish it's task as efficiently as
BetterOS.org defines Efficiency as follows: The speed at which a task is accomplished and CPU
cycles and power consumed during execution as measured in the end-user
All components must be as efficient as possible. The efficiency of one component
can never rectify the inefficiency of another.
Software should be designed for one purpose. Software which implements unneeded
features inevitably has some negative impact on efficiency.
Customization is generally good, but only when it does not impact efficiency.
The ideal type of customization is compile-time customization because it
can produce more efficient executable code.
Ease of Use:
Ease of use for the end user is important, but plays only a secondary
role to efficiency. It must also be noted that "ease of use" refers only to
ease of use for the end user, not for the programmer.
Software Design: Software is designed for the user, not for the programmer. Software
should be written in a way that produces the best result for the end user. Any
programming constructs or features which are aimed for easier programming should
be avoided. These concepts to be avoided include recursion, abstraction, and
object-oriented programming. Programmer laziness is the biggest problem with
modern programming. Truly efficient software is likely to have a smaller code
size by several orders of magnitude and will be easier for programmers to work
with as a result, rendering object-oriented programming and abstraction
Standardization and protocol adherence is useful for interoperability and
usibility but should be broken if the standard conflicts with efficiency.
It should be noted that the vast majority of standard protocols are inefficient.
Software should be licensed in a way that allows the highest degree of freedom
possible. The Beerware License is officially prefered because it contains no
binding restrictions. A lack of restrictions makes it possible for others to
improve upon the software and produce the best result.
Proprietary licenses should be avoided because they do not allow the software to
be improved upon by others.
Copyleft licenses such as the GNU GPL should be avoided because they place
further restriction on the software which prevents some others from modifying
and improving upon the software.
Decentralization: Central authorities are inherently a source of restriction, and restriction is
typically a source of inefficiency. Decentralization is considered an instrument
Restriction: Restriction is typically a source of inefficiency. Users should be free
of restriction whenever possible. Restrictions placed on the programmer also
result in inefficiencies and should be avoided as well (this includes
Portability: Portability should not be a goal in and of itself, but can improve efficiency
in cases where the underlying system the software relies on is not as efficient
as possible. Portable software can be improved later by building and running
the software on more efficient underlying systems. Final efficiency should never
be compromised for portability, but immediate efficiency might be if it leads to
an increase in final efficiency (the efficiency of the software running in the
best underlying environment supported).
Software design and features which exist for reasons none other than preserving
previous designs or functionality should be removed if there is a more efficient
solution. For instance, black text on white backgrounds is efficent for paper
and pen, but on computer screens, the native color is black, not white, so black
backgrounds are more efficient because it requires less work for the computer to
draw. Black on white designs are tradition carried over from paper based