3 ms·
Wow, I wish I could downvote responses to my own comment. In what way does the standard "I'm too cool for Java" rant address the point I was making? Yeah, typ
by jbooth 15y ago
Wow, I wish I could downvote responses to my own comment. In what way does the standard "I'm too cool for Java" rant address the point I was making?
Yeah, type inference would be an improvement, it's also not that big a deal.
If you're dealing with integers you can quite easily do
int fiftyFive = 7*5.
And operator overloading, unless you're specifically doing numeric computation, is usually a very bad idea. Makes you feel clever, and makes your code unmaintainable.
- fleitz 15y agoYeah, I've coded java, around the 1.4 days. I'm not too cool for it, I just don't care for it. Nor do I care for its philosophy. My rant addresses that most of "the best of" java also sucks. Albiet it sucks less than the stuff designed by committee. I've coded erlang, but not haskell. Like both syntaxes much better than java. Ok, point ceded on integers, now what do I do if I want to use a positive integer in excess of 2^63? 2^63 seems like a weird cutoff to me for positive integers, but keep in mind that features like this are the "best of" java according to you. I bought a 64 bit chip, I'd like to use more than half it's integer range.
- jbooth 15y ago2^63 isn't a weird cutoff for signed integers, it's exactly what it should be :) Bigger than that, you're out of the range of the primitives that they coded into the language, or into most languages for that matter, so you're going to use to use some library construct to handle multi-word numbers. That's one of the few cases where operator overloading might help you, but frankly if your program is primarily doing high-end numerics, you should probably be coding in C which is much less friendly on all counts. I don't actually prescribe Java for web dev, strong-typed languages are generally bad for web dev and the lack of type inference and some other syntactical shortcuts make Java even more of a pain for that type of stuff. It got a lot better with 1.5 on a couple of the niceties, but if what you're doing maps better to a scripting language, use a scripting language. As far as the philosophy goes.. as I've worked on more projects in my life I've learned to distrust everything clever. Sometimes Java can be a bit too restricting, and Scala seems to be an unabashed improvement in terms of promoting better programming practice, but super clever things like monkey-patching and operator overloading for the sake of brevity can be very unpredictable when you need to fix a bug in someone else's code and do it quickly.
- fleitz 15y agoI'll fully agree with you on monkey patching, I think the extension method system on .NET is a far better idea. Operator overloading can be used stupidly but then again so can just about any feature. Operator overloading is no more clever than method overloading.
- jbooth 15y agoWell, I guess we just disagree on the operator overloading.. I agree that it's fundamentally the same in one sense, but in another sense it's much more likely to sneak up on you than method overloading, especially if you're in an environment that doesn't allow monkey-patching. It's always fairly obvious which version of collection.add() you're invoking, and can be much less obvious which version of '+' you're invoking. IMO you need a much bigger productivity win to justify operator overloading, and aside from numerics, it's usually not there.