- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
TRWTF is hiring an editor who can't handle basic English grammar. I mean, they have this problem on Slashdot, but at least they're native errors that are easy to skip over.
Admin
And to everyone who continues to live in the light of the Sunny star after the Oracle company bought it, be warned: they're going to sue you too.
Admin
"I’m surprised he used StringBuilder- after all, in big data procession, you should to avoid the creation of many objects in the Java, and StringBuilder is definitely an object in the Java."
What alternative do you suggest? If you hadn't used the StringBuilder, more objects would have been created in the Java
Admin
The real issue in this case is that constants should have a name that reflects their semantic meaning, not one that describes their current value.
CURLY_BRACKET_OPEN is a stupid constant name, it should be something that describes the purpose of the constant, like JSON_BLOCK_START. That way when the JSON spec changes and the block delimiters change to @ and ~, you can just change JSON_BLOCK_START to @ and JSON_BLOCK_END to ~ in one place!
Admin
You don't mess with The Java.
Admin
Very much this. And as to why they would do this in the first place, probably all programmers have had spec's change on them halfway through a project, or after go-live, so the upshot is basically nobody trusts specs. Even the formally agreed ones, in some cases!
Admin
Exactly. Reasoning that this is good in case JSON specs change is unnecessary. Clarifying constant strings such as ": [{ " is reason enough to use constants that describe semantics of the characters (such as BLOCK_START, BLOCK_END).
Admin
Yeah, being an Object Oriented language don't seem to ring a bell on his little head.
And just for the record if some future generations read this article, the correct way to do it would be to use a mutable singleton, not a stupid StringBuilder.
Ah! And kids, do not try this at home, leave it for the cloud enterprise.
TRWTF is that after six years or so, I just found out that the comments and the forum use different "text editors".
Admin
To answer Remy: CURLY_BRACKET_OPEN and many other similar things are used instead of constants, is because printers could not print many computer-specific characters. This means, that they would often be printed as spaces instead, and somebody recreating the program from paper, would get errors because of these missing characters. Of course, these days this practice continues, not because much is printed, but because many fonts have the same issue and people tend to vary widely in what font they use to view a program, unaware that their font does not contain all characters, or makes i look the same as l, o the same as 0, and so on.
Admin
Admin
Admin
The Java, it burns!
Admin
-Knock, knock. -Who's there? Very long pause. -Java.
Admin
And do not, under any circumstances, put objects in the Bat Man. He really, really hates that.
Admin
Admin
We don't need to do any of that. Like I said, with WCF you can do this in a matter of seconds:
do this in two seconds: [DataMember(Name="sameNameAsThePropertyJustStartingInLowerCaseLikeYouAsked")]
You'd do well at our place with anti-productivity like that. They'd probably make you lead architect or something, while anyone who actually knows how to use the .net tools we have gets assigned to a Delphi project.
If you reinvent the wheel enough times at some point those wheels will form part of the big truck of fuckup which will not only run you down, but reverse back over you a couple of times for good measure.
Admin
I've got one such use for you. Next time someone builds something like this, tell him to quit pissing in the Java.
Admin
The optimization totally make sense for me, precondition on they have profiled and noticed garbage collection is an issue with the JSon Serializer library.
Once I was in QCon and I heard about Twitter data analysis guys are doing exactly the same thing, going primitive, Flyweight pattern to avoid object creation, array instead of list, and much more.
One thing they could have done better is to allocate memory in block, reserve a single buffer for building JSon strings and keep reusing it to avoid resizing, and if code bloat is an issue write a code generator instead of hand coding them.
Admin
Look, I don't care how (in)efficient the damn code is. It's cretinous.
You don't even need to use .Net decorations and such. There are perfectly good C# libraries into which you can feed JSON Objects, JSON Arrays, JSON Values, JSON Strings and JSON Numbers. Them things is all JSON is. And what do you get? JSON!
That's kind of the reason JSON was designed that way.
It was not designed with the intention that bit-headed lunatics would either (a) argue about the merits and demerits of deprecated or otherwise Java string concatenation constructs or (b) tack an endless number of terminator tokens onto a string inline without benefit of procedures, object-oriented programming, or (here's the bleeding obvious thing when you're talking about parsers) recursion.
What is wrong with you people?
Admin
This is a really good tip especially to those new to the blogosphere. Brief but very precise information… Thanks for sharing this one. A must read post! save refuges