Nothing is Perfect -- Why Can't We All Just Get Along

I was going to continue my thoughts on simplicity, but now I think I might have been better off not bring it up afterall.  That's because I was going to give some examples of complexity to better show where we miss simplicity.  But apparently some people just can't handle it when someone like myself says something isn't perfect.  I'm not going to name it here, but I recently said something wasn't a silver bullet -- and now I'm being bashed in their blogs and forums.  It seems I'm continuously negative, even trash-talking, and just down-right untrustworthy -- I had no idea.  They also found a couple of other times when I said this thing wasn't the solution to every problem.  Of course they don't mention the times I've said this thing was a good thing in other ways, as well as a great learning example.  And while they like to say I'm just trying to sale my O/R mapper, they conveniently ignore the fact that I didn't mention my mapper in these comments.  Not to mention that I've said worse things about my own mapper -- its also not for everyone, and other mappers have even more features.

So why is it that some things in the software world become untouchable, and people aren't allowed to say they are less than perfect?  I've seen people in the past giving good honest opinions be bashed for it, and as a result a lot of real architecture questions go unanswered since no one is willing to step up and get bashed.  Heck, one time I asked a publisher if I could get out of a review for a book I requested because I couldn't find much nice to say about it -- and of course they gladly accepted my offer to not review it!  And yet I'll admit I wanted out just as much as they did, because I knew my "opinions" could be ridiculed by those that wanted to defend the authors and their subject.  But that brings me back full circle, for my biggest complaint with that book was that it was full of the most complex examples that in my opinion made their subject far worse than it really was.  But how can I really talk in a meaningful way about simplicity without examples of things that are too complex?  I've learned the most from looking at such short-comings, both my own as well as those of others.

13 Comments

  • I've seen some amazing arguments on the asp.net forums by the authors of a few different O/R mapping tools. They get very nasty. But not as nasty as some of the opinionated people in comp.object



    Still, its the internet. People say cruel and things all the time. The trick is to not let it get to you, even if it is a personal attack on you or your products.



    Negative feedback is still positive. It just depends how you spin it.



    You're right about complexity though.



    "Simple things should be simple. Complex things should be possible"

  • I agree with the last comment. Dont let them bother you that much. Listen to what they have to say and then tell your side of the story and leave it there. If they want to be rude and post bad things about you where you cannot "defend" yourself, its up to them.



    If I dont agree with you I believe the best way to tell you that is to either email you or post a comment in the blog. But most of the times you have good things to say and I apreciate your work. :)

  • There aren't actually simple things in the world, that's a strong trend of thinking amongst philosophers nowadays :) But seriously, if you refer to ASP.NET forums, in my opinion there aren't many brilliant software developers doing active posting there. And not so brilliant ones like to write. Alot. Without constructive approach. Which is sad, because nonpragmatic and nonconstructive persons shouldn't be in the software business. But somehow there is huge amount of those people writing software.

  • Paul, if you're referring to the asp.net forum thread about O/R mappers: don't let it get to you, it's not worth it. Not a lot of people read these forums and even less would believe some random guy over an MVP like you.



    I've learned some time ago, that argueing on asp.net forums isn't worth the effort. Sometimes I take the time but afterwards I always think: why did I spend that time? Like that guy who slaughtered your mapper compared to NHibernate. Don't bother with that. If you do, you give him the credit that he knows what he's talking about. Well, he's not, trust me on that. Everyone who's looked at the code of NHibernate knows that.



    When you let them and their critizism get to you personally, you make them people who know more about the topic than you do. That's not true, they spin rethoric, marketing poop. Say what you have to say and that's it. Believe me, someone who reads your words and then theirs is not all of a sudden starting to believe them instead of you.



    You also have to realize, that the moment you decide to participate in a discussion, is also the moment you give up your defenses and you open up yourself. The more you post, the more flack you can expect, the more outspoken you are, the more people will say you're arrogant. The fun part is: your texts are also there, with arguments, with reasoning. People open for anything will read your texts and will find them trustworthy. If they read the rethoric of the trolls afterwards, it will probably more convince them you are right than that the trolls are right.

  • Hi Paul



    I have been doing research into the <non silver bullet> architecture (and architectures in general) of late, and stumbled across your comments and found them pretty interesting.



    I do agree with you that the "out of the box" features are somewhat bloaty, but I suspect that some of the users of the forum in question may not be used to constructive criticism. Never mind them. Anyway, you mentioned that there are several other architectures that are more "ready". Would you mind dropping some names?



    I'm interested in checking out your recommendations. Thanks.

  • I'm always interrested in what people have to say in the KISS department.



    I will probably do a little series of my own on the subject, when I find the time and lust for writing such a thing :)



    Furthermore, keep in mind that people tend to be a lot faster in giving negative feedback, then positive feedback.



    So by all means go for it :)

  • Um, actually Paul, if you'd read the little snippet that Rocky quoted you'd find two words in quotes: "loves" and "experts". Now I don't know how you intended for those words to be read, but I'll tell you that when I see them quoted within the context of your sentences I immediately think sarcasm with a wink or roll of your eyes. Perhaps you didn't mean it that way, but frankly I think you did and I think Rocky has a right to be miffed with you.



    I just re-read what Rocky wrote in response (over a week ago mind you) and to be honest he didn't exactly tear you a new 'hole. About your comment he wrote: "It is not the most professionally phrased comment..." and frankly I agree, you definitely could have been more tactful. Furthermore, the people on the CSLA board (linked from Rocky's site) didn't exactly "go after you" either although they were supportive of CSLA as a framework.



    Perhaps there is some other location where you are being "burned in effigy", but absent that I don't understand the problem.



    For the record I own both Rocky's book AND your OR/Mapper (paid my $50 on Friday). I find value both in Rocky's book and his other writings and I've enjoyed your writings and think your product may be valuable to me in the future (albeit for now I'm not interested in tweaking it to meet my personal idiosyncracies).



    I also think you should continue your series. I won't say that the first KISS article did much for me, but I took it for being an introduction and was interested in seeing more meat in future articles.

  • Keep up the good work, Paul. Honesty may not win you the praise of everyone, but it will probably win you the praise of those from whom you most desire it.

  • Keep ya head up, brotha!

  • "Why can't we all just get along". Good question. I've asked a few questions in the ASP.NET forums before and I always encounter someone trying to sell their product or I get flamed. Without using names, he makes another popular O/R mapper. I'm sure you've all crossed him at one point or another. I always found in the forums, the policy is "ask a simple question, get a kick in the face".



    Due to these incidents, I stopped going to the asp.net forums and turned to Paul. He gives great advice as well as asking for your thoughts on some of his own code. I saw flames being thrown at him over the "dynamic SQL vs. Stored Procedures" article a few weeks ago. Instead of flaming, why not go and do your own tests to see for yourself! The fact is that he was right. If you think he's also trying to push sales for his ORmapper. I severely doubt that. At $50 a pop, Paul isn't getting rich quick. He is simply selling good quality code minus the ego and big $$$ figures!!



    "KISS" is the way that software developers should be designing their APIs. Abstraction is key to any good design. You want to see stupid and complex designs that aren't very expandable, take a look at Microsofts Petshop 3. This is the worst piece of junk in the asp.net community. The ASP.NET Forums are awesome in my opinion with the one exception, the data provider implementation. If Rob was to build the forums out of Paul's ORMapper, they wouldn't need the specialty data library.



    I almost feel like I need to write a disclaimer at the bottom of my comments now.

  • I worked in a company inwhich Rocky was the technologist, and the company implemented his architecture all over the place. Frankly, by not being simple, that architecture tought me the value of KISS and common sense. I enjoy your work because of this.



    Keep it simple.

  • >> Would you mind dropping some names?

    If you like Frameworks, then there are several very good commercial ones that advertise in all the magazines. I haven't used most of them, although I've spent time reviewing some of them, and many of them appear to be very complete and usable. MereMortals is one that comes to mind, but there are others also. I hate to be negative (again), but you usually get what you pay for -- although certainly there are exceptions on both sides. If you like RAD, then DeKlarit is excellent, and I think there are some others that advertise heavily that might also be good. If you like CodeGen, then there are a lot of templates that have been contributed to the CodeSmith community -- but you'll have to find which ones are your style as there are many. I think there are is also a similar community of templates growing around MyGeneration, although I haven't spent any time with it myself. And of course if you just want to avoid CRUD, then many O/R Mappers are great tools, although you may still need to use them with any of the above if you want more. All I really want to say is don't just assume that because something has reached a critical mass of attention that it is the best -- the opposite is often quite true.



    >> I immediately think sarcasm with a wink or roll of your eyes

    Sorry you believe that to be the case -- it was not at all intended to read that way -- but I can see how you can think so. I used quotes because I was not talking about Rocky or anyone in particular at all -- I was simply saying that you shouldn't blindly think that anything is perfect and ready to be used -- regardless of who is behind it (myself included). Maybe I read it differently, but my subject was really not CSLA at all -- it was about thinking code gen could be a silver bullet -- and CSLA was simply an example I pulled since it is well known. Yes, I did not say its great and should be the basis of your solutions, but neither did I say it was terrible and should not be the basis of your solution. I owned Rocky's VB6 CSLA book, and now his .NET CSLA book, and I've learned a lot from them. I also enjoyed his conference sessions more than most, and I thought he made excellent and unbiased contributions to the discussions on my project where I used CSLA the day he came. My beef is that CSLA has gotten a life of its own and that many people using it do act like its perfect and ready for every scenario. I would never make such claims about anything, not my product nor any category of products -- but there are some in the CSLA community that do just that. I'm not saying everyone does this, but there are enough that do this and make it difficult for any other views, as evidenced by this thread. Finally, I've been amazed at how many people contact me by private email to say thanks for saying CSLA isn't perfect -- and to share their own less-than-perfect stories. And yet they insist on anonymity.



  • Paul - I hope you don't stay silent, regardless of whether or not anyone/everyone/someone agrees with you or someone else, the discussion is good regardless. Personally, I enjoy hearing alternative viewpoints because it helps me think more thoroughly through my *own*, providing me the opportunity to learn. Now, not everyone takes that opportunity, and some don't see it as such until much later, but it does happen for some of us nonetheless. If you decide to stay silent on some issue that you normally would have commented on, I feel you are cheating yourself and the community (not that you are obligated to us in the least!) from healthy (albeit contentious at times) debates.



    Growth does *not* happen without opposition. That is a true principle regardless of the domain.

Comments have been disabled for this content.