Hacker News new | past | comments | ask | show | jobs | submit login

"Articulate programming" looks a lot like Lisp macros to me. Can anyone explain the difference?



The goal appears to be the same. From the introduction:

"In the articulate programming paradigm, a programmer undertakes a project by developing a domain-appropriate lexicon and phraseology which are leveraged directly to implement a solution that is readily accessible to domain experts and software experts alike. Articulate programming is nothing more, and nothing less, than using the right language and conceptual framework for the job."

That's very similar to the common approach in Lisp of building the language up to reflect the problem domain.

Lisp, however, has the advantage of a minimal syntax that allows the programmer to extend the core language transparently. I'm not sure how possible that is in this language.


Smalltalk, Forth and Rebol are some other languages which allow for transparent language extension. There are others, too. Minimal syntax helps, as does homoiconicity, but Nimrod shows that you can do much even with fairly "mainstream" syntax.


I've never seen the phrase domain-appropriate lexicon and phraseology before (in fact Googling for me shows the www.availlang.org as the first hit!).

Dialecting is the more common term I've come across - http://en.wikipedia.org/wiki/Dialecting


Smalltalk, Forth and Lisp are mentioned specifically and in some detail in the Avail docs, see e.g. [0]. The designer apparently has had extensive experience with all of them. I can't find the reference now but at some point in the stuff I was reading last night was a mini-diatribe about Lisp, to the effect that it has "no syntax" and although it can indeed describe any problem, when you finish the solution doesn't "look like" the problem statement in any way.

[0]https://www.availlang.org/about-avail/history/index.html




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: