Files of check-in [d4aa32cbfb]
in the top-level directory
NOTE: This is still somewhat experimental. It will work, is mostly stable and
was used by Holvi.com for years in the frontend. However, elements of the
architecture may yet change in backwards incompatible ways. It is the
result of experimentation and learning over several years and is now
close to how it should work.
What is this?
* To not use traditional class-based object oriented programming, but to use
prototype style OO instead. Objects are cloned, not instantiated (see
the Self language).
* To use some form of MVC patterns for the UI components. But also to
keep things simple and not to build a massive framework.
* Should not require extended backend support or any particular language or
implementation there (e.g. Ruby). It also should not need to take over the
complete browser window (unlike Sproutcore).
* Styling of the UI widgets should mostly be left to CSS. HTML should
mostly be given to storkCore objects, and manipulated, instead of
created by storkCore. storkCore objects attach to already-existing
* Avoid external dependencies as much as possible.
This was developed due to the author being very unsatisfied and
uninspired by the JS UI libraries out there at the time. It seemed
there was nothing unique and imaginative. Many were heavy, trying to
solve everything from OO programming to DOM manipulation and Ajax, or
by requiring the coder to support the full stack used for the
framework, from backend upwards.
In comparison storkCore tries to keep things simple and to focus on laying
out a basic framework for UI development, without solving everything at
once, and thus tying the developer to certain solutions.
What is prototype OO?
It is object-oriented programming, without the concept of classes and
instances. Objects are direct copies of any other objects, which thus provide
prototype implementations for the new object. storkCore is not a collection
of classes, it is a collection of objects. They can be used as-is,
or cloned to create new objects, with possibly added or altered functionality.
language. As demonstrated by many frameworks, prototype languages can
also implement a class-based system, if wanted, but they do not have
Who should I contact with patches/suggestions?
Kristoffer Lawson, firstname.lastname@example.org
Where can I get the latest version?
It is currently hosted as a fossil repository on Chiselapp: