• sobchak@programming.dev
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    1 day ago

    I’ve had “success” with using them for small one-off projects where I don’t care too much about correctness, efficiency, or maintainability. I’ve tried using various AI tools (Copilot, Cursor agents, etc) for more serious projects where I do care about those things, and it was counter-productive (as studies have shown).

    Hmm, I was curious if ChatGPT still gives inefficient code when asking it to write quicksort in Python, and it still does:

    def quicksort(arr):
        if len(arr) <= 1:  # Base case
            return arr
        pivot = arr[len(arr) // 2]  # Choose middle element as pivot
        left = [x for x in arr if x < pivot]   # Elements less than pivot
        middle = [x for x in arr if x == pivot] # Elements equal to pivot
        right = [x for x in arr if x > pivot]  # Elements greater than pivot
        return quicksort(left) + middle + quicksort(right)
    

    That’s not really quicksort. I believe that has a memory complexity of O(n log n) on the average case, and O(n^2) for the worst case. If AI does stuff like this on basic, well-known algorithms, it’s likely going to do inefficient or wrong stuff in other places. If it’s writing something someone is not familiar with, they may not catch the problems/errors. If it’s writing something someone is familiar with, it’s likely faster for them to write it themselves rather than carefully review the code it generates.