What I offer here is a new direction on object-centric programming. I have no objection to the current OOP storm, however I felt mislead, to be more precisely, mis-emphasized, some other important concepts, which I think are also nourishing for developers' souls.

Attributes, classes and schema

This is a basic hierarchy for object-centric structure: A schema is a list of classes, while a class is a set of attributes.

In the modern programming languages, there is no actual concept of 'schema'. If you have to find them, you can pick a 'package' or a namespace as a schema, but it is actually not. In database development context, a database/schema is a schema, in the sense that it contains zero or more tables, which is equal to object.

Essential and derivative attributes

Essential attributes are essential to an object. They usually need to be persistent. So they are the key factors to database design.

Derivative attributes are dervated from the essential attributes. The primary logic for a derivative attribute is a method how it is calculated out.

Attibutes v.s. Properties

Attribute is about what, while property is about how. Attribute describes what a class contains. conceptual issues.

Property defines how a class functions. Directives are the good example for properties, which is involved with implementational issues.

Less like machine, More like human

Most of current programming languages are syntacial. In a sense, the compiler can only complain about the grammar that it thinks the developers misuse, and knows nothing about the meaning of the action that the code is to perform.


biobibliography of the developer

Xiao Juguang, currently working as a bioinformatics engineer, is keen for Perl development. This new language, 'juguang', named after his own first name, is a free offering to the bioinformatics community for rapid scripting.