It grew out of the need for an advanced open source software that can cope with complex spatio-temporal image data, mainly obtained from microscopes in biological research.
The idea is that the program can be used for most daily use or prototyping, and for bigger batch processing or integration, the code is invoked as a library.
The main features that set it apart from other imaging software is that it can handle additional dimensions (XYZ, time, channel) which is needed for more serious microscopy.
This limits how much of ImageJ can be changed without breaking backwards-compatibility, which has caused design flaws to accumulate over time.
The goal is to tighten the integration and increase encapsulation, thus reduce code redundancy and ease maintenance.