In the previous blog article, I talked about general data-exchange
format and some of the problems of XML. The original design that
constrained XML to just a general syntactic format caused great headache
to people building advanced processing capabilities on top of XML.
Among the people who are rethinking XML, James Clark has
suggested 3
approaches: XML 2.0, XML.next,
MicroXML, which pus
forward a solid framework to start with. Candle is
definitely along
the XML.next line. Candle is
not compatible with XML; it actually goes beyond XML
to unify markup data model with object data model.
In
this blog, I'll explain in more details on how Candle
Markup (especially with the
new object notation) addresses many problems of XML, and how it
compares with other formats like JSON and YAML.
Sunday, November 20, 2011
A Markup Notation Better Then Ever
Friday, November 18, 2011
Who needs XML?
With the latest beta release, Candle introduces several new
features to its markup
format, including a new
object notation and a new clean namespace syntax. With this
release, I believe Candle Markup to be one of the best general data-exchange
format.Before I talk specifically about Candle's Markup format, let's look at the existing general data-exchange formats. The most well known formats are XML and JSON. We've seen many hot debates on which one is better. I'm not going to restart the holy war here. I'll try to get you out of the tit-for-tat comparison of JSON against XML, and let your look the problem from a more fundamental perspective. You can ask yourself a few questions: why do we need a general data-exchange format? what purposes should it server? what characteristics should it have? Once you've got your answers, you can read on to see if yours reconcile with mine.
Monday, August 8, 2011
Towards the Grand Unification
Today's programming world is quite different from 20 years ago, when C/C++ was still the dominant language(s), and we just need to learn one language(s) to do all our work. Today, there are 3 major paradigms of applications: the oldest command line apps, the desktop GUI apps and the latest web apps. The last one is quite different from the other two as it utilizes many DSLs (domain specific languages). These DSLs made us more expressive, but also gave us all the headaches of a multi-lingual speaker. Isn't it great if we just need to speak one "universal language"?
Wednesday, July 27, 2011
Why I invented Candle (II)
In the previous article, I talked about the motivation of inventing Candle from the perspective of a markup-data processing language. In this article, I'll continue the discussion from the perspective of a general-purpose programming language.
Friday, June 24, 2011
Why I Invented Candle (I)
The very first idea of inventing a new programming language hit upon me more than 10 years ago. At that time, I was still in the university, and I was trying to build a web forum for my peer scholars. I was using Perl. The pain in using Perl drove me to invent a better language that treats markup as built-in data type. Initially I was trying to mix XML with Java, which I considered to be the best markup and programming languages in the world. Then came XSLT and XQuery, which changed my design of the new language fundamentally.
Thursday, December 9, 2010
Porting Candle to MinGW and CodeLite
Thanks to CodeLite, porting Candle source code to MingGW was much simpler than I thought.
As I wrote previously, finding the right C/C++ IDE (other than VC Express) was not easy for me, and my last settlement was with Eclipse CDT. So porting Candle source code to other compiler and IDE on Windows, like MinGW, was not of high priority for me.
I was googling for something (I don't remember what it is) and one of the result page recommended CodeLite, and triggered me to give CodeLite a trial.
As I wrote previously, finding the right C/C++ IDE (other than VC Express) was not easy for me, and my last settlement was with Eclipse CDT. So porting Candle source code to other compiler and IDE on Windows, like MinGW, was not of high priority for me.
I was googling for something (I don't remember what it is) and one of the result page recommended CodeLite, and triggered me to give CodeLite a trial.
Wednesday, December 8, 2010
Porting Candle to Linux
My experience of porting Candle from Windows to Linux is really like riding roller coaster, with up and downs, surprises and shocks, screamings and desperations all along the way. With over 100,000 lines of Candle source code, and with no previous experience of C development on Linux, the journey was really not for faint-hearted. The most difficult part was actually getting used to the C/C++ tool chain on Linux. I'm probably too much spoiled by Visual C/C++.
Subscribe to:
Posts (Atom)