Source

Kephra / lib / Kephra / Philosophy.pod

Full commit
=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 ...,
is gigantic, slow, has a lot of dependencies or a restricitve license
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: it contains a few flexible tools solve the fundamental tasks thoroughly.
Only difference: for the most common tasks we already added some ready-to-use
functions that combine several of these tools.

Consequently are "introspection" and "shell integration" more than buzzwords to us.

=head3 Graphical

To search for new and advanced graphical input and display methods was one of
the original reasons for Kephra being founded. Graphics allow a much higher
information density than text, which is very needed in a software world that
is getting ever more complex. 

=head3 Information-Centered

It may start with small text snippets you want to set aside and save for
later reuse. But we believe that editor can assist their users much more
in creating, sorting, storing and sharing their relevant data. Even while
normal usage the editor can remember details to prevent repetitive work.
It's important to us seeing you as the owner of all your data. 


=head2  DISCLAIMER

Like platons politeia, this document descibes the ideal state of version 1.0.