Mathematica: Some links on Object-Orientation (or the lack thereof)

This page identifies a possible issue, concern, error, limitation, or bug!
Webel IT Australia promotes the amazing Mathematica tool and the powerful Wolfram Language and offers professional Mathematica services for computational computing and data analysis. Our Mathematica tips, issue tracking, and wishlist is offered here most constructively to help improve the tool and language and support the Mathematica user community.
DISCLAIMER: Wolfram Research does not officially endorse analysis by Webel IT Australia.
Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Keywords
Dr Darren of Webel IT Australia says:
If I didn't otherwise love Mathematica and the Wolfram Language I wouldn't bother to write this page.

Packages are NOT a replacement for classes.

The Mathematica Entity systems has some limitations (such as EntityFunction only being able to return a scalar) and is NOT a replacement for classes.

And Associations certainly aren't a replacement for classes.

Use of classes does not necessarily imply stateful use.

And classes have enormous benefit even if only used as an organisational mechanism.

Dr Darren doesn't just whinge, he provides solutions

There is now a dedicated technical tutorial slide trail section demonstrating how the Webel MAll MTools class extension and the All` package make working with the user-contributed MTools packages for classes and OO in Mathematica easier:

There is a single page summary on how to get the most out of the user-contributed MTools:

There is also a dedicated technical tutorial slide trail section on the Webel ADT variation on the Abstract Data Type (ADT) approach using TagSetDelayed (as adapted from a technique from Roman Maeder): Some related background:
UPDATE: There is now also (since early 2024) a user-contributed package called Objects developed by Kirill Belov

About the external links below

Most of them are historical, and many of them are complete "bum steers". The two main candidates (apart from the Webel ADT implementation not currently available to the public) are MTools and Objects, see the first few external links below.

Dr Darren says:

I look forward to the day when I can instead offer an official link to a fully-fledged Wolfram Research implementation of classes and object-orientation for the Wolfram Language with full IDE integration.
Because "the Mathematica way" does not need to be frozen in time.
Relates to
Related notes
Related notes (backlinks)
Related snippets (extracts)
Visit also
Visit also (backlinks)
External links