You are browsing the archive for Uncategorized.

Similarities between ABSE and Intentional Programming

September 11, 2010 in Uncategorized

In his personal blog, Jilles Van Gurp has made a very good summary of Intentional Programming (some formatting added):

Some late nineties papers by Charles Simonyi on Intentional Programming (IP) and persistent rumors about him actually being very close to launching related products was about taking the whole Smalltalk/Visual Age thing to the next level.

It’s too early to call this a failed experiment because Simonyi never really delivered the goods. His company (Intentional Software) is still hyping intentional programming but has yet to ship a product. Seriously, this has been in the making longer than Duke Nukem Forever.

In a nutshell Simonyi’s very brilliant idea is that creating software is about coming up with abstractions that are represented in the form of abstract syntax trees that can be translated into other, more general abstractions in multiple iterations until you end up with a syntax tree that can simply be serialized to executable code. His core idea was to treat the transformations and not the abstractions as the first class entities.

In a intentional programming world you start with really simple abstractions that you can translate into executable code and you build increasingly more complex and specialized abstractions that can be used for specialist or domain specific things. The traditional notion of compiling is very similar except it is a bit limited in the number of transformations and the abstractness of the abstractions involved. Basically most languages go to roughly 2 or 3 transformations: source code to abstract syntax tree to assembly to executable bits and bytes. There are lots of variations here but it is essentially a pipe line.

(Read his whole post here)

This made me realize how close ABSE is to Intentional Programming. The bold text above shows what is similar to ABSE. I can conclude that the core idea behind IP and the way its concepts are materialized, are very close to ABSE’s own concepts.

Some differences remain though. For instance, AtomWeaver is not a projectional editor although we could still draw some parallels between them, because each ABSE abstraction has its own specific editor. I don’t know IP enough but checking an old paper on Generative Programming by Krzysztof Czarnecki (page 151) shows that that are more differences on the details.

Perhaps the biggest difference between ABSE and Intentional Programming is that ABSE version 1.0 is now shipping!

ABSE “One Fact A Day” series reposted

May 24, 2010 in Uncategorized

Originally started on Twitter, and essentially because this community has just moved from Ning, the ABSE’s “One Fact A Day” series has been reposted here.

Everyday (or so) a simple fact about ABSE and a short text regarding that fact was posted to the community.

This fact series is meant to be a very simple and easy way for developers to get acquainted with ABSE, to know what it can do, and what they can accomplish with it. It won’t take you more than two minutes per fact.

New post announcements will be added to ABSE/AtomWeaver’s Twitter account.

ABSE/AtomWeaver Early Access Program

May 24, 2010 in Uncategorized

On April 29, the ABSE and AtomWeaver Early Access Program reached another important milestone with the shipment of the first AtomWeaver version to the program participants.

AtomWeaver Alpha version 0.8.1 is now on the hands of a dozen professionals that showed interest in trying out this new technology as alpha testers.

This also means that the technology is rapidly maturing to reach version 1.0. After an additional 4-6 week period at beta stage, AtomWeaver will become publicly available around middle of June.

After three years in the making and maturing process, ABSE, in its third incarnation since its inception, will face the real world. There is much more to do after the first release, as ABSE 1.0 is assumed to be a MVT (minimum viable technology) and AtomWeaver 1.0 is assumed to be a MVP (minimum viable product).