(Last night I ended up writing that kind of code because GPT-4 didn't quite get it right for me, but 90% of my code like that has been LLM-created in the past 6 months and I look forward to that creeping closer to 100%)
(Last night I ended up writing that kind of code because GPT-4 didn't quite get it right for me, but 90% of my code like that has been LLM-created in the past 6 months and I look forward to that creeping closer to 100%)
I have seen many jr level programmers struggle with AI coding assistants because they ask a question, get some code, paste it in, realize it doesn't work, but don't know why or the right questions to ask to properly debug it and get it working.
Can a novice an LLM into coaxing requirements out of the novice?
I think this will def get better over time though.
when you refactor the whole framework you should change its name to keep docs straight, a mere version change is not strong enough for LLMs
A lot of them say they find that useful, even though it’s slower, they HAVE to read the code they are copying and pasting
There is that. Although, if you need, say, to convert .fbx to Collada, there won't be enough examples out there for an LLM to infer how to do it. There's progress; most tools that wrangle meshes now speak glTF, so at least you only need O(N) converters, not O(N^2).
There are a number of programming in the large problems that tend not to be taught. A large collection of problems revolve around having state in one place that you want somewhere else. Sometimes you can just pack up the whole state and send it. That works if it's not too big and doesn't change too often. Perhaps the data is huge. Or somebody isn't allowed full access to it. Or it's changing rapidly. Or you need to keep up with changes with low latency. Or you must have guaranteed eventual consistency. Those problems come up all the time in areas from finance to game dev.
Inefficient solutions to such problems lead to bloated browsers, slow web pages, and inefficient back ends. An example is XMLRPC. Efficient solutions to those problems are complex, hard to modify, obscure, and hard to debug. An example is the internal representation of Microsoft Word .doc documents. Much of the web is trying to ship state from somewhere to somewhere else, in rather bulky ways.
This can have business implications. In the metaverse area, where I've been doing some things, Improbable tried to deal with such synchronization problems in a very general way. They blew through about US$400 million in venture capital, and produced a working system that needs so much server capacity that five indy games went bust, and their big demo, Otherside, is so expensive to run that they only turn it on for demos a few times a year. This may also be why Meta blew their metaverse business so badly and spent so much money. Doing this by special casing code results in an obscure, hard to modify system with race conditions and consistentency problems. That's the classic MMO approach, and is used by Second Life/Open Simulator.
A general understanding of such problems is useful, and is teachable. But what do you read for that? Not books on "how to do thing X in framework Y".
But after programming for so long the types of things I'm searching are basically API references. I know exactly where I'm going I don't need help getting there.
Here's an example from yesterday where I knocked together a tool for converting Atom XML to JSON using XSLT in a couple of minutes on my phone, just out of curiosity to see what it would look like: https://chat.openai.com/share/4bc7922b-b1c2-411c-aef9-b41b0f...
I can now spend time solving actual problems rather than reinventing the wheel.
Let's be candid, we all have package management Stockholm syndrome to some degree... the reality is that our laziness keeps us going back for more.
The performance gain comes at the cost of not knowing how some large percentage of your stack works or if it is going to be the next XZ.
Im not going to stop using packages, because that would suck, but I'm not so rosy eyed about them any longer. There are lots of problems in ecosystems and we're bad about addressing them.
Pandas for me a was game changer and a new career path.
"Pham Nuwen spent years learning to program/explore. Programming went back to the beginning of time. It was a little like the midden out back of his father’s castle. Where the creek had worn that away, ten meters down, there were the crumpled hulks of machines — flying machines, the peasants said — from the great days of Canberra’s original colonial era. But the castle midden was clean and fresh compared to what lay within the Reprise’s local net. There were programs here that had been written five thousand years ago, before Humankind ever left Earth. The wonder of it—the horror of it, Sura said — was that unlike the useless wrecks of Canberra’s past, these programs still worked! And via a million million circuitous threads of inheritance, many of the oldest programs still ran in the bowels of the Qeng Ho system. Take the Traders’ method of timekeeping. The frame corrections were incredibly complex — and down at the very bottom of it was a little program that ran a counter. Second by second, the Qeng Ho counted from the instant that a human had first set foot on Old Earth’s moon. But if you looked at it still more closely… the starting instant was actually about fifteen million seconds later, the 0 - second of one of Humankind’s first computer operating systems. So behind all the top-level interfaces was layer under layer of support. Some of that software had been designed for wildly different situations. Every so often, the inconsistencies caused fatal accidents. Despite the romance of spaceflight, the most common accidents were simply caused by ancient, misused programs finally getting their revenge.
“We should rewrite it all,” said Pham. “It’s been done,” said Sura, not looking up. She was preparing to go off-Watch, and had spent the last four days trying to root a problem out of the coldsleep automation. “It’s been tried,” corrected Bret, just back from the freezers. “But even the top levels of fleet system code are enormous. You and a thousand of your friends would have to work for a century or so to reproduce it.” Trinli grinned evilly. “And guess what — even if you did, by the time you finished, you’d have your own set of inconsistencies. And you still wouldn’t be consistent with all the applications that might be needed now and then.” Sura gave up on her debugging for the moment. “The word for all this is ‘mature programming environment.’ Basically, when hardware performance has been pushed to its final limit, and programmmers have had several centuries to code, you reach a point where there is far more signicant code than can be rationalized. The best you can do is understand the overall layering, and know how to search for the oddball tool that may come in handy ...”"
I have bad news for your long term employability if that's the case.
I find that my code is 25% LLM-able on a good day with minor editing.
On a bad day it is 10% LLM-able with me having to edit every line to get them to fit together.
I have to admit I've written a gpt4 api shell utility which transforms text based on descriptions like "split string on '-' after a '~' but only if it's in a the second csv column and select the third".
I feel dirty using it - send your data to the cloud and use a ~peta flop- but it's faster than trying to remember how to do it in awk for under 1000 lines.
I just tried "Give me options for converting XML to JSON" and XSLT was 5th out of the 6 it gave me:
https://chat.openai.com/share/85aa3e93-f557-426c-b0ce-f3bce7...
I'm not sure how fun it is to work with in practice, given that the XML representation is quite verbose.