AI making softwares

posted by Jeff | Monday, May 29, 2023, 10:35 PM | comments: 0

It's hard to believe how much AI is in the news, with everything from Skynet predictions to more likely outcomes like massive job losses. I've written before about my concern around trucking eventually being made obsolete by computers, and I still think that's a real thing. Now there is a lot of speculation about how white collar jobs could be affected too. I believe that we'll see a point in my lifetime where there simply won't be enough jobs for everyone for reasons that aren't economic at all. That sure will mess with our already naive ideas about meritocracies and unregulated capitalism.

For software developers, the future is less clear. I already contend that the profession is more about the skillful composition of existing solutions. Few people have to write "algorithms" anymore. Instead, the job is understanding the way systems work and how to improve them. Sometimes you're even lucky enough to write something new, but it will still be based on a bunch of libraries and code you found via Google.

To that end, AI for writing code actually makes a lot of sense, because it will save time. Tonight, for example, I was messing with it in the context of GitHub Copilot. I was able to do several things pretty quickly, with stunning accuracy:

  • Generate a three row page layout in HTML using Bootstrap, with fixed rows at the top and bottom (for an ad and navigation), and the middle part filling the rest of the space and scrollable. It was 100% correct the first time, even with my specified row heights, and no extraneous markup or CSS.
  • I wrote in comments what I wanted a Typescript class to do. First try didn't output data the way I wanted, so I told it to specify public properties for those values. Then finally I told it to make sure the properties were type-safe.
  • In C#, in Blazor, I asked it to write a class that would serialize and deserialize a model I had to local storage through JS interop. I thought I would have it stumped but it got it right on the first try! It may know this from another project that I have, assuming that it's looking at everything that I have on GitHub.

I don't think may of these scenarios are hard to code for, but in the first instance, it would have been lots of trial and error and looking at StackOverflow. In the second one, I'm still not that proficient with Typescript, so that was more about doing it the "right" way. And the last example, I was just trying to stump it. I could have easily copy-pasted that from another project. That it knew how to do this in the context of Blazor, the .Net WebAssembly tech, is really surprising.

In the fall, I'll likely get back into a coding groove, and it will be interesting to see how this technology changes the way that I work. It sure is promising so far.


Comments

No comments yet.


Post your comment: