Highlights: * BETA is the '''work of KristenNygaard''' (among others), one of the two original creators of the core concepts of object-orientation in the 1960s. * BETA's main distinguishing feature is its '''radical attempt at fully abstracting abstraction'''. Procedures, classes, exceptions, types, processes and other constructs are all defined using a '''unifying abstraction/syntax, the "pattern"'''. One upshot is that BETA has a '''small grammar'''. * Things that apply to patterns, such as sub-classing and virtuals, apply regardless of what the pattern is used for. This means BETA programmers have the '''ability to express abstractions not available in other languages'''. * '''Patterns are first class objects'''. Pattern variables can lend objects the sort of mutability you might expect from CommonLisp despite the fact that BETA is '''strongly typed''' with compile-time checking. * BETA fully supports '''concurrent programming'''. * BETA's syntax is so well abstracted that major extensions can be made as libaries rather than by changing the language syntax, and despite BETA's strong typing. For example, '''class/object/operation predicates''' (invariants and pre- and post- conditions) and '''futures''' (return the result from a concurrent computation before it has been calculated). * BETA is '''ancient'''. It was started in the mid 1970s, and the language syntax has not changed since 1992. BETA is '''modern'''. Its syntax and features may be favorably compared with recent languages. * Mjolner's BETA system (compiler, libraries, IDE, etc.) is '''free''' (as in beer, not as in speech). Lowlights: * Obscure. * Commercially supported by just one vendor. * Not OpenSource. For further information: * The BETA Home Page: http://www.daimi.au.dk/~beta/ * Mjolner's BETA system: http://www.mjolner.com/mjolner-system/). * ObjectOrientedProgrammingInTheBetaProgrammingLanguage ** See that page for the online book ---- CategoryProgrammingLanguage CategoryOnlineBook