After using many of these languages some common patterns emerge. If you follow the format of design patterns, each of these reoccurring problems are given names to allow discussion of declarative topics with high bandwidth and precise semantics:
Semantic drawings One of the main aspects to business-unit empowerment is allowing staff outside of the IT department the ability to precisely capture and update system artifacts. Putting graphical front ends on languages with small vocabularies is significantly easier then putting graphical front ends on general programming languages that excel at creating new abstractions. Once nonprogrammers learn a small list of symbols, such as a solid line for required elements and a dashed line for optional elements, they are empowered to maintain their own requirements. This ability gets the IT department out of the business of maintaining business logic.
List selection for nonprogrammers The concept of narrowing the selection possibilities for nontechnical users seems to occur frequently when using declarative systems. Data selection can follow many rules based on context, role, and function. Functions like GoogleSuggest demonstrate the power of using knowledge of a prior user’s behavior to create a prioritized list of options when a current user is entering or selecting text.
Rules in forms In addition to the use of full drawing programs as used in XML schemas and workflow diagrams, business rules are created and maintained using simple web forms. Setting up email rules is a good example. These forms can constrain the choices the users make to create precise business rules that are easy for nonprogrammers to maintain. Rules engines can take a simple linear list of rules to check in sequence, or they can be stated in complex decision trees. Regardless, programmers need not be involved.
No replacement for data stewardship If users don't understand or cannot communicate the meaning of data elements, few tools will help. A common expression, "a fool with a tool is still a fool," applies. Data stewardship must be taught carefully to each business unit, and data-steward champions must be identified. Data governance is still one of the most active areas of information systems research and development.
Semantics is king Once you have precise data element definitions for your internally controlled vocabularies, the metadata registries that store these vocabularies can also contain other useful information. Application developers can utilize this store to avoid duplication of business logic. A common phrase heard frequently in the semantics community is, "a little semantics goes a long way." This phrase implies that by providing small, incremental semantic baby steps, large gains in business productivity can be achieved.
Getting Up to Speed
Most software development training today omits the discussion of declarative languages in favor of mainstream procedural languages, thus excluding the incredible benefits of externally defined semantics. However, this omission isn't necessarily the destiny of all computer science graduates.
The W3C has recently organized the first of a series, "Workshop on Declarative Models of Distributed Web Applications." The main target of this workshop was to decrease both development and maintenance costs of building web applications. Hopefully, these workshops and their progeny will continue to form a basis for future web development training.
There are also a small number of communities starting to build fully declarative web applications and seeing strong benefits of these languages. Many people in the XForms and XQuery communities are also starting to use a stronger declarative style and promote a full suite of declarative approaches to web development challenges. Integrating XML Pipelines, document workflow, and rules engines into the declarative stack is perhaps the next target for integration into the declarative space.
From observing how specialized languages are rapidly evolving, software developers can certainly expect to see more little languages in the near future. When approaching business problems, ask yourself if you want to spend your career updating business rules or empowering business units to do it themselves. If you are in the empowerment camp, look carefully at declarative languages.
When asked directly, IT managers admit that empowerment is a good thing, but they fear the loss of control. Many IT strategies do not focus on the underlying technologies and skills required to make the leap from procedural to declarative systems.
As a developer or IT strategist, consider the impact of the semantic web infrastructure's growth and its potential role empowering business units and overall IT productivity. If you're interested in becoming a leader in the movement toward declarative systems, let this discussion be a road map to this evolution of software development languages that could very well transform the industry.