FAQ of Objectica

What does Objectica provide?
With respect to object orientation almost the full functionality of Java and C# is covered

Why not directly Java or C#?
Mathematica provides a complete platform for computer algebra and offers symbolic processing, many mathematical functions, equation solvers, 3D graphics, ...

How is my way of programming supported?
• Classes can be defined in several parts
• Free decision about class design, because the root class has no functionality
• Names of class members and method parameters may be identical
• Order of class members is irrelevant
• Definitions are made directly and not by means of strings
• Free decision about storage of a class or generation "on the fly"
• Free decision about polymorphism, because it is controlled by means of a modifier
• Attributes of class methods do not affect global functions

How do I save my work?
• Source code of classes can be organized arbitrariliy while namespaces (contexts) can be freely choosen
• Simple organzation of classes in packages is possible
• Simple saving objects, taking into account that fields marked transient are not exported
• All used objects and anonymous classes at any level are automatically saved with an object (circular references allowed)

How fast is Objectica?
An access to a class member typically takes far less a millisecond

Is it easy to learn using the package?
Yes, especially programmers appreciate the close similarity to Java and C# (identical concepts, equally named keywords, dot-operator for access, ...)

How am I supported in my development of classes?
• Many consistency checks during class definition
• Optional warning messages for references to global functions or symbols
• Automatic update of all derived classes during the change of a class definition
• Concept of abstract fields facilates forcing an interface
• Optional polymorphism of static class members automatically uses the right context
• Automatically used access methods for properties shortens the source code without loss of functionality
• Context sensitive popupmenus with class members
• Easy syntax prevents distraction

What kind of documentation is provided?
• A user`s guide describes the package and its applications
• A reference guide describes all functions as well as keywords and gives examples for all ways to call a function or use a symbol

What happens, if I call a function incorrectly?
In case of an invalid usage, few descriptive error messages are printed and the call is aborted

How can someone use my classes without the package?
Classes can be saved and deployed together with a runtime environment

How is the development of commercial class libraries supported?
• Classes can be protected against inquisitorial looks and nevertheless being used (for Mathematica-insiders: assignments to static fields despite Protected, ReadProtected, Locked)
• All class members are automatically stored in the namespace of the class without special declaration (for Mathematica-insiders: also in private parts of a package)

Editorial • page checked on Jan. 4th 2007