Your App Defined, not Implemented

At the end of my previous post, I think I lost most of the readers when I compared Web applications to DSLs, and then talked about implementing them as external or internal DSLs.  For people with no actual experience with implementing DSLs this comparison is probably hard, and especially the distinction between internal and external DSLs.  I remember having long conversations with fellow DSL researchers not agreeing if a certain DSL framework works with external or internal DSLs.  So if I lost you  there, don’t feel bad.  It’s on me.

In this post I am going to demonstrate this equivalence between DSLs and Web apps by defining the logic of a simple Web application using Cedalion — a language designed to host DSLs.  We are not going to implement a Web application here.  Unfortunately, no actual application will come out of this exercise, but with a bit of imagination this exercise will demonstrate what the goal of my research is: I want Web applications to be as easy to implement as this!

Read More »

NoDatalog: NoSQL Done Right (Part 2)

In Part 1 of this post I covered the NoSQL movement, and described what I think is not ideal there.  A short recap would be the following points:

  1. Lack of standardization – each database provides its own API and query language, that is  often tightly coupled with its implementation.
  2. “No fancy queries” – users need to write their own de-normalization routines outside the database, which is prone to errors.
  3. Data migration – de-normalized data more sensitive to software updates than normalized data.  As a result, more throw-away code needs to be written just to perform data migrations.

In this post I will present what I call NoDatalog, and explain how it can, at least in theory, overcome these three issues.Read More »