Okay, it’s really one thing that just keeps coming back to piss me off more: why aren’t ‘-deprecation’, ‘-feature’ etc. on by default?! When would it make sense NOT to enable them?! The compiler still bitches at you if you leave them off, except that it won’t tell you why, because that would be too easy, no you have to rerun the damn thing with the option that should have been on before! It’s no consolation that I can add it to the sbt configuration, because as soon as I start another project it’s off again trying to figure out what to tell the compiler so it will shut the fuck up and do what I want it to do.
Oh yeah, and the ‘-language:’ options. I understand why some features should be enabled explicitly—except that you don’t have to enable them! The compiler warns you that you need to enable feature X, and then happily finished compiling as if you had enabled it! What was the point of bothering me, then?? It just seems insulting; I’d be perfectly happy (well, happier) to be given an error, just like when you forget an include, but it’s frustrating to be told to enable a feature and then have it enabled for me. (This second problem is likely because the ‘-language:’ features are fairly recent additions; hopefully scala 2.11 will make these errors instead of warn-only).
It really seems like this should be so much easier. I’d like to be more forgiving, but it’s 2AM and I’ve been jumping through bullshit hoops for X hours trying to figure out the right compiler options to make the compiler happy for no good reason because my code compiles fine, it’s just the stupid warning messages that are so frustrating that at this point I would happily say ‘screw Scala’ and go use Julia or something if I didn’t depend on some Scala libraries.