OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] [ANN] Candle 0.9.1 Beta Release - a new scripting language for...

   Yes, my write-up is 100 pages long, but is still very high level. But, it is meant to be a start with goals, direction and general approach.  In particular, it is deliberately not explicit as to syntax. The approach is more for an integrated facility than for a particular language - all part of "Grand Unification".
   There seems to be a general progression in the technology from instructions, then formulas, basic expressions and functions, then full procedural syntax.   Along the way,  functional  programming and list processing, object and aspect oriented programming, complex expressions with selection and implied iteration (e.g. queries), control structures (e.g. pipes, state machines, pattern matching and goal seeking), interpretive processing versus compilers, declarative statements to provide data and intent, preprocessors with parameter substitution, etc. are added.  One approach to including functional programming is to extend the C++ "const" notion, applied to both functions and data, to indirectly referenced data.
    Anyway, the intent is to reverse this progression and to push the higher level specification capabilities as far as possible, leaving only small procedural routines and general algorithms to be implemented where needed, - thereby reducing the skills and cost needed for adapting a general application to particular needs.
    As for layered infrastructure, I would expect that any initial implementations would be built on existing browsers - both for basic function and for compatibility needs.  The approach to modeling not only supports constructs for models that are meta models of themselves, but also the models for applications can largely be models for infrastructure implementation - again, an integrated combination of data, presentation, communication and control models.  
In a message dated 8/8/2011 9:45:11 A.M. Eastern Daylight Time, henryluo@candlescript.org writes:

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":


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.



> 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_
> (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: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS