archives

Sawzall Language Open Sourced

Google open sources Szl - compiler and runtime for Sawzall Language:

Sawzall is a procedural language developed for parallel analysis of very large data sets (such as logs). It provides protocol buffer handling, regular expression support, string and array manipulation, associative arrays (maps), structured data (tuples), data fingerprinting (64-bit hash values), time values, various utility operations and the usual library functions operating on floating-point and string values. For years Sawzall has been Google's logs processing language of choice and is used for various other data analysis tasks across the company.

The original paper from Rob Pike et al.

when does debugability break down?

Whenever I read about some programming language based on biology*, I get the heebie-jeebies: I've had to maintain and debug systems I did not write (heck, even the ones I did write...) that were pretty statically studyable and yet still often obtuse. How much more difficult to debug will future systems be?! How do you see such things? What concrete examples / experiences / studies might you have?

* PDF: Organic Programming Language GAEA for Multi-Agents.

yet another paradigm

The first part of the abstract from a paper on the matter:

Thing-oriented programming (TP) is an emerging programming model which
overcomes some of the limitations of current practice in software development in general and
of object-oriented programming (OOP) in particular. Ercatons provide an implementation of
the model. TP does not describe a new programming language. The so-called “ercato virtual
machine” or “ercato engine” implements the ideas discussed and has been used to validate the
concepts described here.

That quote is pretty bland. I'm re/reading the paper and on the whole it reminds me of things like actors, and templates (in the html, not c++, sense), and maybe 'rolons' (?!).

From some slides on the java implementation:

ercatoJ uses bright ideas from several ancestors.
It uses XML to represent and persist rich structures, XSLT may express business logic and views.
It uses SQL as an accelerator for unsacrificed performance. Even inner and outer joins are available. However, SQL as a language is considered deprecated.
It uses and complements J2EE, e.g., transactions, sessions, authentication.
It uses an extended Unix file system semantics (incl. x- and s-bits) to express rôle-based permissions by instance, not by class. As a consequence, protection ensures that two different rôles may see different data from the same SQL query.
It uses Java and its object-oriented model. Business logic may be expressed in arbitrary Java.
It uses the Unix philosophy of many small building blocks which cooperate towards a whole which is more than the sum of its parts. ercatons are the parts, the J2EE application is the whole. The concept of several users conributing parts in a secure manner is implemented, too.
It uses the concept of prototype-based languages such as ‘Self’ where objects are created without a class.