My frustration with programming is most probably derived from the multitudes of ways to do things that are out there. It’s choice that’s stifling me. I know how to do "something" in Java, but it’s inefficient and takes too long. Converting a .NET generated binary data file from hex to float, for example: Big-endian or little-endian? How about making a UI for testing purposes? The same issue with Ruby is one line, but there’s no Ruby in my paid-work; only Java. Spin. Or, really, maybe I don’t know how to do things in Java. Again, spin.

Java’s Integer object has a MAX_VALUE on it that’s smaller than what the primitive int can hold. Also, long is 64 bits, and float’s 128, so, for my purposes of converting an unsigned int from hex to float, I can’t really use Long, either, but I will.  Sorry extra Microsoft data.  Or, in Java, does the data lose you?

The answer, of course, is that I should choose to just *know* the restrictions of each language and not be frustrated when the API documentation says "do this and things'll happen (caveat: read the design guidelines)." And that's the problem with software. No, I really, really shouldn't have to know the useless jank of languages.

make little-endian .NET bytes into big-endian ones, convert to hex string...
int i = new Long(Long.parseLong(hexString.toUpperCase(), 16)).intValue(); // yes, two Longs make an int

Ruby did it in one line, .NET has methods in their BinaryReader to generate primitives from source bytes with one call, and, sadly, Java's ByteArrayInputStream is inadequate.

But really, who cares, anyway?