The Black Art of Good Design
I’m willing to bet that any reader of this blog is likely to think of themselves as a savvy developer type who can, before breakfast, design any number of APIs, implementing said APIs, and swindle a bunch of people out of a ton of money along the way.
What has struck me recently however (beyond the fact that the above assertion is analogous to 90% of people claiming that 90% of people are stupid) is the orthogonality of coding and design.
There are a ton of developers who can write a mean algorithm. They can identify a problem and manage to digest the salient points with enough success to plop out an implementation that does exactly what it says on the tin.
Interesting enough though, this has sweet FA to do with design. Yes, the piece of software performs its function beautifully, efficiently, and one could argue, elegantly. That says absolutely nothing about its design.
Java, specifically, goes a long way towards ramming down a set of design principles. Said principles are followed fairly blindly by most practitioners. The OSS world is awash with examples of people who have read the right books, but have absolutely no skill or talent at conceptualising or grokking the underlying principles behind the books. To them, the design pattern is an end goal, not a tool. To pick one example (out of thousands), look at Matt Raible’s OSS efforts. It has inheritance! It uses PATTERNS! It is LIGHTWEIGHT! Yet, I’d argue that it’s very badly designed (if you don’t believe me, just try getting it to do anything other than the very very basics.)
So what’s the acid test for a good design? I have no idea. The closest I could come up with is A good design allows your code to do things you never expected it to have to do. It’s not about ‘oh I’ll add an interface here so I can plop in different implementations’ when there’s no sane reason you’d ever need more than one implementation, for example. Having made that assertion though, I’d imagine it’s pretty clear by now that I have no solution or fix. If you’re into that sort of thing, you can try befriending a fowlerbot, working your way to the top, then perhaps running your genitalia over his beard in the hope of getting some use out of the smug bigoted little fucker.
Another example (sorry Cedric) is TestNG. Cedric is pretty good at design, the code for TNG is on the whole quite good, but there are definitely some points where one could argue that bad design decisions were made. For example, there are interfaces for simple objects that have both getters and setters specified, which makes creating a read-only implementation pretty unpleasant. I’d also argue that putting getter+setter style methods in an interface is an implementation leak anyway, mind you. The upshot of this bad design is that the remote API for getting back TNG results is different to the local JVM API, and thus two sets of classes have to be maintained as a result of this bad design.
Another example is method ordering. There is currently a need for TNG to (internally) choose a different invocation order for the total set of test methods, but the design as it stands currently makes this change very difficult and tricky. Thus, another bad design!
On the other hand, there are plenty of other well designed areas which have been reused in some fairly unexpected ways, all of which points to decent design.
TDD for example has an interesting approach to design. It assumes, up front, that you can’t design your way out of a wet paper bag. You write tests that ensure the system does exactly what it’s supposed to do, nothing more and nothing less. You want to change things? You do it the brute force way by stomping all over your codebase and endlessly refactoring, it’s a lot more work but, in theory, any thoughtwanker can do it. Of course the downfall of THAT approach is that some portions of TDD STILL end up requiring someone intelligent, so you’re back to square one of needing someone smart, instead of swappable sweatshop bodyparts.
Yet at the end of the day, a depressing majority of java codebases look like a 3 year old had sat down in front of a large bucket of design patterns and plucked a fistful and hurled them in the general direction of some code. Proving that the tooling approach can, at best, only help the mediocre claw their way up to the average.
September 14th, 2005 at 3:05 pm
First?
September 14th, 2005 at 3:08 pm
Did you know that Spring AOP/IoC can help make your replaceable objects easier to replace ? At least provided that you buy training from me.
September 14th, 2005 at 3:41 pm
So true, so true. I have been saying this for the last 2 years. I love to see asshats in interviews ask about my patterns experience. As if blind faith in patterns will save their retarded software from being being shitcanned 6 mos after release.
September 14th, 2005 at 4:11 pm
Something very wrong with this post, the title has the word GOOD in it and I didnt see asshat or poo or anything related.
Are you getting soft?
September 14th, 2005 at 4:22 pm
or “wankstain”
September 14th, 2005 at 4:25 pm
I guess he has found his mom’s anti-psychotics and tried a pill or ten. Yeah, that’s sissy, girlie-man material with hardly a mention of interesting, forbidden orifices. Much much too constructive.
September 14th, 2005 at 4:34 pm
“Yet at the end of the day, a depressing majority of java codebases look like a 3 year old had sat down in front of a large bucket of design patterns and plucked a fistful and hurled them in the general direction of some code. Proving that the tooling approach can, at best, only help the mediocre claw their way up to the average.”
We all know what the problem is - Java itself. Sun designs a braindead language that is horrible for XP and then we get mutants pushing out design patterns and other crap that nobody cares about.
It’s next to impossible for java code to evolve gracefully because the language doesn’t allow it. Welcome to the COBOL of the 21st century you little monkeys. At least you have your fancy IDEs that can do half the thinking for you. Now if only corporate could get rid of the monkeys all together and replace them with really smart IDEs.
September 14th, 2005 at 4:54 pm
How much has LISP evolved over the years, Dickieboy?
September 14th, 2005 at 5:18 pm
The best thing to happen Java is for Sun to silently start deprecating it.
Basically, Sun needs a skunkworks project that works in parallel with Dolphin (7.0). Get people like Guy Steele and a couple other very smart people involved, but keep it small and keep it secret. Look at Sun’s past efforts like Self, and other languages like Dylan, Lisp, Smalltalk, Ruby, and Python and analayze what they’re doing right and what they’re doing wrong in regards to what they believe are the needs of future programmers.
But most important, don’t intentionally dumb down some other language and don’t intentionally design it for corporate.
If Sun plays the “let’s see what Microsoft is doing with C# and take bits and pieces of it” then Java is doomed. They won’t satisfy the people that liked dumbed down C++ and the people that have always hated Java still won’t touch it.
September 14th, 2005 at 8:32 pm
i’ve read plenty of the right books and fully realize the shortcomings of doing this alone. if there are no projects in the pipeline and no mentors to be found (as was the case from 2001 thru 2003 at my last place), reading the right books is better than doing nothing. you gave reasons for tossing raible’s and cedric’s stuff under the bus.
that done, point to something you think is absolutely great, a framework you think is super tight and the epitome of good design.
September 14th, 2005 at 9:35 pm
“It’s next to impossible for java code to evolve gracefully because the language doesn’t allow it.”
“How much has LISP evolved over the years, Dickieboy?”
Code evolution vs Language evolution. ’nuff said.
September 15th, 2005 at 12:33 am
Only an egotistic ass would consider themselves a great designer. Most good programmers accept that any design choice is going to be half-ass at best and need to change/thrown away/deprecated sometime. I find that good programmers constantly criticize their own work to try to learn how to do things better. Great design is rare. Most programmers (myself included) belong in the 90% that suck. With enough persistence and due diligence, it can reach the “doesn’t suck too bad” level. every now and then, some lucky bastard gets lucky and reaches “hey, this don’t suck” level. but after that, everything they write is doomed to suck.
September 15th, 2005 at 3:03 am
“La critique est aisée mais l’art est difficile.”
September 15th, 2005 at 3:25 am
I agree with peter lin, it is so rare to find good designers who get it right the first time. And if they do, then 6 months later it’s wrong. Not because the design ends up being wrong, but because requirements change, features change, or whatever.
I try to constantly critique my code and try to find ways to make it better, easier to read, rely on less dependencies, faster, more efficient, but most importantly easy for other developers to read. I’m always looking at the tests that I wrote and wonder “is there a better way to do this” or “what would Hani say if he saw this?” and the answer to that being “steve can roll around in my fetid pile of steamy feces I left in the toilet if he thinks this is good code.”
I think about 90% of the code out there sucks and that’s because 90% of the developers suck. I can’t stand frameworks and APIs and try to stay away from them like they are the plague. There are only a handful that I will ever use because they actually do make development easier. Hani would disagree with all of these because Hani doesn’t even like his own penis. But they are: IDEA, log4j, JUnit, java.util, java.io, java.lang, java.text, and maybe things like Hibernate, Tomcat, if you absolutely have to have a database and a servlet container. I can’t stand XML I think it’s way OVERUSED everywhere.
September 15th, 2005 at 3:49 am
No bile, no cookie.
September 15th, 2005 at 5:16 am
[Trackback] The latest BileBlog from Hani strangely resonated with me today:
So what’s the acid test for a good design? I have no idea. The closest I could come up with is A good design allows your code to do things you never expected it to have to do. It&…
September 15th, 2005 at 5:41 am
Nice one.
I love the people who reinvent C-style header files in Java — a/k/a IWank and WankImpl. Why not just Wank? You’ll get to the fun part sooner!
–
So what’s the acid test for a good design? I have no idea. The closest I could come up with is A good design allows your code to do things you never expected it to have to do.
–
Yes, sane, consistent behavior in the face of perversity is one aspect, and yes, it’s a quality where the foundations are set during the earliest part of the design. On the other hand, there are negative examples of this sort of “good” design that are security nightmares. (Hint: DO NOT EXPOSE a ClassLoader to possibly malicious end users over a simple CGI-like interface. Even a container that implements security can permit *bad shit* to happen within the application context.)
–
TDD for example has an interesting approach to design. It assumes, up front, that you can’t design your way out of a wet paper bag.
–
I disagree, sort of.
TDD is retarded, but it is a safe and effective remedy for writers’ block. That the end result is invariably a pile of warm suck is unfortunate, but it’s better than no code at all.
Once there is code, then there is code to be refactored. Subtle design issues become visible to the attentive developer, and then comes a chance to actually solve the problem correctly.
September 15th, 2005 at 12:25 pm
>> TDD is retarded, but it is a safe and effective remedy for writers’ block. That the end result is invariably a pile of warm suck is unfortunate, but it’s better than no code at all. <<
Retarded? Nah. Not in the least bit. First, any production code of significant value without tests must be, without exception, broken and shitty. So you have to have tests. Second, then why not write your tests first? If not you write 2 months of production code, 2 weeks of test, then realize that “wow, I only actually tested 20% of my code. I suck and I should stick my finger in my eyeball.”
I have found TDD dictates design. It is dictated not by what I think the design should be, but by actual use cases. All of us developers think of more use cases than are actually required by the product, that’s why we write complicated frameworks, API’s and other madness. Why not code for EXACTLY what the uses cases demand, and absolutely nothing further?
September 15th, 2005 at 12:31 pm
“So what’s the acid test for a good design? I have no idea. The closest I could come up with is A good design allows your code to do things you never expected it to have to do.”
Wow, how incredibly naive and stupid. It’s impossible to design code for things you never expected it to do. Otherwise, you could just start writing code for something and later some dude can come in and say, “I need your code to launch the space shuttle.” If your design can’t handle it, I guess it sucks, right? It’s like the stupidest fucking thing I’ve ever heard you say, Hani. You can only design for things you expect might happen. If something happens that you didn’t expect and your desing accomodates it, it’s called *LUCK* you fucking dumbshit.
Far too many architects try and design software for things nobody, including their customer, expects it will ever need to do. Why? Because on their last project they needed it, or because they read Fowler said they should do it, or they suffer from paranoia, or because they just think it would be cool, or because their mother’s molested them. Sound like anyone you know??
September 15th, 2005 at 1:13 pm
I am also a very critical person. My ability to see patterns and potential makes me very bitter, because I see what could be as a backdrop for what is. I give everything of myself, and demand the same; when I do something, you can rest assured you’re getting the best I could do at the time, with commitment. I expect the same from others. I have rarely been satisfied; a few musicians, a published author or four (Hofstadter, Potok, Gibson, Lee), and even a software product has gotten it bloody well right every now and then, but most of the time… all I see is what could be, and it hurts.
You don’t know me!
I am not dead!
September 15th, 2005 at 1:50 pm
Hmm.
–
I have found TDD dictates design. It is dictated not by what I think the design should be, but by actual use cases.
–
“Proof by example” is not valid reasoning, and it’s the sad basis of nearly all unit tests. I have seen *a lot* of code that passes unit testing effortlessly, yet chokes on “real world” data. I am the only person I know who routinely uses java.util.Random to produce unit test case data. Why? Because I like my tests to actually *test* a meaningful statement, and not be examples of deliberate or unconscious “cherry-picking”.
TDD is stupid because it’s like blinders on a horse; the poor developer concentrates on a particular tree instead of the forest. Very often, this has tragically entertaining results when some poor shmuck has to put pieces together developed by various cherry-picking slimebags.
September 15th, 2005 at 2:09 pm
–
Wow, how incredibly naive and stupid. It’s impossible to design code for things you never expected it to do.
–
Yes, it is.
Ask any OS implementor.
September 15th, 2005 at 2:16 pm
There is one perfect opensource framework:
http://www.bernardbelanger.com/computing/NaDa/
Weighing in at 1 byte, it clearly does not only download sufficiently fast but also has these advantages:
- absolutely bugfree, rigorously tested
- designed for extensibility: whatever your requirements are, you can extend Nada to meet them. In fact, you have to extend Nada.
- KISS: If you like to keep things simple, you will appreciate Nada for its simplicity. No real learning curve involved. Almost intuitive to use.
- DI: Nada has no dependencies, but lets you inject any dependency you can find.
- Works on any platform and any language.
etc. etc.
If you think you can’t do it with your current framework, do it with Nada.
September 15th, 2005 at 3:12 pm
Please buy my book
Matering Resin
it has rave reviews on amazon.
September 15th, 2005 at 3:49 pm
>> all I see is what could be, and it hurts
mentored anyone? if so, a sincere “thank you”. if not, please do. you won’t be able to affect a sea change in the flawed world that vexes you so, but you will marginally improve things, you’ll offer a shot at intellectual freedom to the couple developers you counsel, and who knows, they may do the same for a couple others given your example and so on.
September 15th, 2005 at 5:33 pm
WTF, you guys (J Otinger and erick reid) are queering the bile blog.
September 15th, 2005 at 6:49 pm
“Yes, it is.
Ask any OS implementor.”
I see the moron express bus has arrived. I’m guessing you’re in my “mother molested you” category.
September 15th, 2005 at 8:27 pm
–
I see the moron express bus has arrived.
–
Yep, came to pick you up. Do you have a point there, or do you just comb your hair funny?
If you want to write something complex that *won’t* make you want to gouge out your eyes in horror, then a sensible decomposition of simple functionality and a means of aggregating this functionality can let you construct software that can and will handle things it was never designed for.
Software development is NOT about “giving the customer what he wants”. Why? Because the customer is very often a fuckwit, and will change their minds in a month or two. Flexibility is the only sensible defense.
September 16th, 2005 at 7:12 am
“So what’s the acid test for a good design? I have no idea. The closest I could come up with is A good design allows your code to do things you never expected it to have to do.”
hahahahahaHAHAHAHAHAHAHA
HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA
HAHAHAHAHAHAHAHAHAHAHAHAHAHAH
AHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAH
AHAHAHAHA
September 16th, 2005 at 10:56 am
I am thrilled at the ongoing successes in Iraq, and while I am not pleased with the loss of life, I am indeed ecstatic with the resolve, the dedication, and the resulting defeat of a regime who, in my opinion, can only be regarded as representative of the grossest corporate evil in human culture today. That said, I would ask that the goals of the United States coalesce in drives to resolve a few specific issues, in order.
For one thing, please, please, please make education the number one priority. More than national defense. More than infrastructure. More than research… more than anything. Our nation is dying because we’re bloody retards. Those who can think critically and rationally - on all sides of the political fence - are happy accidents, not products of our education system. I would say that if we can really, honestly, truly fix our education systems, focusing on the core sciences and humanities, everything else would fall into place. Those who are able to think critically would see that national defense is important, and how to pursue it without a set of knee-jerk reactions. Those who can think rationally can see how infrastructure preserves the functioning of our economy and rights. Those who can think critically can see that research is the key to our vibrant economy, that production and not consumption is our strength.
Without critical thought, you have a set of unwilling and unpredictable random events, all hopefully being herded in such a way that nobody gets hurt too badly. Without reason, you have people screaming, “I suffer!,” unable to figure out that their suffering is a small thing in the face of the universe, and a willingness to fight the suffering constructively is the best way to defeat suffering.
In Iraq, I’d suggest that the governmental system is far, far less important than this same goal: education. Teach them how to think critically! Rather than impose abstract ideals of self-governance or freedom or capitalism, teach them how to reason for themselves. This is a culture whose leaders apparently honestly expected them to not be aware of coalition tanks not twelve miles away. “We have repelled the invaders!,” they said, against all reason, while the “invaders” were mere leagues away. This is an indictment against the way these people live, a damnation of their thought processes that they accepted it in any way. They need critical thought more than we do. A nation of Arab rationality in the Middle East would be the beacon the region needs. Perhaps the historical animosity towards Israel would persist - but a rational discussion need not result in the exchange of weapons fire, or the death of dancers in some club over a political statement.
Thirdly, focusing on the United States again, I would ask the administration to sponsor - after education - alternate energy research. In the last State of the Union address, you suggested $1.2 billion in alternative energy resources. While I was pleased with this, moreso than nearly any other point in the address, I fear that this sum is far too little. We need alternate energy, Mr. President. We need it now. If, for example, hydrogen cells were efficient for transit, many of those who stand against us, yet profit from our consumption of oil, would be beggared within a generation. A mere generation after which they would be free to scream their disapproval to the stars, yet they would have no funds with which to arm themselves or others. What’s more, alternate energy research would enable us to preserve our landscapes and reserves. I understand your willingness to drill for oil in Alaska’s pristine forests, yet I was overjoyed when Congress refused.
Lastly, I would beg the administration to cease the assault on civil rights. The DMCA, the Patriot Act - both have good intentions, and destroy the fabric of this great nation, the right of its people to be self-determining. Education would teach the young and old alike not to pursue destructive behavior, and it’s well known that prevention is worth far, far more than punishment. The Patriot Act destroys the rights of the innocent; the DMCA destroys the right of commerce, turning transactions not into ownership of media but into temporary licensure of the content of the media… where possession is no longer nine tenths of the law but absolutely none of the law. I implore you, please reverse this course!
Thank you.
September 16th, 2005 at 2:35 pm
Who is that J Otinger clown?
September 16th, 2005 at 3:02 pm
>> queering the bile blog
ok, sorry, but i’m outright laughing about this. :)
i’m just not in the state of constant surly froth needed to effectively participate in this blog, and am amazed hani can stay so thoroughly tweaked.
“queering the bile blog” :D hooooo…
September 16th, 2005 at 4:38 pm
You don’t know me.
I am Joseph B. Ottinger. Nobody calls me “Joseph,” except once. It’s a psychological icebreaker, a way of saying “Sure, my name is Joseph, but please call me Joe, because we’re on familiar terms.” I do this because I would be a recluse, a hermit, if I didn’t forcibly find ways to establish contact with other humans.
I am irreparably flawed. Physically, I am hypoglaucemic, with a metabolism far faster than it should be, requiring constant sustenance. I also have a bilateral cleft palate. Mentally, I am a monopolar depressive, which means I get all the benefits of massive depression without the happiness of occasional mania.
.
I am a Jew. I am a Jew who studies the momentum his Jewishness gives his personality and mores, and is unapologetic about it. I will never forget what I am, or what brought me here, the fires of Europe and the blades of Russia, the whips of Egypt and the chains of Babylon.
I am broken. Is that not enough? Being broken, I strive for completion, and I don’t even know what completion will manifest itself as. Quoting Rush’s “The Fountain of Lamneth,” I’m forever at the start… and still, I am.
You don’t know me.
September 16th, 2005 at 6:08 pm
“I am a Jew”
“I am broken”
Logic does not compute… Logic does not compute…
Memory Overflow…zzzzzzzzzzzswbling blang S:Lc
September 16th, 2005 at 6:08 pm
“Wow, how incredibly naive and stupid. It’s impossible to design code for things you never expected it to do. Otherwise, you could just start writing code for something and later some dude can come in and say, “I need your code to launch the space shuttle.” If your design can’t handle it, I guess it sucks, right?”
1. You are one of theose assholes who makes your code completely brittle and when something changes and it takes a someone smarter than you to fix it, you say “how could I have known?.” Go to hell.
2. You are too stupid to realize that ‘doing something unexpected’ is not the same as ‘doing everthing unexpected’. Retard.
September 16th, 2005 at 7:46 pm
What all of you seem to forget is that none of this is really important. Not Iraq, not log4J, not design, none of it. Cause once a big ole asteroid hits this stupid rock we’re all gone in an instant. So screw it all! Opinions suck - why have ‘em? So do comments - why make ‘em?
One final thought - tdak rules he is a shining star of intellect in this black void of ignorance at JRoller!
September 16th, 2005 at 10:32 pm
I’d say good design is what happens after you write something 3 times.
That is until you understand the problem at the code level, you can’t design a nice solution.
With most commerical(internal or shrink rap) software rough enough is good enough, so QED that opportunity will never arise.
Only hobby software can lead us to enlightenment.
September 22nd, 2005 at 7:54 pm
What is this “design” you speak of?
I find that the best, high performance production code results from me drinking an 8 shot, iced Americano through a mouthful of miniature Heath bars I’ve stolen from my manager’s desk until my eyes dilate, then sitting down and banging out a nice tight set of classes from which I let my architect reverse engineer some UML. The prototype is the product! If you rock and you know it, clap your hands!
Also… Joseph… er.. Joe Ottinger, come back to the pack and quit giving the rest of the herd the stink-eye. Get back on the meds. This is a tech forum. But I have to admit, it was nice to hear a confirmation that the self-confessed mentally ill still support the Iraq war.
September 23rd, 2005 at 8:15 am
“Good Design” just means that someone *else* is able to understand what the fuck is going on inside a pile of code in a reasonable amount of time. If someone has to spend more than a morning figuring it out, it’s garbage.
September 23rd, 2005 at 3:54 pm
Hey fate - did you crash TSS again?
September 23rd, 2005 at 9:36 pm
> [Trackback] The latest BileBlog from Hani
> strangely resonated with me today:
> So what?s the acid test for a good design?
> I have no idea. The closest I could come up with
> is A good design allows your code to do things
> you never expected it to have to do. It&…
I think playstation is an example of good design (keeping aside the fact that it;s a hardware — not software).
Who would’ve expected that the mean and dangerous iraqis will buy lots of PS2 and turned them into weapon of mass desctruction?
(spot the cynicism?)
——————
September 24th, 2005 at 9:50 am
A good design is any design that makes profit. A beautifully designed application that costs more to build than it makes back in cash SUCKS no matter how lovely the code looks when hanging on your mom’s fridge. End of story.
September 24th, 2005 at 11:08 am
>> [Trackback] The latest BileBlog from Hani
>> strangely resonated with me today:
>> So what?s the acid test for a good design?
>> I have no idea. The closest I could come up
>> with
>> is A good design allows your code to do things
>> you never expected it to have to do. It&…
> I think playstation is an example of good design
> (keeping aside the fact that it;s a hardware
> –not software).
>
> Who would’ve expected that the mean and
> dangerous iraqis will buy lots of PS2 and turned
> them into weapon of mass desctruction?
>
> (spot the cynicism?)
> ——————
In that case, I think, asshole is also an example of good design. I believe God never expected that someone would dock penis in it…. but some gays are doing it anyway….
September 24th, 2005 at 4:32 pm
“In that case, I think, asshole is also an example of good design. I believe God never expected that someone would dock penis in it…. but some gays are doing it anyway…. ”
Great analogy, cowherd! Although the asshole is so well designed it’s user group extends easily beyond the circle of hot gay lovers. It is not even restricted to penises. Various fruits and vegetables have been found in this dark part of the body, and there are myths of a french baguette and even an alligator that was surgically removed after insertion. I do not believe the story about the bicycle though.
September 26th, 2005 at 1:46 am
The acide test of good design is Pleasure.
September 27th, 2005 at 10:02 am
I remember attendind a 2-day full-time session (total 16 Hrs) by Mr. Ralph Johnson, one of the GoF members, on “Frameworks”. I have 3 things to say: 1. he was not hung up on patterns. (He is verrry down-to-earth gentalman) 2. Frameworks are not “designed”, they are evolved. 3. It is not easy to write re-usable code (or Frameworks).
So where does design fit in all this? What does XP say about it? What was “waterfall” model…
Are you guys talking software or I got this link by mistake?
September 27th, 2005 at 2:07 pm
Anyone knows of a Java bulletin board system that supports more than 2 concurrent users ? I might be interested.
September 28th, 2005 at 6:18 pm
Rumour has it that TSS is switching to jroller as CMS due to rollers superior commenting feature. Any truth to it?
September 30th, 2005 at 3:14 pm
Hey “Your doctor”, don’t forget the gerbils! ;P
October 3rd, 2005 at 2:30 pm
This is getting scary… One outrageously positive bile over two weeks ago, then nothing. And more nothingness. Is there nothing anymore to hate about mankind? With the likes of Bill Berk, Prick Lowtower, Jo Udunnome in a hyperactive frenzy on TSS, there are more causes than ever for a good ol’ bile. Please oblige Mister Jordanian pilot.
October 3rd, 2005 at 3:26 pm
Your lack of understanding frameworks and life in general is appalling! Please go to http://www.java-syscon.com, sign up and start learning something.
p.s.
You Don’t Know Me….
October 4th, 2005 at 9:27 am
Good call on the TestNG interfaces containing getters and setters. Last I looked (~ 2.4) there were several classes that look like they might ought to do something other than hold data. There is no perfect design; every design could stand to be improved.
October 4th, 2005 at 12:29 pm
has anybody seen Honey lately??
October 4th, 2005 at 5:24 pm
If you buy my book :
mastering resin
You will know how to design a good java framework.
Hi, my name is Prick Lowtower. I am a certified
Java Asshole.
October 6th, 2005 at 1:41 am
Hani, when the fuck are you going to write about the pathetic Java Web Start? (Sun’s equivalent of .NET Zero Deployment). That piece of shit system needs you to straighten it out. Take a look at what this guy says about it:
Why We Dropped Java Web Start (JAWS)
http://www.dynamicobjects.com/d2r/archives/002859.html
October 6th, 2005 at 2:19 am
Hani,write about Java Web Start you douche tard.
October 6th, 2005 at 2:20 am
i will fuck the hightower, then write about JAWS.
October 6th, 2005 at 2:21 am
JAWS — Sun thinks if they come up with a cool acronym (like AJAX), everyone will flock to use it. Goofs.
October 6th, 2005 at 11:20 am
Please read my article on JDJ where I gave a clear instructions of using java WebStart.
- Jo Udunnome
October 10th, 2005 at 12:58 pm
All your designs are belong to me.