Bloom is a light-weight setting
for making web-sites, content management systems and small to medium
web applications.
Bloom (short for
web-loom) is text/file-oriented as opposed to database-centric,
although data can be stored and shared with a database using AJAX.
Bloom has no restrictive layout or
modules; everything from HTML's angle brackets to a
site-wide consistent look & feel is defined in Bloom rules. Bloom
is capable to work as a smart client or in a client-server
configuration using AJAX.
Bloom has a small (memory) footprint and yet
deploys single-page applications (SPA); it can even generate
single-page application development environments (SPADE's) which
include an environment to alter their own data, meta data and
logic.
Bloom is maintained at
SourceForge; its home-page is
here.
Finally: Bloom is available for free as open source software
(under the Mozilla 1.1 license)
Bloom at a glance:
- Text and file oriented
- Bloom is text and file oriented (instead of database centric), so
Bloom texts can be edited using any text editor and files can be
located and backed-up in your prefered setting as part of
a larger build enviroment. Of course, Bloom can store data in a SQL
database.
- No preconceptions
- Bloom has no preconceptions about layout or application
structure or even about HTML and CSS. No obligatory frames or
banners, no unexpected limitations due to built-in modules. If HTML
starts using square brackets instead of angle brackets, your new site
can run in minutes.
- Stand alone and client-server (AJAX)
- Bloom can use a server with SQL database to store and share data,
but it is equally suitable for stand-alone operation, possibly storing
data in local files (desk-top). When Bloom uses a server it is through
asynchronic synchronisation (AJAX).
- Rule based
- Bloom is rule-based, which helps to achieve a consistent look and
feel, content re-use and powerful navigation systems. Also, Bloom
rules offer object-oriented and aspects-oriented features.
- Small footprint
- With a core of less than 200 lines of JavaScript code and a
library of less than 500 lines of code, Bloom can create tiny
applications.
- Open Source
- Bloom is distributed as Open Source Software under the Mozilla
Public License Version 1.1. It is free of charge and you can extend
and re-distribute it in accordance with the license.
- Extendable
- Bloom rules are modular, making it easy to extend any Bloom
application with your own modules. The Mozilla 1.1 license
particularly caters for extendible systems.
- Single Page Application (SPA)
- Bloom typically creates single page applications (SPA's). A SPA is
a smart client which avoids latency problems and simplyfies software
deployment. If data is stored on a server, it is done through AJAX,
again avoiding latency lags.
- Comprehension oriented architecture
- Bloom uses a revolutionary technique called Comprehension Oriented
Architecture, as opposed to top-down architecture, where top-down,
data-driven and resolution-based aspects are combined
(woven) into web applications.
- Domain Specific Languages
- Bloom sopports domain-specific languages to allow styles,
templates and patterns and other (meta) data to be expressed in an
appropriate, domain specific language. For instance, Bloom rules use
intuitive pattern-replacement syntax.
- SPA Development Environment (SPADE)
- Bloom can generate Single Page Application Development
Environments: web-applications that include an environment to alter
themselves (data, and possibly also logic).
- Ease of use
- Using Bloom is software development with tremendous expressive power,
but requiring great attention to detail.
- ToDo
- At the moment of writing certain limitations exist:
- Currently only Firefox is supported
- AJAX is halfway finished
- DSL's are not yet supported
- Debugging facilities are limited