-
Notifications
You must be signed in to change notification settings - Fork 152
Motivation
Dawid Weiss edited this page May 6, 2015
·
2 revisions
There are three goals of HPPC:
- typical collection classes that save memory for primitive types and avoid autoboxing,
- the speed of every operation is a priority,
- direct access to the internals of each class if open, if hacking is needed.
There are certain pros and cons to the goals above. For example the principle of encapsulating and separating implementation details is a non-goal -- there are interfaces in HPPC, but they mostly serve the purpose of consolidating the API, not as a layer of functional abstraction. Any runtime validation or checking for user-errors is also moved to debug or test-time assertions (so the developer needs to take responsibility and write proper tests with assertions enabled).
Whether these goals are good or bad is a matter of subjective judgement. Other primitive libraries implement them differently (see the alternatives), choice is good.