Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: DBI vs DBIx::Recordset, etc.

by footpad (Abbot)
on Mar 09, 2001 at 03:25 UTC ( #63129=note: print w/replies, xml ) Need Help??

in reply to DBI vs DBIx::Recordset vs princepawn vs chromatic

Like PsychoSpunk, I've been following this thread with some interest, though I'm withholding certain votes until I see chromatic's full response to the original article.

In reading the various replies, it occurs to me that perhaps we should step back a moment, take a deep breath, try to pull together a few recurring themes, hopefully without offending or angering any participants so far.

If I'm reading things correctly (and I freely confess that I may not; I've been trying to reduce the caffeine and, well, withdrawal and all), you have three main concerns:

  • It would have been courteous to discuss the merits of your original article privately before presenting them to the general public.

  • You find DBIx::Recordset to be a far superior way to populate databases than other approaches, including (but not limited to) handing rolling INSERT queries using hashes (or slices), forcing all Perl programmers to build general subroutines for common atomic operations, calling the DBI API directly, and so on.

  • You're more than a little frustrated that criticism being levelled against your example code, as opposed to discussing the merits of the previous point.

With regard to the first point, I agree with your sentiment. In an ideal world, you would have been given the opportunity to discuss the technical merits privately before having them aired publically. As you're well aware, though, this isn't a perfect world and different people have different ideas about professional and personal courtesy. As I've said previously, the only thing we can really do to improve the situation is to demonstrate these qualities ourselves. As one Master discussed many moons ago, it is better to treat others the way you would have them treat you.

You and I have previously discussed the difficulties with effective online communication. Other monks have tried to suggest similar ideas.

Please understand; I'm not trying to dredge up the past or be offensive. I'm trying to offer some food for thought (this *is* a meditation, after all). Tilly raises some valid points with regard to listening and I think it's very important that you not let your frustration over certain points prevent you from seeing and meditating on those points.

Personally, I'm glad you chose to rejoin us and I've been pleased to be able to learn from your recent posts. I hope you'll continue to contribute to the Monestary and help others learn from your experiences. I believe you are a valuable member of the community. Indeed, one of your threads helped me though a problem I was working on some time back (though I should update that node to include my latest incarnation of that project).

I would offer one piece of advice that chipmunk recently offered me during a CB discussion. It may help to tone down the rhetoric a few notches. It may even help to use a trick I use at times: compose the message off-line, let it sit for a couple of hours, and then revisit it. You may find that certain phrases or choices that aren't completely relevant to the points you really want to make.

I do think danger raises an important point regarding the criticism given to authors. In certain cases, generally columnists for certain titles, it's possible to allow the author to respond before publication. Apparently, the editor of that list you mentioned doesn't operate that same way. There's not much to be done, save perhaps by emailing said editor and (as nicely as possible) describing your disappointment. Perhaps you'll make a difference, perhaps you won't. But at least you tried.

Also, keep in mind that, in many cases, it's difficult or impossible to allow authors the opportunity to review criticism before publication. You mentioned deadline difficulties when composing your article. All editors face the same problems on a magnified scale. I noted, for example, that at least two typographic errors appeared in your article. This suggests that the editor that approved its posting was under similar pressures.

There are a set of skills all sucessful authors learn, such as writing actively, careful selection of supporting material/arguments, trimming unnecessary prose that does not directly support the goal of the work at that moment. (You can tell these are skills I'm still learning.) You only learn these through through practice and experience. You may wish to continue to practice those skills, much the same way you continue to practice your Perl skills by writing more code. You won't get everything published, but the act of writing an article stretches and improves your skills.

Taking a time out between the composition and the submission of an article may help in this regard.

In previous posts, I've mentioned that I have an interest (and degree) in Drama. I've acted in several community theatre productions (~50) that have been subsequently reviewed in local papers. I've gotten good notices and I've gotten crushing ones. It took some time for me to learn that all feedback is valuable. When I was able to accept that person's opinion as just that and to actively look for ways to improve my performances through the feedback provided in the negative notices, my acting and my reviews got better. I'm no Olivier by any means, but I have my moments.

In a way, you're going through a similar process in your participation in this community and the larger Perl community. You clearly want to help and you clearly have information to share. You're also making clear progress; please don't stop now.

I cannot comment on your second point, primarily because you have far more experience with DBI than I do. Your article did succeed in one way, however. It let me know of another way to do it. I would have written it differently, but that's to be expected. (I'm not sure, but I believe that both arturo and PsychoSpunk mentioned similar results.)

That said, I believe it's important to point out that you and I each have different experiences. This doesn't make you right and me wrong or vice-versa. If we allow it, it can help us grow as individuals, as professionals, and as Perl programmers. Every monk can learn and (except with one or two exceptions) has learned from their peers. This can only happen, however, when we approach each other's words and ideas with an open mind, one allowing and celebrating alternate points of view. I believe this is part of what tilly was trying to express.

This is also part, I believe, of the unspoken messages in other replies. Remember the Perl mantra: There Is More Than One Way To Do It. By sharing our experiences and the ways we've done it, we learn more about Perl and more about the art of programming in general. Please try to take all feedback, no matter how heated or abusive, in that light. Now that NodeReaper is slouching about, you'll rarely get flamed simply out of spite.

I say this because tilly is trying to help. He's also trying to help the lurkers that read your meditation after it's scrolled off Newest Nodes. Chromatic, likewise, is trying to help. As near as I can tell (having not read his original reply), he's trying to make sure you've thought things through and he's also trying to prevent those that follow from believing that there's only one way to put data in a table.

You say that you have thought things through. Great; I'll accept that. Consider, though, why that thought wasn't clear in your original presentation of your ideas. Personally, I can see your enthusiasm for DBIx::Recordset, but I don't fully understand it. Clearly, both chromatic and tilly missed it, too. It might have helped to provide more details about why you dislike the DBI API. You gave some; more might have helped. That's only one suggestion; others are certainly possible. In any event, remember that "obvious" and "intuitive" mean different things to different people. What's crystal clear to you may be impenetrably opaque to me.

There are a lot of unique ideas in our community. Each is appropriate for certain cases and completely useless in others. Part of the TIMTOWTDI mantra obliquely refers to the programmer's responsibility to review each solution with an eye for the current context, to find the right idea for the specific context in question. You've made the same point in other posts. I think you agree with these folks more than you may realize.

With regard to your final point, I have to confess I agree with the sentiments that you might have chosen better example code. Yes, it does illustrate a good point, but it may have helped to clearly note in the text that your examples are (and were) extreme cases that should not be used in a production environment. Heck, I've awarded you brownie points for a) confessing that it was from one of your older applications and b) providing a second example based on your current experience level that illustrated the same point. I realize you suggested that obliquely, but I think those points could have stated more clearly.

Again, the time out trick may help you with that in future articles. I know you were under deadline pressure, but there's nearly always time to review content before submission. As an example, I wrote the rough draft of this reply, saved it, and then went to a dance lesson. When I returned, I edited it as carefully as I could. While I'm sure there are typos and more to be cut, they're a lot fewer and the points are a lot clearer (I think) than they were in the rough draft. Even if you do nothing more than takes 25 minutes to get a sandwich and walk around the block, as you did during yesterday's CB discussion, it will still help clear your head and focus on the actual message you want to communicate.

Please understand I am not trying to offend, upset, anger, frustrate, or otherwise raise your blood pressure. Like chromatic, tilly, and the other monks, I'm trying to help. While my technical expertise with Perl cannot hope to match that of the masters or even you, I am trying to share some lessons I've learned in my life and while serving in the Monastery.

I hope they help...I think they can.


P.S. Minor feedback: I found your reply to tilly a little hard to read because your normal style seems to italicize quoted material from your reply, which appears in normal, not bolded text. Just an FYI, that's all.

Replies are listed 'Best First'.
Re (tilly) 2: DBI vs DBIx::Recordset vs princepawn vs chromatic
by tilly (Archbishop) on Mar 09, 2001 at 03:45 UTC
    I do want to help. If I didn't then I would just walk away and I wouldn't spend energy typing.

    What I see is someone who puts in a lot of work and learns lots of facts, but is not integrating all of that together into becoming a good programmer. I want to see that transition, and I felt it necessary to make it extremely clear that there was something being missed, and then to try to figure out and explain what I thought the cause was...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://63129]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2021-01-23 09:10 GMT
Find Nodes?
    Voting Booth?