It is unclear whether a Java interface should support MPI-like derived data types. A proposal for a Java-compatible subset of derived types is included in the draft specification document , but deleting it would simplify the API significantly. In particular datatype arguments for buffers could be dropped.
One factor in favor of including MPI-like derived data types in MPJ is the support for legacy MPI applications. The possible need to interact with native code that uses derived data types is probably best supported by including derived data types in the MPJ API specification.
It has been argued that the functionality of derived data types is already provided by Java objects, and supporting both only adds unneeded complexity. But in fact there are good reasons to retain some additional functionality of derived data types. Any scientific code, written in Java or otherwise, will benefit from the ability to efficiently and conveniently send sections (subsets) of program arrays. In MPI, this is one of the most useful roles of the so-called derived data types, and MPJ object data types do not address this requirement. The discussion of whether derived data types are to be supported in MPJ should therefore be closely linked with the discussion of how true ``scientific'' (multi-dimensional) arrays, allowing Fortran-90-like sectioning operations, should be handled.