Re: [xml-dev] [ANN] Candle 0.9.1 Beta Release - a new scripting language for ...
Hi Bill
Thanks for sharing your document and thoughts on the unification of XML
technologies.
I've browse through your document during the week end. And I think we
have many ideas in common. However, I felt your document is a bit
high-level, and it will be great if there's more detailed specification of
your language.
In response to your post, I've just written a blog
article on Candle's approach towards the "grand
unification":
http://candleapp.blogspot.com/2011/08/towards-grand-unification.html
One thing I'd like to highlight is that I think you might have a wrong
impression of the procedural features in
Candle. Candle does support procedural features in order to be a
general-purpose programming language. But they are
much higher-level
than those in the conventional procedural languages. Candle is designed
to be as functional as possible and it deliberately restricts the usage of assignment
operation.
Data construction, evaluation, pattern matching, query and
transformation all uses high level functional features and never need
assignment. And node update uses CRUD statements rather than assignment
operation. And there's the separation-of-side-effects
mechanism to preserve the pure functional features. The only case in
Candle that needs assignment is in while-loop (Candle differentiates variable initialization and
re-assignment).
I'll write more blog articles on the details of the design rationales,
considerations and trade-offs made while creating Candle. And I'll be glad
to hear feedback from you and the xml-dev list.
Regards
Henry
> 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,
> [email protected] 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_
> (http://www.candlescript.org/doc/candle-markup-reference.htm) language is
> strongly-typed even without schema, whereas XML
> is only weakly-typed without schema.
> * Candle consists of a _pattern language_
> (http://www.candlescript.org/doc/candle-pattern-reference.htm) 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/) (http://www.candlescript.org/) or the
> _SourceForge project_
> (http://sourceforge.net/projects/candleapp/) .
>
> You can also read two blog articles _Why I Invented Candle (I)_
> (http://candleapp.blogspot.com/2011/06/why-i-invented-candle-i.html) and
> _Why I
> Invented Candle (II)_
> (http://candleapp.blogspot.com/2011/07/why-i-invented-candle-ii.html) 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.
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: [email protected]
> subscribe: [email protected]
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php