Active
Objects
are said to be active if they have
side effects,
passive otherwise.
This notion depends on the space of variables considered as
meaningful: a pure function
Administration
The fact of managing information about people or computer objects,
that is not directly needed as an important result,
but is useful to achieve proper scheduling.
The institution or software that manages it.
The right attitude is to bypass administration
when it is not needed (that is, most of the time),
but to cooperate with it on a regular basis, because it can be helpful.
Always remember that administration is to serve man,
not man to serve the administration.
The role of the administration is not to decide, only to
make information available to all (primarily concerned people).
Decisions should be deduced straightforwardly by laws from collected
information, and may be applied by the administration or other institutions.
Of course, the administration must be designed according to the previous
principles, or else the system is heading toward
Centralization.
Centralization
Centralization is the fact or tendency to have a one decision center
that everyone will have to refer to and obey, a place where all activity
is concentrated, a software portion that all programs jump into.
It means that the center will be responsible for everything to go well.
Centralization is the simplest design: have a one lord who will rule
the land, and transfer all worries, all responsibilities, onto him.
Even if perfectly honest all well behaved, the central referee is limited in
the amount of information he can handle, and the speed with which he
can handle it. Soon, he won't be able to treat all the requests that
everyone has to address him. So he'll demand always more and more power
to be able to complete his duty; and people will have to wait for his
decisions, and obey to his orders. And when he doesn't have time at all,
people will have to do things themselves, without any help from him, and
sometimes despite his irksome and inexpert administration, or even against
his fascist police.
He can be a dictator, or a central administration;
as far as computing is concerned,
He can be a hardware or software "vendor",
a "server" computer or application,
or an operating system "kernel".
The problem is not his lack of kindness and good will,
even if with heady power and false-hearted sycophants,
He may lose all occasions to show it.
The problem is that even if He remains upright,
a system based on centralism heads straight to disaster.
See
Dictatorship,
Communism,
Democratic Centralism,
Server,
Kernel,
Vendor,
Monopoly,
Computer industry,
Committees.
Committees
Committees are a most useful way to take technical
decisions. Technicians with different points of view meet, discuss, and vote.
However, there is a great danger about committees:
firstly, when some people not being represented and defended in the committee,
the committe will completely disregard those people's interest,
perhaps vowing them to a certain death, or to eternal doom.
Such committees may share out anything subject to them as a loot,
and define private grounds for committee members to establish their
domination upon.
Then, when the committee members do not feel bound enough to the interest
of people they supposedly represent,
so they will start doing work for themselves;
they will issue irksome pernicky rules, because it makes them feel
useful and knowledgeable;
and they will divide their work into an arbitrary hierarchical layering,
because it allows them to summon more subcommitees made of even more idiotic
eggheads than themselves, and feel superior.
That's why any committee should be strictly and controlled,
its members democratically elected or dismissed,
and its debates and decisions never secret; that's also why committee
members should be considered as responsible of any harm they may cause.
Only that way can those serious traps be avoided; for committees are
needed whenever technical decisions are necessary.
See
Administration,
Computer industry.
Computing Freedom
The freedom to use computers according to one's personal needs and
tastes, and to undertake any computer work that won't deprive other
computer users, while no one will be allowed to deprive anyone else
likewise. It is freedom to have access to all existing common computer
knowledge (computer education), and to freely reuse it at will.
It is freedom to pay or to be paid for computing services at a rightful
price as determined by the fairest and finest competition.
See Computing Liberalism.
Computer Liberalism
It's the application of Liberalism.
It proclaims that only through
computing freedom
can the computing world achieve power, performance and reliability.
This means computerware consumers must have access to real information,
not advertisement or propaganda, and be free to discuss computer problems
and acquire computer education.
This means that there must be the fairest possible competition
between computerware providers: no single vendor or vendor trust
should ever have any monopoly;
This means
This freedom is being able to adapt and extend the system
according to one's needs and taste, while still reusing existing parts
of the system one already has It is the freedom not having the choice
to stick with the lame tools currently provided by a company or rewrite
everything from scratch. It is the freedom not being subjugated to a
computer vendor ever after you finally choose between those monolithic
software. It is the freedom not having to buy ever bigger computers to
support ever growing packages that contain ever more features you do not
need and not the ones you do need.
at the finer possible grain of software. This theory of freedom constitutes
some kind of computer liberalism. It is fight for individual freedom against
undue company (or worst, state) monopoly to achieve the natural selection of
the best for the greatest welfare of all. The arguments for liberalism have
been sufficiently developed since the late eighteenth century, so that we do
not have to repeat them extensively. We just point out that the same
arguments apply to the computer market as well as any market, and that by
providing a most secure fine-grained modular system, the fairest possible
competition and greatest liberty is made possible.
Computer Industry
Considering the
Computing System
as a whole is the most natural thing;
but for mostly commercial reasons,
this is not what the
computer industry
does and provides to its purchasers. Instead,
the computer industry imposes a layered paradigm where
-
an Operating System,
maintained exclusively and jealously by a computer vendor's team,
provides the lower layers of interaction with the machine,
while
- applications are secretly written by software corporations,
that
- programs are privately developped by engineering companies,
that are used by
- end-users, customers who can only choose which master they
will be the slave of.
This paradigm, based on secrecy and coarse-grained delivery,
generates wondruous revenues to computer corporations,
while the customer, who must pay for these or be a pirat,
obtains very low service quality:
- corporations and intermediates earn a lot of money at each step of this
commercial chain;
- because of secrecy, they also can impose arbitrary fees to those in the
next link of the chain to use their products;
- by imposing secrecy, they forbid any kind of lawful competition
based on rightful arguments and objective comparison;
- by providing coarse-grained software,
they can sell the same fine-grained modules several
times to the same customer, sometimes without bringing any new modules
really useful to him;
- by maintaining this secret clustering, they forbid third parties
to provide replacements or extensions for their flawed tools, but by
short-circuiting them;
- by the former, they a brake on computer progress, and deprive
customers from reliable computerware adapted to their needs;
- by maintaining this system, they also create monopolies,
which allows them to impose arbitrarily high prices disproportionate with
actual service rendered and development cost.
This system recalls that used in the mafia, some sects, and actually is
the same as in any hierarchically organized mob.
Of course, all this layering is purely arbitrary, with no efficiency or
design ease reason.
The victim is the next link of the chain (sometimes
all links, when a corporation is present in the whole chain), and
ultimately, the customer.
Also see
Computing System,
Computing Freedom,
Computing Liberalism,
Operating System,
Programmers,
Users,
End-Users.
Computing System
A computing system, as the name says, is a system that
allows men to do computations. Do not mix it up with a computer system
which is may be any kind of system based on a computer. A computing
system is for dynamic human interaction, so that men may express their
creativity, and adapt to an ever changing world.
It encompasses all of a computer's hardware and software
that make it interact with the external world of human beings.
Also see
Tunes,
Operating System.
Computing World
The computing world, as the name says, is the concept
encompassing all computers in the world, that are considered
as being running different versions of a common
Operating System,
and linked to a global network.
In fact, using our OS definition, the global OS
is the greatest common divisor of all existing systems (that is, not much),
and even computers remotely linked to an actual network through weekly,
monthly, or yearly floppies is considered as being on the global network.
God
Also see Holy.
Grain
The grain of a system is the minimal or typical size of objects this
system can handle. The larger this size, the coarser the grain;
the smaller this size, the finer the grain.
The coarser the grain, the more expensive it
is to create, handle, maintain, dispatch, objects.
Thus, computing liberalism tells us
that to have a system that adapts better, you must reduce the grain as
much as possible.
However, handling objects may involve
administrative
overhead.
Thus, to achieve a better system, you must also reduce the administratrivia
together with the grain, wherever possible.
Traditional Operating Systems have a very high grain
(the basic object size being a file, and the typical packaging grain being
the huge "application"), thus yielding poor performance and adaptability.
The unsecure C language forbids a smaller grain. As long as
OSes will use such a language, the
computer industry is bound
poor results.
Holy
That something be holy shall mean that it is absolute and does not
depend on any terrestrial thing.
Like all english words, this one is specific to the english language,
and no other language has a word with exactly the same pronounciation
or meaning. All that to say that no word is holy. Likewise, anything
a man can see, conceive, or express, is terrestrial, so no holiness
exists that a human can see, conveive, or express.
If you don't want to apply this to the human world, at least you can
apply it to the computer world, where nothing is holy as everything
was decided and can be changed by humans.
Happily, things do not need be holy to be useful.
Also see God.
Isolation
When a computer object is not secure,
it must be isolated from possible sources of failure.
In traditional OSes,
processes are so
unsecure that
the system has to completely, systematically paranoidly isolate processes
one from the other.
This isolation is like having people put in quarantine to prevent possible
diseases to propagate. But it also prevents people from interacting one
with the other (i.e. to have any social life), and finally people have to
cheat it to live at all, and it then loses its few advantages after having
wasted a living.
Kernel
Some central part in a software program.
As any centralized bloat, it turns out to be easier to design,
but completely unefficient to use.
Also see
Centralization,
Microkernel.
Liberalism
In its original, nineteenth century sense,
liberalism is the theory which shows
that in any evolving system, there is a natural
selection by survival of the fittest to that system's constraints,
so that to achieve the best state possible,
you must allow the fairest competition,
and the broadest liberty, so that
people may automatically adapt to all of the system's
natural constraints.
Liberalism is commonly applied to economy,
where it tells that to achieve prosperity,
you must firstly
allow the fairest (not the wildest) competition between companies
to have the quickest adaptation.
Particularly, information should be freely available,
and discussion freely allowed, so that people may compare and choose;
choice should be free, and not based on prejudices.
And secondly, you must
encourage free enterprise (not free crookery)
and small businesses when possible, to achieve the finest
adaptation.
Particularly, trusts and monopolies should be fought whenever
they eventually appear, and stricly, democratically,
controlled when they are inevitable.
Liberalism does not apply only to economy,
as show the works of John Stuart Mill in the moral sciences,
or Charles Darwin in the natural sciences.
Some even speak about economical or biological Utilitarianism,
or moral or social Darwinism !
In the Tunes project, we apply those ideas to the
field of computing systems, that is, we defend
Computing Liberalism.
All this has of course nothing to see with the "liberal" parties
of various countries, who claim to defend the name, but seldom the ideas,
and never the according policies.
Man
Some fragile machine that takes several tens of years to manufacture, with
a low success rate, and only seconds to get definitely out-of-order.
The most powerful and most versatile machine known to date, however.
Meta-
A prefix that means beyond, or transcending.
The Webster says:
used with the name of an discipline to designate a new but related discipline
designed to deal critically with the original one (e.g. metamathematics)
We also apply this prefix to objects in the meta-discipline,
e.g. if the discipline deals with bars, the meta-discipline
will deal with meta-bars.
Meta-Space
An object is defined in a space, in a context. This space itself is defined
in its own space or context, which we name the meta-space.
Microkernel
As people understood that kernels only introduce
overhead without adding any functionality, they
tried to reduce kernel sizes as much as they could. The result is called
a microkernel, which is pure overhead, with no functionality at all.
The latest craze in Operating System research is to
boast about using a microkernel. Note that the size of the OS is not
reduced at all, as the functionality has only been moved elsewhere.
Nucleus
See
kernel.
Object
a Unified concept to manipulate
computer abstractions. The name object is commonly used
for that, although the first unified frame to manipulate
computer abstractions, namely LISP,
used lists.
Look out the fake:
It's also a fad to be "Object-Oriented" !
Object-Oriented
There's a craze about any new software claiming to be
Object-Oriented.
But if you ask people what it means to be "OO",
most won't be able to tell anything,
because it's only a craze.
The meaningful idea behind this dull fad is
that of having a unified
way to manipulate objects,
but few understand it even partially, and even
fewer are those fully conscious of what it means.
For true OO languages, see
BETA,
SELF,
or Dylan.
For languages with true OO extensions, see
LISP,
FORTH.
For false OO languages, see
ADA,
C++,
Visual BASIC.
Open
An open system is a system that is ever subject to
dynamic enhancement, to external suggestions, whose development team
is ever awake and open-minded
(i.e. receptive to arguments or ideas: IMPARTIAL).
The only meaningful criteria for an open-mind, besides immediate interest
(see expediency), is
rationality
and selection through free competition
(see Liberalism)
Open Development
Open development means that a project is constantly publishing
its result and accepting feedback. Liberalism tells us that if an
open-developped project has got enough publicity, it will succeed better
than any other one. As an example, Linux is a project under open
development to write a free implementation of the POSIX specifications
(i.e. a Unix clone), and is quite successful as being the most popular
and supported OS by internetters. Tunes is committed in open
development, though its goals are quite different from Linux: Tunes
should design a new system before to implement it.
Operating System
In the Tunes project, any common cultural background
between different computers.
In the false-hearted paradigm imposed by
computer industry,
an arbitrarily delimited part of a
computing system
that only deals with limited, first-order, low-level, services
while inducing severe "context-switch"
overhead for every single operation.
Overhead
Unproductive expense.
Administration is known to produce a lot
of overhead.
Passive
The opposite of active.
Persistence
The quality of being
persistent.
Persistence is a natural concept, according to which an
object
cease to exist only when nobody thinks about it anymore.
The opposite concept, as proposed by all "industry standard" operating
systems, is that the users are forced to explicitly force their data to
be "saved" and "restored" to and from persistent media, in unsafe binary
files. This most ridiculous concept results in systems being difficult,
slow, and error-prone to use at all levels, so that no one is satisfied,
except the #$&*"%! who sell those systems.
Persistent
An object
is said to persist, or to be persistent if it continues to
exist and keeps its state accross multiple sessions or shutdowns of
the computing system.
See Persistence
Process
A process is a very
coarse-grained
active object.
We know from computing liberalism
that coarse-grain is bad, so that processes should be
avoided when possible.
However, in traditional systems, processes are the basic
execution unit, and are very coarse-grained. In fact,
traditional systems use
unsecure languages (like C),
and thus all programs obtained are intrinsicly unsafe, and thus
need be wrapped into some paranoid protection frame for the system
to be secure at all; this frame is the
process.
Programmer
Someone who programs a computer, who gives orders to a it.
In traditional systems, users are opposed to
programmers.
This is not the case in Tunes; everyone works according to his own
knowledge and proficiencies, and produces or consumes objects independently
from these objects' technicality.
Pure
That has no
side effect
Thread
The standard model for computing is to consider a computer as a sequential
machine (which single CPU computer actually are). Parallelism is then
modelized (and simulated/faked inside sequential computers) as multiple
sequential machines interacting; each virtual sequential machine is named
a thread of execution.
In traditional OSes, threads are light, user-rewritten versions of
the OS's processes.
When programmers see that their OS's process concept is too bulky,
that their OS's scheduler introduces too much overhead, that they
need a potentially high number of asynchronous procedures that share data
quickly and don't overflow the "process table" or do numerous system
calls, they use thread packages to cope with it. Thread packages are
unsecure dirty (but sometimes necessary) hacks.
Tunes
Actually, Tunes means
Tunes is a Useful, Not Expedient, System,
which name refers to J.S. Mill's Utilitarianism.
The philosophy behind Tunes is deeply inspired by J.S. Mill's
works.
Unified
The Tunes project proposes that there be Unified frame to
manipulate objects;
that is, all computer abstractions are equal,
and may equally be subject to any operation,
without any arbitrary prejudice or discrimination,
including "code" vs "data", or "persistent" vs "transient".
The unified concept for computer abstractions may be named
Object,
or term,
or list,
or pattern,
or God,
or whatever; it doesn't matter.
What counts is the Unity, or Simplicity that
flows from this unified point of view, which frees computing from
stubborn constraints; it abolishes prejudices about the objects.
This is the meaningful concept behind the "Object-Orienting" craze.
It means that all computing objects are made equal in front of to man.
See SELF......
Unsecure
The opposite of
secure
User
Someone who uses a computer or a piece of software, or whatever, in any way.
Opposes to a provider of this whatever.
Note that we at the Tunes project make no arbitrary distinction
between using or programming. Programming is using computer
programs, compilers or interpreters, so programmers are users (they also
use a lot of other programs, as most computer users). Conversely,
by interacting with a computer, any user actually programs, even without
knowing it. Hitting a key is some trivial kind of programming, but it is;
writing a short macro is programming; filling a form is
programming. Thus computer users are programmers.
Of course, there are different levels of programming, more or less
proficient programmers, programmers with more or less technical,
theoretical, or practical knowledge; there are infinitely rich different
ays of using a computer.
But you may not cut a clear line to differentiate "users" from
"programmers", or "programmers" from "system developers" that would not
be purely arbitrary and without any intrinsic meaning
(in mathematical terms, we'd say the space of computing levels is connected).
Thus, the system must provide an equally integrated interface to all possible
computing abstractions the users-programmers
(the term "user" will be used herefrom in this text to encompass any
kind of using the system)
We must distinguish the current computer technical proficiency of a
computer user from
his being providing or consuming information to others.
One may provide information such as text, sounds, images, without
computer programming proficiency, or write very complex programs without
ever publishing them. Conversely, one may use (read) a computer document
See Programmer.