Why, how and what.
This commit is contained in:
+22
-12
@@ -1,11 +1,18 @@
|
|||||||
# Kapow!
|
# Kapow!
|
||||||
|
|
||||||
Why is it named Kapow!. You can pronounce it and it is short and
|
## Why?
|
||||||
meaningless... like every good UNIX command ;-)
|
|
||||||
|
|
||||||
TODO: Too hard to jump
|
Because we think that:
|
||||||
|
|
||||||
## Rationale
|
- UNIX is great and we love it
|
||||||
|
- The UNIX shell is great
|
||||||
|
- HTTP interfaces are convenient and everywhere
|
||||||
|
- CGI is not a good way to mix them
|
||||||
|
|
||||||
|
|
||||||
|
## How?
|
||||||
|
|
||||||
|
So, how we can mix the **web** and the **shell**? Let's see...
|
||||||
|
|
||||||
The **web** and the **shell** are two different beasts, both packed with
|
The **web** and the **shell** are two different beasts, both packed with
|
||||||
history.
|
history.
|
||||||
@@ -38,11 +45,11 @@ Any tool designed to give an HTTP interface to an existing shell command
|
|||||||
- "Stdout" to "Response body"
|
- "Stdout" to "Response body"
|
||||||
|
|
||||||
Kapow! is not opinionated about the different ways you can map both worlds.
|
Kapow! is not opinionated about the different ways you can map both worlds.
|
||||||
Instead it provides a concise language used to express the mapping and a set
|
Instead it provides a concise set of tools used to express the mapping and a
|
||||||
of common defaults.
|
set of common defaults.
|
||||||
|
|
||||||
|
|
||||||
### Why not tool...?
|
### Why not tool "X"?
|
||||||
|
|
||||||
All the alternatives we found are **rigid** about how they match between HTTP
|
All the alternatives we found are **rigid** about how they match between HTTP
|
||||||
and shell concepts.
|
and shell concepts.
|
||||||
@@ -62,11 +69,11 @@ only)
|
|||||||
|
|
||||||
Tools with a rigid matching **can't evade** *[impedance
|
Tools with a rigid matching **can't evade** *[impedance
|
||||||
mismatch](https://haacked.com/archive/2004/06/15/impedance-mismatch.aspx/)*.
|
mismatch](https://haacked.com/archive/2004/06/15/impedance-mismatch.aspx/)*.
|
||||||
Resulting is an easy-to-use software, convenient in some scenarios but
|
Resulting in an easy-to-use software, convenient in some scenarios but
|
||||||
incapable in others.
|
incapable in others.
|
||||||
|
|
||||||
|
|
||||||
### Why not my good-old programming language...?
|
### Why not my good-old programming language "X"?
|
||||||
|
|
||||||
* Boilerplate
|
* Boilerplate
|
||||||
* Custom code = More bugs
|
* Custom code = More bugs
|
||||||
@@ -74,11 +81,14 @@ incapable in others.
|
|||||||
* Dependency on developers
|
* Dependency on developers
|
||||||
* **"A programming language is low level when its programs require attention to
|
* **"A programming language is low level when its programs require attention to
|
||||||
the irrelevant"** *Alan Perlis*
|
the irrelevant"** *Alan Perlis*
|
||||||
|
* **There is more Unix-nature in one line of shell script than there is in ten
|
||||||
|
thousand lines of C** *Master Foo*
|
||||||
|
|
||||||
Kapow! aims to be halfway from one of the mentioned tools and a general
|
|
||||||
programming language. A limited scripting language. Think of *awk*, 20 years
|
|
||||||
later, for HTTP.
|
|
||||||
|
|
||||||
|
## What?
|
||||||
|
|
||||||
|
We named it Kapow!. It is pronounceable, short and meaningless... like every
|
||||||
|
good UNIX command ;-)
|
||||||
|
|
||||||
TODO: Definition
|
TODO: Definition
|
||||||
TODO: Intro to Architecture
|
TODO: Intro to Architecture
|
||||||
|
|||||||
Reference in New Issue
Block a user