1. Herbert Breunung
  2. Kephra


Kephra / lib / Kephra / Philosophy.pod

=head1 Kephra Philosophy

=head2  Main Principle

... is simply freedom. Because even programmers are human beings in the first
place and inherently want to feel free, joyful and creative (productive).

And you are not free if it doesn't run on your operating system ...,
or is gigantic, slow, has a lot of dependencies or can't just be copied around.

The usage is also crippled if important features are missing or
you have to learn something you don't want to in order to get your work done.

The beginner is glad to do his stuff by simple and visually-assisted methods,
however experts are happiest when they control every detail and achieve their
goals as fast as they can think.
True freedom consideres both types of users and a smooth path to become an expert.

Freedom also means not to get stuck in old ways,
but combine the best (not the most popular) ideas available and not being
afraid to make own inventions.

And the full delight can only manifest if it's beautiful on every level. 

=head2  Strategies

=head3 Simple

Aiming toward less code and only necessary functions is the first rule
for several reasons. Yes it is the basis for a small, fast, clean and maintainable
program. But also the only option since our dev team is frankly basically just me.

=head3 Mature

Because half baked solutions are not really enjoyable,
we try to develope our features to functional and visual perfection
before we publish them in a version marked as stable.
Thats why Kephra has very few open construction zones at a time.

=head3 Complete

All the tools you need should be on one workbench.
Either provided by Kephra or well integrated, originating from the operating
system or third party software. This enables uninterrupted workflows and
functions (or macros) that solve complex tasks at once.

Kephra makes it easy to integrate your favorite program too.

=head3 Individual

An editor should fully match all preferences of its user,
that spends so much time with it.
Several types of communication with the program (like notepad, vi, emacs) we
plan to support and most features and visuals can be configured and disabled
via a typed commands, a dialog and config files.
Yet many setting can be changed most quickly in place of their display by mouse.
For deeper modifications use the extensive plugin API, that can be even
left behind (with risk). There is no special plugin language - it's all Perl,
which also supports your individual coding style.

=head3 Unix-Like

To achieve the proposed simplicity and power Kephra has a similar design like Unix. 
That means: a few flexible tools can solve fundamental tasks
fundamental tasks
drop sugar 
An extention also alowwes communication with the editor a la vi or shell.

=head3 Graphical

has yet to be invented 

that integrate very well with the rest of the program.

For most radical changes - send a patch. And if that gets rejected - make a fork.
The license (GPLv2) gives you all rights you want, except
to publish your alternating program with less rights for others.

=head3 Information-Centered