Good design makes simple features simple to use. As collatory difficult, infrequent, or unimportant capabilities can tolerate a certain complexity in their use. For numerical applications, Java violates this fundamental design rule in the two cases: Java does not facilitate the simplicity the indexing operations and complex numbers warrant. Java was not designed for numerical analysis; neither were C nor C++.