On 11/20/2011 09:49 AM, Derek K. Wodenhouse wrote:
On 20/11/2011 2:45 AM, Lew wrote:
Derek K. Wodenhouse wrote:
Lew wrote:
As for ontologies, the most useful ones I know are event-driven
programming, object-oriented programming, MVC (model-view-controller),
layers (Law of Demeter), and "noun-and-verb" modeling. That last is my
own term for using the language of the problem domain (its nouns and
verbs) to define your program structures.
That last is also known as "programming in Lisp". ;)
Trivially, since the technique applies irrespective of platform.
It's also known as "programming in /X/", where /X/ is any programming
language.
Not nearly as strongly. Lisps let you reify nearly any program
abstraction, and build a bridge from the solution domain to the problem
domain, expressing most of the business logic in problem domain terms. A
common program design in another language consists of a problem domain
focused library, plus an application layer atop that that contains the
business logic but is still largely written in solution domain terms,
with a sprinkling of problem domain nouns and verbs. A common program
design in Lisp consists of a domain-specific language for the problem
domain, in Lisp, and an application in that language with a sprinkling
of generic-Lisp nouns and verbs (mostly lists and data structure
traversals, and/or numbers and arithmetic -- much of which might be
regarded as present also in the problem domain).
unique with respect to that. One can go even further and call any Java
library (in fact, _any_ library) a domain specific language. The
not as easily) in others.