Skip to content

Motivation

Dawid Weiss edited this page May 6, 2015 · 2 revisions

Goals

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.

More details

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.