AI tools are akin to having a junior developer working for you. Except they are much much faster.
If you don’t know what you’re doing they just accelerate the pace that you make mistakes.
AI tools are akin to having a junior developer working for you. Except they are much much faster.
If you don’t know what you’re doing they just accelerate the pace that you make mistakes.
100%
And if you know what you are doing, they will accelerate the way you're building stuff.
Honestly, this is brilliant. The other day I had to add table name prefixes to a SELECT statement column aliases, since such a feature just doesn't exist for some reason, a bit like:
-- fails because of duplicate column names (e.g. when creating a view)
SELECT
*
FROM table_a
JOIN table_b ON ...
JOIN table_c ON ...
...
-- this would solve my issue, if WITH_PREFIX did exist (or anything like it)
SELECT
table_a.* WITH_PREFIX 'table_a',
table_b.* WITH_PREFIX 'table_b',
table_c.* WITH_PREFIX 'table_c'
FROM table_a
JOIN table_b ON ...
JOIN table_c ON ...
...
So I just gave ChatGPT the schema definitions/query and it wrote out the long list of like 40 columns to be selected for me, like: SELECT
table_a.id AS 'table_a_id',
table_a.email AS 'table_a_email',
...
table_b.id AS 'table_b_id',
table_b.start_date AS 'table_b_start_date',
...
and so on. I haven't found another good way to automate things like that across different RDBMSes (different queries for system tables that have schema information) and while it's possible with regex or a bit of other types of text manipulation, just describing the problem and getting the output I needed was delightfully simple.Aside from that, I just use the LLMs as autocomplete, which also encourages me to have good function naming, since often enough that's sufficient information for the LLM to get started with giving me a reasonable starting point. In particular, when it comes to APIs or languages I haven't used a lot, but the problems that I face have been solved by others thousands of times before. I don't even have to use StackOverflow much anymore.
That's why I bought Copilot (though JS/HTML autocomplete in JetBrains IDEs is visually buggy for some reason) and use ChatGPT quite a lot.
LLMs are definitely one of my favorite things, after IntelliSense (and other decent autocomplete), codegen (creating OpenAPI specs from your controllers, or bootstrapping your EF/JPA code from a live dev database schema), as well as model driven development (generating your DB schema migrations/tables from an ER model) and containers (easily packaged, self-contained environments/apps) and smart IDEs (JetBrains ones).
It seems like the process of reviewing its generated code to make sure all 40 columns are there and then either re-doing this or manually going through that list whenever the schema changes would take longer than just writing the script? And now you're asking your code reviewers to the same both boring-and-slow manual check on the commit rather than just reviewing the three lines of the script?
I think companies will want more code faster to the extent that fewer people will emerge from the churn really knowing what they are doing.