> Once again, someone pops in with this reason for doing 
> something. It troubles me that this manner of thinking is so 
> prevalent, as it most certainly means it's come about from 
> actual experiences dealing with people.
> 
> I don't feel that this sort of because-you-might-not-be-smart-enough
> type of argument is a good reason to do anything one way or 
> another. I'm not taking a shot at you here Dave, far from it, 
> but it seems that every time someone asks "why shouldn't I do 
> x this way," someone points out that a good reason has to do 
> with the fact that people won't be able to do it right or 
> won't be able to understand... Are people getting LESS 
> capable out there or are we just accepting their (I should 
> say "our" to include myself or just drop the possessive 
> altogether) inadequacies more willingly or what? On the other 
> hand, I suppose we could be ascribing inadequacies to people 
> unfairly, though I rather doubt it.
> 
> My argument on these type of things is always along the lines 
> of "do it the way it works and performs best and if someone 
> else isn't smart/good/experienced enough to 'get it' then 
> they should learn more."
> 
> Does this bother anyone else, or is it just me? It could 
> easily be just me; I've had it up to here with people in 
> general this morning. If it is, maybe I should just hit the 
> power button and take the rest of the day.

I don't think this reason has anything to do with not being smart enough. No
matter how good a programmer you are, everyone makes mistakes, and one of
the traits of a good programmer is to be able to identify and recover from
those mistakes as quickly as possible - we call this debugging!

Now, with this specific example, the advantage that I pointed out is that if
you make the specific mistake of overlooking a join, you'll get an error
instead of a Cartesian product, and thus you (and your database server and
your DBA) will be able to clearly identify the problem and fix it more
quickly. After all, if you're working with enough tables, you might not even
immediately identify that you have a problem if you fetch a Cartesian
product.

If there were any clear performance implications of choosing one syntax over
the other, that would be a viable argument for choosing that syntax, but in
my experience it simply doesn't affect performance beyond a negligible
amount. Even if the old syntax did generally perform better than the new
syntax, you might be better off choosing the new syntax if it results in
clearer and more maintainable code.

If you were to take your argument to its logical conclusion, we should
clearly all be using C++ at a minimum, or perhaps even assembler, since
those will generally perform better than using a high-level, loosely-typed
scripting language that is compiled into bytecode that is then run within a
virtual machine that runs within a real machine. But we don't, since
hardware costs less than skilled programmers' time.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/

Fig Leaf Software provides the highest caliber vendor-authorized 
instruction at our training centers in Washington DC, Atlanta, 
Chicago, Baltimore, Northern Virginia, or on-site at your location. 
Visit http://training.figleaf.com/ for more information!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Logware (www.logware.us): a new and convenient web-based time tracking 
application. Start tracking and documenting hours spent on a project or with a 
client with Logware today. Try it for free with a 15 day trial account.
http://www.houseoffusion.com/banners/view.cfm?bannerid=67

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:201521
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to