Simple CLR request

  • Joe Celko

    SSCertifiable

    Points: 5578

    -1 is a wonderful answer. Mixed systems (those with more than one language embedded in each other) are always inefficient and a nightmare for anyone to read or maintain. Converting datatypes alone between languages is awful, but perhaps the biggest hit is finding someone that reads and writes fluently in two or more programming languages (forget about natural languages, we are worse). Since 80 to 90% of the cost of a system is in maintaining it, all this does is add to the overhead and total expense of the system the highest level.

    Books in Celko Series for Morgan-Kaufmann Publishing
    Analytics and OLAP in SQL
    Data and Databases: Concepts in Practice
    Data, Measurements and Standards in SQL
    SQL for Smarties
    SQL Programming Style
    SQL Puzzles and Answers
    Thinking in Sets
    Trees and Hierarchies in SQL

  • Alan Burstein

    SSC Guru

    Points: 61087

    CELKO (7/13/2016)


    -1 is a wonderful answer. Mixed systems (those with more than one language embedded in each other) are always inefficient and a nightmare for anyone to read or maintain. Converting datatypes alone between languages is awful, but perhaps the biggest hit is finding someone that reads and writes fluently in two or more programming languages (forget about natural languages, we are worse). Since 80 to 90% of the cost of a system is in maintaining it, all this does is add to the overhead and total expense of the system the highest level.

    Joe, you're like Horse and buggy. At one time you were relevant but that was a very, very long time ago.

    "I cant stress enough the importance of switching from a sequential files mindset to set-based thinking. After you make the switch, you can spend your time tuning and optimizing your queries instead of maintaining lengthy, poor-performing code."

    -- Itzik Ben-Gan 2001

  • Solomon Rutzky

    SSCoach

    Points: 16260

    Alan.B (7/13/2016)


    CELKO (7/13/2016)


    -1 is a wonderful answer. Mixed systems (those with more than one language embedded in each other) are always inefficient and a nightmare for anyone to read or maintain. Converting datatypes alone between languages is awful, but perhaps the biggest hit is finding someone that reads and writes fluently in two or more programming languages (forget about natural languages, we are worse). Since 80 to 90% of the cost of a system is in maintaining it, all this does is add to the overhead and total expense of the system the highest level.

    Joe, you're like Horse and buggy. At one time you were relevant but that was a very, very long time ago.

    Alan, I think you are getting trolled here by some 8 year old in China, or Russia, or possibly Kansas. I mean, the absurdly nonsensical first sentence, the exaggerated incorrectness, and it's barely on topic in the first place. Plus, the response was to just paste the exact same message again (minus the glaring typos)?

    Just ignore it.

    SQL#https://SQLsharp.com/ ( SQLCLR library ofover 340 Functions and Procedures)
    Sql Quantum Lifthttps://SqlQuantumLift.com/ ( company )
    Sql Quantum Leaphttps://SqlQuantumLeap.com/ ( blog )
    Info sitesCollations     •     Module Signing     •     SQLCLR

  • Jeff Moden

    SSC Guru

    Points: 996831

    Alan.B (7/13/2016)


    CELKO (7/13/2016)


    -1 is a wonderful answer. Mixed systems (those with more than one language embedded in each other) are always inefficient and a nightmare for anyone to read or maintain. Converting datatypes alone between languages is awful, but perhaps the biggest hit is finding someone that reads and writes fluently in two or more programming languages (forget about natural languages, we are worse). Since 80 to 90% of the cost of a system is in maintaining it, all this does is add to the overhead and total expense of the system the highest level.

    Joe, you're like Horse and buggy. At one time you were relevant but that was a very, very long time ago.

    In this case, Joe is absolutely spot on, IMHO. Hell. I can't even find someone that can write well in one language never mind two and certainly never mind the proverbial "Tower of Babble" that some resort to that I've had to fix in the past.

    Remembering the old saw about "To a hammer, everything is a nail", I respond with "When you're actually trying to drive nails, you should use a hammer... even if it turns out to be self loading and pneumatic thanks to improvements over time".

    --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".
    "If "pre-optimization" is the root of all evil, then what does the resulting no optimization lead to?"

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

  • Alan Burstein

    SSC Guru

    Points: 61087

    [Quote]Jeff Moden (7/13/2016)


    Alan.B (7/13/2016)


    CELKO (7/13/2016)


    -1 is a wonderful answer. Mixed systems (those with more than one language embedded in each other) are always inefficient and a nightmare for anyone to read or maintain. Converting datatypes alone between languages is awful, but perhaps the biggest hit is finding someone that reads and writes fluently in two or more programming languages (forget about natural languages, we are worse). Since 80 to 90% of the cost of a system is in maintaining it, all this does is add to the overhead and total expense of the system the highest level.

    Joe, you're like Horse and buggy. At one time you were relevant but that was a very, very long time ago.

    In this case, Joe is absolutely spot on, IMHO.

    But so what. My original post was seeking help writing an NGrams CLR that I can compare to an NGrams function I created using a Tally Table; this for part 3 of my SSC NGrams articles which focuses on performance. You compared DelimitedSplit8k to a CLR in your article which is where I got the idea.

    ... and Mr Celko's comments, per usual, don't help with the OPs original request. Just mindless blather IMHO.

    Hell. I can't even find someone that can write well in one language never mind two

    I've heard you talk about interviewing people in your area - it sounds very sad in your neck of the woods but it's not like that everywhere. I am good at more than one language and so are many people I work with.

    "I cant stress enough the importance of switching from a sequential files mindset to set-based thinking. After you make the switch, you can spend your time tuning and optimizing your queries instead of maintaining lengthy, poor-performing code."

    -- Itzik Ben-Gan 2001

  • Joe Celko

    SSCertifiable

    Points: 5578

    Ignoring how accurate self-evaluation is (Dunning–Kruger effect), let us assume that you are good at language L1 as well as SQL. Within your shop, the CLRs are written languages L1, L2, L3,… Ln. then when you get more mixed code from outside your shop, you have even more languages with which to contend. The last time I looked the CLR of supporting 43 different languages. How good are you at 43 languages? I can even remember Fortran anymore! I would like to delude myself that if I had a few days, I could come up to speed on Pascal again. I do not want to do PL/1 or Ada again.

    Now those CLR languages also are getting changed by their various standards groups groups or deprecated completely (Ada and PL/1). For example, I will assume that being a professional SQL Server programmer, when Microsoft replaced *= with the ANSI/ISO standard LEFT OUTER JOIN, and made the BIT data type a null–able numeric, you did a quick look at all of your existing code and did appropriate maintenance (ever read ISO/IEC 14764?). When Pascal changed the definition of the mod() function, you also verified your CLR Pascal library. And the same for Java, C++, C#, VB, etc.

    Can you explain why you think this kind of programming and systems design would result in lower cost, easier maintenance or any other advantage?

    Books in Celko Series for Morgan-Kaufmann Publishing
    Analytics and OLAP in SQL
    Data and Databases: Concepts in Practice
    Data, Measurements and Standards in SQL
    SQL for Smarties
    SQL Programming Style
    SQL Puzzles and Answers
    Thinking in Sets
    Trees and Hierarchies in SQL

  • Solomon Rutzky

    SSCoach

    Points: 16260

    CELKO (7/14/2016)


    Can you explain why you think this kind of programming and systems design would result in lower cost, easier maintenance or any other advantage?

    -1

    SQL#https://SQLsharp.com/ ( SQLCLR library ofover 340 Functions and Procedures)
    Sql Quantum Lifthttps://SqlQuantumLift.com/ ( company )
    Sql Quantum Leaphttps://SqlQuantumLeap.com/ ( blog )
    Info sitesCollations     •     Module Signing     •     SQLCLR

  • Alan Burstein

    SSC Guru

    Points: 61087

    Solomon Rutzky (7/14/2016)


    CELKO (7/14/2016)


    Can you explain why you think this kind of programming and systems design would result in lower cost, easier maintenance or any other advantage?

    -1

    +1

    "I cant stress enough the importance of switching from a sequential files mindset to set-based thinking. After you make the switch, you can spend your time tuning and optimizing your queries instead of maintaining lengthy, poor-performing code."

    -- Itzik Ben-Gan 2001

  • Jeff Moden

    SSC Guru

    Points: 996831

    Alan.B (7/12/2016)


    CELKO (7/12/2016)


    -1 is a wonderful answer.

    To what? Who are you trying to communicate with here?

    Mixed systems (those with more than one language embedded in each other) are always in efficient and a nightmare for anyone to read or maintain.

    First, with all due respect, this statement is absolute nonsense. Second, who are you trying to communicate with here? Me? Are you trying to discourage me from using a CLR? Re-read this thread, particularly my reply to Luis' question.

    ...but perhaps the biggest hit is finding someone that reads and writes fluently in two or more programming languages (forget about natural languages, we are we are worse).

    Also nonsense. Complete and absolute meaningless blather.

    Welcome back Joe. I missed you.

    His "-1" answer is in response to me saying that I institute an average of -1 SQLCLRs a year by replacing them with T-SQL. 🙂

    Also, I'm the one that changed the subject a bit... not Joe. And it's OK because we learn other stuff than the original subject that way. In this case, it was me because I've unfortunately and fortunately been subject to many systems that have been waylaid by a dozen people's personal preferences and/or inability to do even simple things in T-SQL. I say "unfortunately" because I was the one assigned to fix their massive performance problems and had to spend much time just trying to figure out what the hell the non-homogenous code was supposed to do both at the module level and the fully integrated level and then try to figure out which parts of which modules where causing the performance problems. I say "fortunately" because it taught me about something that I think should be avoided and gave me the chance to teach others in the process (not to mention helping the company by fixing the problem code by replacing it).

    When I saw you (a known T-SQL heavy-weight, IMHO... just look at your great NGram code if not all your great posts), I couldn't help but to identify that I have even less experience at writing SQLCLR than you because I normally replace them with something faster and sometimes more accurate.

    Joe saw that and it's obvious that he's also been bitten by the proverbial "Tower of Babel" and, like anyone else, wrote a post expressing his extreme dislike for what frequently appears to be willy-nilly choices made based on personal preference sometimes (many times) fueled by a lack of knowledge. Shoot... I even had one idiot that demanded that I promote his SQLCLR function to do a Modulus which, of course, I didn't do.

    Joe's response was to my tangential comment about replacing SQLCLR with T-SQL and expressing his point of view on that subject without explaining what he was responding to. He wasn't responding directly to you. He was agreeing with me and writing for anyone who would listen... just like I did with my post.

    The really odd part here is that Joe isn't actually the instigator here. He made a rather benign comment (didn't call anyone a 5th grader or tell them to read a beginner's book or pound on the ANSI/ISO pulpit this time 🙂 ) based on my comment and on his personal experience on a very old, still very common, and still very relevant problem... and then got bombed for expressing an opinion that attacked no one on this thread even in a passive-aggressive manner.

    As for the comments about his opinion being "absolute nonsense" and "meaningless blather", I'd have to say that you've probably never witnessed the actual problem that both he and I are talking about. When you eventually do, think back to this moment. 🙂

    I'll be and have been one of the first folks to stuff a canary in Joe's throat when he's doing his normal passive-aggressive and sometimes outright ad hominem attacks but he didn't deserve it this time.

    --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".
    "If "pre-optimization" is the root of all evil, then what does the resulting no optimization lead to?"

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

Viewing 9 posts - 16 through 24 (of 24 total)

You must be logged in to reply to this topic. Login to reply