I have recently found myself writing this code and I wondered, should I be writing such code at all? Is it too obscure?
return (tokens!= null && tokens.length >=1 && tokens[0].compareToIgnoreCase("NIL") != 0) ? tokens[0] : null;
It is pretty straightforward but it will require some mental power to process this code.
It is a often advocated that the code should be self documenting and I think it indeed should. Some thinkg only hacks and edge cases have to be documented but I still think placing notes in the strategic places in the code saying in a few words (few here means literally 3 to 5 words) what this piece of code does/is supposed to do.
Developers often take pride in complex and obscure code. This is, I guess some sort of narcissism in a shape of saying “I am so smart” instead of “I am so pretty”. Let’s call this the “Narcissistic code complexity syndrome”
Many times I do prefer writing such code however because I like the conciseness of it. Maybe I am deluding myself and I actually am a victim of narcissistic code complexity syndrom?
Let me know in the comments.