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.
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.