Skip to content
Snippets Groups Projects
Commit 25d8fdac authored by Jonathan Schöbel's avatar Jonathan Schöbel
Browse files

docs: added rationale section

parent cc814f39
No related branches found
No related tags found
No related merge requests found
......@@ -48,12 +48,15 @@ Toolkit, is a library for creating web applications on a webserver
on runtime. It is written for my personal use, but may be useful for
others.
A rationale about the project can be found in @ref{About}, while
In @ref{About} the projects benefits and use-cases are being described,
and a rationale why the project's existence is deemed necessary in
the way it is, can be found in @ref{Rationale}, while
a short remark about the evolving of the project and it's name can be
found in @ref{History}.
@menu
* About::
* Rationale::
* History::
@end menu
......@@ -84,6 +87,69 @@ at any time, as it is not yet stable. Of course, this will be changed,
once the project reaches version 1.0.
@node Rationale
@section Rationale
For some developers the idea of generating static HTML on a webserver
is not straightforward and doing this with some C library would be
considered a crime. However as I have grown up with less powerful
devices, a static website has a huge usability advantage. It is also
more useful for users using a text-based webbrowser.
Sometimes a website using javascript is also better viewed with a
textbrowser, as a lot of bloat and advertisement can't be displayed
and it can be focused on the information. But most modern webpages are
really annoying to view, because there is so much div-bloat and some
don't show anything at all.
Secondly, I really like semantic markup. I think, that HTML is a way
of marking text in a way, that it is clear (for computers), what type
of information is being displayed. I definitely don't like the idea of
using HTML as a cheap way of describing the GUI of some application.
I also don't like, that work, that really ought to be performed on
a server, is performed on a client.
(This might be actually useful for some offline "web"app, but this is
completely different from an actual website, which is inherently
online.)
This also leads to a website, where URLs can be used by something
different than a user agent.
Thirdly, I like the idea of webpages being readable without a browser.
This is not the case, for webpages containing div-bloat and
definitely not for webpages, which contain nothing besides a linked
javascript file, which is minified and then creates even more div-bloat.
This idea is, why the library is capable of indenting HTML.
Contralateral, I also know that even carefully handcrafted HTML is not
perfectly readable, because tags containing attributes can be quite
long, but on webpages actually containing text content, this is usually
not a problem.
Apparently, these issues influence and support each other,
i.e.@: a beautiful website is also readable in a textbrowser.
C is often criticized, for reasons not exactly pointless, but
eventually I really like C, e.g. for manually managing memory.
Not using generic data structures (which would be possible in C)
slows down development, but enables also to think about how data
is really managed in the memory. Also C doesn't imposes restrictions
on what a developer can do, which is quite flattering.
Regarding vulnerabilities, which is obviously an important issue,
for a program running on a webserver, hopefully, there won't be so much,
but I am not so blindly to assume, that there aren't any.
To help with that, of course the library is tested with valgrind and
UBSan from time to time.
However, often undefined behaviour is invoked (besides for nasty bugs)
on code paths, where something would have to be caught independently
from the used programming language. For example, if in python an
unconsidered code path is executed, there might also be an exception
(if you are lucky), which might also yield a website containing data
not intended for the public. Also the trickiest bugs are always in
a way, where type checking doesn't help much, because the logic itself
written down in the programming language is relying on wrong
assumptions.
@node History
@section History
......
......@@ -36,7 +36,7 @@ FILE_NAME_3=84;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fp
FILE_NAME_4=73;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2FMakefile.am;0;8
FILE_NAME_5=19;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fmain.c;0;8
FILE_NAME_6=85;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2FMakefile.am;0;8
FILE_NAME_7=1679;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fsefht.texi;0;8
FILE_NAME_7=5722;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fsefht.texi;0;8
FILE_NAME_8=3883;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fcommit_messages.txt;0;8
FILE_NAME_9=1867;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2FMakefile.am;0;8
FILE_NAME_10=18;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2Fsefht%2Fcms.c;0;8
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment