But this thing about smart people makes me cynical. You ever debug a terse Perl program written by a really "smart" person?
What about maintenance? What about the dangers of over engineering? These things should not be overlooked.
But this thing about smart people makes me cynical. You ever debug a terse Perl program written by a really "smart" person?
What about maintenance? What about the dangers of over engineering? These things should not be overlooked.
Actually, yes I have. And I've found it an absolute joy. Oh, line for line it can take more work to understand. (Though often it is set up so that you can ignore most lines.) But compared to what the same code would have been written out in a more "straightforward" and repetitive fashion?
However there are a lot of people who THINK they are smart but aren't. Working with their stuff can be a nightmare. The difference is painfully obvious once you dive into the code. If you're experienced in Perl, it is usually obvious at a glance.
Indeed, most people who think they are smart, aren't, including myself.
It's very easy to lose sight of where you fit in the larger scheme of things on the great bell curve of humanity. But I assure you, it's almost certain that if you can post to Hacker News you're smarter, richer, luckier than at least a billion people.
(Of course, I don't put any stock in IQ; it's just a saying.)
So maybe a more charitable view is that these people (who think Java is too constraining) wish to be smarter than than they currently are. And anyway, who wouldn't get a little frustrated with all the childproofing features in their everyday tools?
If the program is terse beyond readability then the person who wrote it is not smart. Power has actually few things to do with terseness, and more with readability/ expressivity.
I used to try to cram more stuff onto a line because I thought it was elegant. Now, depending on the circumstance, sometimes I'll deliberately split up something that I originally wrote as a 1-liner because, at second pass, it looks like it'll be hard to read for the next person.
Just having the intermediate variable name makes your code more self-documenting in some situations.
>> I agree Java is verbose and old and should rarely be used on new projects.
People with attitudes like this scare the hell out of me.