AnyLang Programming Language Comparison/Appendix:FeatureCompleteSoftware

Feature Complete Software
The following outlines the essential elements for feature-complete software. A software package of any kind that does not have *all* of these features, is incomplete for purposes of this discussion.

In addition, all of these software features should be amenable to:
 * automated processing (not require human intervention except where an essential function cannot be completed without a human)
 * accessibility (capable of capturing through a screen reader or other assistance technology)
 * batch processing (automated processing on multiple items in series, instead of just one at a time)

Data Access Factors

 * authentication ;; you are who you say you are
 * access control ;; the cabinets and drawers are lockable
 * authorization ;; the rules and conditions for access to the cabinets and drawers

Data Persistence Factors

 * view
 * add
 * edit
 * delete

Interaction Factors

 * search
 * sort
 * filter
 * collate
 * validate
 * scrub

Architecture

 * model
 * view
 * controller

Anylang Simple Data System
The anylang Simple Data System explains how to represent any kind of data for typical software applications, where the primary goal is to make all data structures within your architecture as easy as possible to understand for the average user. This approach is effective for applications where storage and performance are not significant constraints.

SimpleRecord SimpleTable and SimpleTree
The basic elements of the anylang Simple Data System can be composed and translated to fit the needs of virtually any software application or system.

The anylang Simple Data System consists of the following basic elements:


 * SimpleRecord ;; a standard record as modeled in a typical RDBMS
 * SimpleTable ;; a standard table as modeled in a typical RDBMS
 * SimpleTree ;; a nested data element where every SimpleRecord is allowed to have zero or more SimpleTable child items

The SimpleTree data element is typically not capable of being represented in the RDBMS without using JOIN queries.

Sample data
This is a snapshot of sample data represented as a SimpleTree using YAML syntax.

person: - first_name: Rosanna last_name: Terry age: 33 record_id: "13187137554402717" fave_color: red sponsor: simpletable_xref_sponsor - first_name: Kelsie last_name: Brakus age: 30 record_id: "13187137555571156" fave_color: yellow sponsor: simpletable_xref_sponsor - first_name: Opal last_name: Rath age: 31 record_id: "13187137550072959" fave_color: orange sponsor: simpletable_xref_sponsor - first_name: Gregorio last_name: Hilpert age: 32 record_id: "13187137559241486" fave_color: yellow sponsor: simpletable_xref_sponsor - first_name: Braden last_name: Schuppe age: 28 record_id: "13187137553207531" fave_color: red sponsor: simpletable_xref_sponsor sponsor: - sponsor: Mayer, Runte and Jacobi industry: Law record_id: "13187137555292949" parent_record_id: "13187137554402717" - sponsor: Fritsch-King industry: Medicine record_id: "13187137556371805" parent_record_id: "13187137559241486" - sponsor: Rosenbaum, Klocko and Larson industry: Construction record_id: "13187137555638918" parent_record_id: "13187137559241486" - sponsor: Ruecker-Hyatt industry: Medicine record_id: "13187137552893153" parent_record_id: "13187137553207531" - sponsor: Gerlach, Emmerich and Bernhard industry: Construction record_id: "13187137554311067" parent_record_id: "13187137553207531"