AI adoption and IntelliSense
Complete off the top of my head thing, no source/research, just anecdotes and pontificating.
As i've been doing some heavy editing today of a 300+ line SQL query, one thing I'm wondering about with these AI usage stats are how much of the "adoption" falls into things like intellisense suggestions.
There's two parts to this, with the first being just bad suggestions.
I've found them to be "okay" for something like F#, but for SQL, which has always required me to knife fight for an alias to begin with, they're just utter garbage.
I normally don't blow through my free github copilot suggestions in my month (I'm not in the code mines as much anyways), but I blew through it in a day of shitty SQL suggestions (and then just turned it off). This was last month, so not even while dealing with the current monster, and I'm left wondering how many people just have it vomit out useless stuff they change anyways.
The second part, is just the usual "you don't really know your tools".
While doing this query I considered turning it back on or using it. I have several CTE's for readability as this is a prototype but it necessitates an annoying pattern of taking the names of your columns, uplifting them to the next query select, and then summing and renaming them AGAIN such as SUM(COALESCE(a.example,0)) AS [example]
When you have 84 columns to do this with, it can be tempting to let AI notice the pattern and just do it. However it's not actually necessary, and now that they're clocking the tokens as we knew they would, I'm back to just using my multi line editor skills. Middle click select, some home/end to get a starting point, then ctrl+shift+arrows mixed with Alt+arrows and some copy paste and I'm mostly done. Few Ctrl + D's or straight up find and replaces and I'd edited 80 lines in maybe 30 seconds?
AI would've been a bit easier, and from what i've seen of MANY coders, something I suspect they only think is doable through AI. However much like how AI is getting people to use features they never even knew existed in their business tools, I wonder how much adoption on the coder side is the same. All these text editor helper tools many coders don't use (please keep all VIM manifestos under 400 pages) suddenly being automated out by the VASTLY more expensive AI.
And like some of the other AI solutions, as the money starts to hit the budgets, I think we'll see a lot more "Look you need to learn how to do this normally" (or "hey guess what we're removing from VS code!").
Not sure I have an overall point to this, but I'd be curious to hear what other people are seeing in their environments.
I know this is off topic, but I would sooner cut my wrists than to manually work with so MANY columns like that lol. Edit: just reread my comment and sorry in advance if this part feels like I'm poking fun at you. That wasn't my intention, sorry!
I had a few situations kinda similar to yours. What I did was to list the columns I needed once in a Google Sheet, then make some formulas that automatically generated the SQL code I needed for the following CTEs. That way it was easier for me to keep track of the columns and I could also easily add or remove them in one place.
But back to AI, I find intellisense to be most useful is in small things, like changing a variable’s name. It usually spots that variable in other places and offers to fix them. Sometimes it also helps with small adjustments - like for example, just today I was swapping a few prints for logger functions, and once I changed one, it offered to swap the other 3 below. (This was python, to be clear)
But on the other hand, or I guess, 90% of the other time, it’s useless. It makes random suggestions and often nonsensical. And it struggles with lines of code that get a bit too complex, or are too long. I think behind the scenes, the AI only checks a handful of text near where your cursor is. That’s why it probably couldn’t deal with your 84 columns.
When it works, it saves time and it’s convenient, but that’s when it works… Which is only a few times in my experience… I can live without it.
Noooo worries. It's never fun. I mind this a little less than I used to, but SQL is just one of those languages where I feel like the tooling stopped making progress 20 years ago. There's sooo many obvious and repeatable patterns and issues and yet you're still fighting uphill most times when you start diving into a query.
Not sure which language/ide you use, but this is traditionally done with F2 in VS Code (or i think Ctrl +R R or something weird in VS proper?). Finds and replaces all instances of the highlighted variable (across the project if it's at that scope). Unless its sql...
VSCode and Python. I rarely write SQL in VSCode though, I write them in BigQuery's own platform.
I never tried those combinations, will give them a shot next time! I usually just use the Find & Replace function (ctrl + f)
Guilty, I will write small script to fix it instead of doing it manually.
Double guilty - most probably I will write it in Java.
I'm so sorry.
Well the good news is it's long overdue work finally approved, so i'm using this to prototype the table we've NEEDED so we can build out the proper infrastructure to not need to this again (the uh...the table might have 80+ columns still though)
It's something I've been thinking about for a little bit. All the major ai studios have been marketing their models, and more importantly, their apps as omni tools that are suitable for every single task involving data in any way. The idea is that if the model itself can't handle the task (people are becoming much more aware of the limitations of what an LLM is good at and what it's bad at) it can quickly code up a one shot python script to do the task and use an ephemeral VM environment to run it, all without the user actually having to worry about what's under the hood. I can barely keep up with what the companies are falling their new ai features, but I believe Anthropic calls this Claude cowork. I think they've built some of this functionality into the normal Claude chatbot as well. I'm sure OpenAI, Google, Twitter and Microsoft have their own versions of this too.
That's all well and good when it produces the results you want. It very often does do that. But as anyone that's done any sort of data manipulation knows, when it doesn't, the failures are subtle and hard to detect unless you're the one that's been knee deep in the data and the code that manipulated it.
I hope people start seeing the flaws in this approach and come up with a solution. I don't know if we're ever going to go back to the days of bespoke, handcrafted small tools and add-ons to perform data manipulation tasks for us though. It's hard to make stuff like that for every edge case you run into, and people don't like doing hard things or paying people for their time to do hard things.
I don't know what a generalized answer would be but personally I either do these things myself or use the LLM to give me the code to do it which I then debug and understand anyway. To just use it as is would be good way to create long term problems for myself.
I tried to use LLMs for data transformations a few times but in the end it is easier and more accurate and better able to iterate on without using a giant text predictor black box.
Unless it is a trivial and trivially verifiable one off of ten data points or less.
Note: I'm budget-bound so I'm using Deepseek v4 Flash, not any frontier model.
First off, even for coding, I've been back on Leetcode recently and the chatbot can really just fail on an Easy implementation of a linked list.
For macro text editing, AI agents can leverage python or grep/sed to do them but they won't use them unless you suggest it explicitly. If you know vim I think it's just better, but I am not used to them yet. On the other hand, agents are quite nice at automatically scanning stray deprecated references when I'm in the midst of renaming.
I'm only a junior, but I do think at a certain level you have to be pretty comfortable with your means of input to a computer, no matter how much you have to customize one to fit. I use a very funky layout that nobody could use, which caps my ability on other people's computers.
AI agents was good for me with respect to doing workspace configs, as I can add or remove neovim plugins or change my terminal settings at will, because I couldn't sustain the attention to read plugin docs - A weakness on my part. With AI agents + web search I pretty much settled a neovim/wezterm setup in a day from zero. However I do think it takes some observation of which part of the tools are good, for example I see that I always like the Outline view to understand file structures in Zed for example, so I try to get one in Neovim.
With regards to coding, I pretty much have to have a system prompt written out that mimics my thinking flow, and have the agents ask me questions about intended behaviours first. I do think code generated from the corpus, rather than from my instructions, has a tendency to be overly defensive with checks, while not knowing how to encode invariants into types and all. Otherwise, it's pretty nice to create one-off tools (e.g python conversion of documents/slides) or quick demos (HTML page for me to compare design palettes)
I can't speak to AI intellisense with SQL but I've been very careful with it in Visual Studio on C# after I had it "notice a pattern" I was doing in several places throughout the code only for it to mess it up when I let it loose, even though the preview was correct.
The worst part was it was something that didn't produce an error, it was just a logic bug. If I hadn't been paying close attention and noticed it right away it would have been a nightmare to find later.
If these queries are large in terms of the number of columns, but there's a pattern to them, I wonder if it makes sense to write code to generate the SQL somehow?
My most recent project is a web app written in TypeScript that uses a Sqlite database. To enforce good layering, there's a database API and all the SQL is embedded in TypeScript files in the API's implementation.
Asking a coding agent to make changes to the database API for new features seems to work well. It doesn't always have good taste in API changes, though, so I'll ask it to propose a change and then make corrections, rather than just doing it.
I don't use GitHub copilot anymore and the edits I make using VS Code (rather than asking the agent to do it) are fairly rare. I'll use it to rename a symbol, though.
Yeup, although where that line is moves depending on use case, and crosses into ORMs/micro-ORMS as well. This is why in my case I know a lot of multi line editor commands, but I do have the ability to spin up quick scripts, however it seems like every SQL dev environment is slightly different, and a lot of tooling you'd expect to exist is just "oh yeah here's my pile of scripts from 20 years of dev". Hell even in basic 1st party stuff.
Yeah I've noticed they're decent here. If you've got a small app with a database to store information you're usually going to be okay.
Yeah, I used to use ORMs. Lately I've been using string concatenation to put SQL clauses together. As long as the actual input parameters are passed to the SQL driver separately using '?' it seems safe enough?
Yeah as long as that means you're using a parameterized query (sounds like ,not a typescript guy) that's basically standard.
Programmatic clause building is what most of these libraries do anyways because that's all you're really passing SQL at the end of the day (sorta kinda...).
To be clear you can run into other problems, and there can just be bloat issues with trying to string SQL stuff together, but it's not like there's some gorgeous way to do it. Personally I just stick to dapper when I can as it's lightweight and gives most of the tools you need.