What gets me with Java is the constant changing of the guard. Looonnnngggg release times, then each release would add new things and break some old dependencies, ect. But were easy to fix (most of the time). Then Oracle buys java. Still long release times and many new features, but more broken stuff. Ok ok, so, more to fix, and now back together again. People complain about the long release schedule, so Oracle is now pumping a new version every 6 months (like many linux distros) with alternating years being the LTS version. So if you use the non LTS versions, Oracle supports them for a tiny amount of time before having OpenJDK manage it. In with all this, things get broke. I mean, you can code as cleanly as possible, requiring the least amount of trickery to get things to work, but when some ass-hat decides to change or remove a common feature for some screwy reason, then there is a lot to go back and edit.
I'm still waiting for the time where "public static void main" will be depreciated.
i7-5930k (4.1GHz), 32GB DDR4-2400, 980 4GB, GA-X99-UD3, Samsung 850 Pro 256GB (os/programs), Toshiba 5TB (games), WD VelociRaptor 500GB (games/scratch disk), Win 10 Pro x64
Check out my site for trance sets and other goodies! clickclick5.com