Attached is a draft of another approach to a Grand Unification and
consequent simplification.
.
It emphasizes declarative code (e.g. HTML and State Machines) with powerful
expressions (e.g. SQL) rather than interpretive procedural code. Of course
both are signficant.
In a message dated 7/31/2011 11:10:37 P.M. Eastern Daylight Time,
henryluo@candlescript.org writes:
Dear members of xml-dev list,
I'm glad
to announce the 0.9.1 beta release of Candle (Common
ApplicatioN Development LanguagE). Candle
is an open-source (MPL) scripting language that unifies the core features of
many XML-related technologies (including XSLT, XQuery, XQuery Update, RELAX
NG, BNF, XHTML, SVG and more). It can be used to develop command-line, desktop
and Internet applications.
Some of the advantages of Candle comparing
to XSLT and XQuery are:
- Candle is an unified
language instead of two highly-overlapping languages. Candle uses
scripting syntax instead of the highly verbose markup syntax of XSLT.
- Candle's
markup language is strongly-typed even without schema, whereas XML
is only weakly-typed without schema.
- Candle consists of a pattern
language which cleanly unifies several pattern-related DSLs
(including RegEx, BNF, RELAX NG, XQuery Sequence Type). It can easily match
on sequence of items, nodes and characters.
- Candle unifies functional and procedural
programming. Through a mechanism I called separation-of-side-effects, Candle unifies
two worlds in a more orderly manner then any existing multi-paradigm
programming languages. In Candle, routines are divided into functions and
methods. Functions are routines without side-effects and methods are
routines with side-effects. The rule of separation-of-side-effects is that methods
can call functions, but not vice versa. And expressions in Candle are always
functional. In this way, pure functional islands are well-preserved in
the vast sea of procedural code.
- Candle is a general-purpose
scripting language like Python, whereas XSLT and XQuery are just DSLs.
Candle alone is sufficient to develop complex command-line, desktop and
Internet applications, whereas XSLT and XQuery still need to integrate with
other languages to develop a serious application.
For more information, you can visit
the website (http://www.candlescript.org/)
or the SourceForge
project.
You can also read two blog articles Why
I Invented Candle (I) and Why
I Invented Candle (II) to understand the design rationales behind
Candle.
Your feedback on Candle is highly appreciated. I'm here
anxiously waiting.
Henry
-------------------------------------------------------------------- Candle
App Platform - An unified platform for desktop and Internet
apps.
|