Home | About | Partners | Contact Us

SourceForge Logo

Quick Links
Building XL
XL Mailing List

Understanding XL
Conceptual overview
XL examples
Inside XL
Concept Programming

In depth
Browse GIT
SourceForge Info

Other projects
GNU Project
The Mozart Project

XLR: Extensible Language and Runtime

The art of turning ideas into code

Objects vs. Concepts

Prev: Evaluating existing languages


Next: Syntax

Object-oriented programming and design (OO) is a collection of well-respected and understood techniques to represent concepts as "objects". Simplifying slightly, OO maps "names" from the problem space onto "objects" in the code space, and similarly maps "verbs" in the problem space onto "methods" in the code space. So for instance, to implement a graphical user interface, the programmer will create "Window" objects and "Draw" methods.

From that point of view, OO is a specific application of Concept Programming to the set of application concepts that can be represented as "names" or "verbs". Since this is a rather large set, OO itself applies to a large number of application domains.

However, while objects are entities that can be found in the code (using some language-dependent syntax or semantics), concepts are not. Concepts exist only in the problem space, and only some specific representation exists in the code space. The same is actually true of objects, though usage has it that the code representation is itself called an object. For instance, a "window" in the code is not a real window, though it closely maps the corresponding problem space concept.

The maximum example illustrates something that doesn't fit well within the object-oriented model. It doesn't mean that you should avoid objects at all, but rather that there are situations where they are not the best tool for the job.

Prev: Evaluating existing languages


Next: Syntax

Copyright 2008 Christophe de Dinechin (Blog)
E-mail: XL Mailing List (polluted by spam, unfortunately)