dr_tectonic: (Mister Cranky-pants)
[personal profile] dr_tectonic
Things to hate about Java, #5801:

I get why Java has both Strings and StringBuffers. There are advantages to each, and times when you want to use one rather than the other.

Like, if you're building a long string up out of a lot of little pieces, it's a whole lot more efficient to do it with a StringBuffer, which is designed for that kind of thing, than do it with Strings, because they're immutable and the '+' operator gets translated invisibly into a temporary StringBuffer and some calls to append(), so why not do it that way explicitly in the first place, right?

So, given that the number-one usage of StringBuffer is almost certain to be to concatenating a bunch of Strings together, and given that StringBuffer is just as much a part of the Java language core as String, and given that you can use the '+' and '+=' operators on Strings...

Why in the name of all that is holy is '+=' NOT aliased to 'append()' for StringBuffers?

Argh, I say. Argh.

Date: 2006-11-15 10:52 pm (UTC)
From: [identity profile] flwyd.livejournal.com
Because String + is already a concession?

Since Java is all passed by-value, a += b doesn't modify in place, but is really just shorthand for
a = a + b
And when a is a StringBuffer and b is a String, that turns into
a = a.toString().concat(b)
which is what you're trying to avoid in the first place.

Date: 2006-11-16 02:23 am (UTC)
From: [identity profile] madbodger.livejournal.com
Well, since Java is open source now, you could (theoretically) go and fix that little gaffe.
And discover the joys of unintended side effects.

Date: 2006-11-16 09:27 am (UTC)
From: [identity profile] jofish22.livejournal.com
Use a Mac!!

Oh, wait, no. Use Python!

Date: 2006-11-16 05:53 pm (UTC)
From: [identity profile] boat-of-car.livejournal.com
"Well, since Java is open source now, you could (theoretically) go and fix that little gaffe.
And discover the joys of unintended side effects."

Oh, I would *so* go back and re-learn Java if it were Beemerized: just think of all the wise and unique things it could do...and, as a bonus, it would have a really cool mustache...