• Phil Factor (12/14/2008)


    I'm not sure if I buy the idea that it is becoming simpler and simpler to write applications because the tools we use are getting better and better. It is this belief that keeps driving us on to upgrade to the latest bleeding edge of Microsoft product whatever the inconvenience and cost. It may be a good idea, but we need to make a conscious decision.

    Over the past twenty years, the lead-time for new applications has been getting longer and longer, they are getting more and more expensive, and the failure rate has remained constant. There have been some huge breakthroughs, certainly, and the expectations, and demands for quality and compliance have increased enormously, but basically, the increase in the complexity of the software tools we use has not been mirrored in more rapid or successful application development. There has always been a huge gap between marketing and reality in the IT industry.

    Very well said. That just about sums up the reasons why I don't care for DTS, SSIS, CLR's, Business Objects, and a host of other flashy computational aberrations that supposedly enable people to be more productive. People have to become familiar in many areas to do what... Import a simple file? Do a simple split? Create a running total? Join a couple of tables? How many times have you seen a DTS or SSIS job where something (supposedly) can't be done and people revert to an writing an ActiveX component or a PERL script or CLR... etc, etc. I'm seeing that in my current job, alot! And, everything they're writing that way is either slow or horribly and unnecessarily complex. For example, they have a very complex file type to import that defies all conventional methods of import. They wrote a DTS job that uses Perl scripts, ActiveX and a couple of other computational flavors. It takes 40 minutes on a file of just 30,000 rows and 215 columns wide just to get the file ready for import never mind doing the actual import. Using 100% T-SQL in a comparitively short sproc, I get the same thing done PLUS the actual import in 92 seconds.

    Microsoft keeps adding/releasing products to "make it easier" to use SQL Server. As a result, people who know nothing of databases are now using and abusing it. It's made SQL Server much more popular, but it sure plays hell on systems when these people touch the data.

    Some folks say I'm being stubborn about not using tools other than T-SQL. I guess that's pretty much true... when I can take a complex file import from 40+ minutes down to 90 seconds or write T-SQL to change a 24 hour, 62 database dupe-check that would usually fail, to a very lean T-SQL sproc that does 93 databases in 15 minutes and hasn't failed yet, I'm thinking that lots of folks just haven't taken the time to really explore the full potential of SQL Server and, especially, T-SQL. Further, it only took me three days to do it including final acceptance testing. The original dupe check, written in C#, took 2 developers 2 weeks to make something slow, unreliable, and not leave enough time in a day to actually do the full 93 database requirement.

    As you can tell, I not only agree that all these flashy products HAVEN'T increased productivity, effeciency, accuracy, or performance of applications, I believe that they've generally caused a decrease in all of that and an increase in the cost of getting products to market even if the market is "in house usage". There are exceptions, of course, like Reporting Services, but for the most part, I think most folks have fallen for the Microsoft marketing strategy and the "you're stupid if you don't do this" mentality... I think the flash of all that other stuff get's in their eyes when it comes to making common sense and innovative applications.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)