storkCore

Top-level Files of trunk
Login

Files in the top-level directory from the latest check-in of branch trunk


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?

storkCore is a Javascript UI framework which attemps a few things:

* 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 
  HTML.

* 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.

Javascript (unlike Java) is, in fact, a prototype programming
language. As demonstrated by many frameworks, prototype languages can
also implement a class-based system, if wanted, but they do not have
to. See:

* http://en.wikipedia.org/wiki/Prototype-based_programming
* http://selflanguage.org/_static/published/self-power.pdf
* http://en.wikipedia.org/wiki/Self_(programming_language)


Who should I contact with patches/suggestions?

Kristoffer Lawson, setok@setok.co


Where can I get the latest version?

It is currently hosted as a fossil repository on Chiselapp:
https://chiselapp.com/user/Setok/repository/storkCore/home