The Future of Programming in the Age of AI

Is our job as “Programmers” at risk with the advent of artificial intelligence? For instance, as you know, there are already platforms where you can develop apps simply by asking questions and providing information. Who knows if the job of a programmer is destined to change with economically unfavorable compromises on an individual level or if it will still exist! Today, many jobs are disappearing while new ones are emerging…times are changing rapidly and perhaps we need to adapt.

What do you think?

there are few movies with AI you can learn from T.I.M. or Ex Machina.
and great game Detroit: Become Human.
current AI is far away of understanding business processes or can adopt/change it.
i guess there will come an IDE special Software only with focus on AI and it will be the new Excel/Office that all people will use to stay connected B2B.
AI can be useful and also stupid. i think it is a hype and will be flattening because license cost.

MS Paint Image Creator: show me visuell the future of AI in programming

1 Like

In gemini, type Xojo, look carefully and laugh.

But who knows, in the future what CS will become ?

1 Like
4 Likes

:smiley: :smiley: :smiley:

Impressive! :smiling_face_with_tear:

I spent a few days over the Christmas holiday working with Claude on a specialized calculator for some thermodynamic processes. The math turned out to be not terribly hairy, but I wouldn’t have known where to start with the thermodynamics stuff. Claude spit out well-structured object-oriented compile-able Xojo code immediately. It took a number of iterations and some questioning of its assumptions and rationale to fully nail the algorithm down, but we got there eventually and it’s working quite well. One of the most striking things for me is how much better Claude’s gotten at Xojo - it wasn’t that long ago that its code was riddled with syntax errors, but there were basically none this time.

I find it to be a genuine pleasure working with this entity - always polite, encouraging, and willing to take direction.

Oh, and its ability to interpret images is fantastic. I was getting wrong results for a while and after checking my constants a bunch of times, I finally just gave it a screen shot of the IDE Navigator showing all my constants, and it immediately spotted a misplaced decimal point. In another stage of debugging, instead of writing code to output a bunch of values to text, I just grabbed screenshots of a listbox I’d already set up - it had no trouble interpreting them, or a PDF of a complex published log-log nomograph that we used as a sanity check on the calculations.

6 Likes

If all you want out of your code is stuff that has already been done, AI is a fine choice.

2 Likes

AI: Artificial, yes, but Intelligent ? No i stand for Idiot !

As I could see when I asked Gemini for Xojo, they used a screen shot showing java code :wink:

1 Like

A lot of code is stuff that was already done. Or simple variations of that. A user of my app recently told me that for Python code he gets code that is 95% good.

I’ve seen discussions that developing software is more going to project management. I’ve seen this happening for car development. No project engineer makes the cars themselves anymore. Everything is handled by the OEMs.

This still means that we have to think when doing software.

3 Likes

I can also give a hearty thumbs up to Claude with Xojo code. Once in a while it makes an assumption about something that either is no longer valid in API 2.0 or it invents a function that exists in another language. Once you paste in the error messages and/or class documentation it generally nails it the second time.

Claude’s $20/mo fee has paid itself back 100fold in the code it’s cranked out for me in the last month.

I’ve also been really impressed with the o1 model on ChatGPT. It was able to figure out some pretty complex animation math and translate it into Xojo in one pass.

3 Likes

You still be the surgeon, the AI the instrumentalist, a helper, for a long time. Today they don’t develop, but you could ask bits of the process and many times they act as if you were in the middle of a surgery, stick you hand to the instrumentalist, and say:

- Scissor
And he/she puts an instrument on your hand and you see it and…
- No, the Metzenbaum one
And he/she picks it and puts another instrument on your hand and you see it and…
- This is not even a scissor, this is a clamp. Give me that one! (and point to it with a free hand)

So a dev still need to know what he needs and how to construct correctly what they need. As many of you said above, AI can help, but commits stupid errors with confidence and an amateur would just accept it… But remember, you must study your subject and have a deeper knowledge, you must be the professional, your helper is not you, and must guide and teach your helper.

Right now there are zero chance of a good dev being substituted by a dumb AI. All them are really dumb things able to remember lots of info and infer some stupid conclusions many times.

Will it be like this forever? Nope. But the AGI era is more far away than people think.

I was in a project with a team that I noticed they were using some “artificial tricks”, and I noticed reading the code, some inconsistent fat style, with some stupid BUGS. Some bugs the author couldn’t fix, logically because the solution wasn’t written by him. I’ve noticed LOTS of 3rd party libs, sometimes for some simple tasks you could achieve natively with one line of code. At first I wasn’t understanding what was going on, then later I got it. The unusual code calling a lib for that simple task was because some AI thought “the user wants to concatenate 2 vectors, and there’s a famous (and huge) matrix lib with a function for that! Let’s import it and call it” instead of concatenating 2 arrays. That wasn’t a human job, it was too dumb. But yes, the team was “writing” a lot of code faster than I’m used to (weirdly with many broken parts, and that’s why I was called for, to fix some codes) and I was really afraid about that Frankenstein being built. Finished what I was paid for and left. I’m afraid that today, not only at that team, but many places, there’s a lot of junk made of glued Frankenstein code parts accumulating “AI technical debit and bugs” since day one. I didn’t rewrite all that code, I just fixed it, and left what they “designed” there. And imagining that evolving, give me chills.

4 Likes

Brilliant expression that I will often use when necessary. :smile:

2 Likes

If a lot of your code is solving problems already solved, why are you even a developer? What are you bringing to the table?

I hope you are not reading this as an attack or an insult, but I’d imagine most of us are in this to solve new problems. Sure, if I need a function to post a discord notification through a webhook, AI should do just fine with that. But that’s just supporting code. The uninteresting stuff.

I’d hope that what makes your program special is new code.

1 Like

My code is a combination of old and new stuff. Of course, the old stuff is boring. But there is a lot of old stuff. I can also ask the AI about things that I don’t know.

Examples:

  • Explain existing regex and extend it for a special case.
  • Get ScrollPosition equivalent for NSTableView. It took me 15 minutes trying to figure this out myself.
  • IMAP SSL Handshake failure: here ChatGPT failed because I had some stupidity in my code.
  • Handling date and datetime in the same SQL query. Didn’t get quite what I wanted.

Perhaps old vs new is not a good comparison. ChatGPT makes me much faster figuring out stuff.

2 Likes

there is a company behind who sell knowledge.
for me it is inacceptable.
“they” keep us dumb to make money.

I think you’re missing my point. Those are all minor pieces of your app, that while necessary, are not really what makes your app unique. It has helped you solve those problems which other people have already solved. That’s fine. Personally I’d rather use the docs and Google, but it’s basically six of one, half dozen of another. An LLM is “just” a glorified search engine. Those sources I’m using are the same sources you’re using, the LLM just mashes the results together.

Here’s an example of what I mean by the code that makes your app unique, with the huge asterisk that my app being open source, an LLM could figure this out since it has almost certainly used my repo for training. I have the second most starred Xojo repo on GitHub, how could it not have used my code?

Anyway, one of the bread-and-butter features of my app automatically updates game server config files. You have a project with hundreds of settings, it takes your existing files, makes the changes, and sends them back to the server. It does this with a network of classes: ConfigOption, ConfigValue, ConfigOrganizer, and Rewriter. The options come from a database. The rewriter parses the original file into options with values, dumps them into an organizer, takes the new options and values, dumps them into a different organizer, uses the two to determine what has changed, and builds the new file. The options need to know how to compare and sort the values, how many are allowed of each, their specific format, and more.

Of all of this, probably 95% of the logic is unique. Maybe I could have sought an AI’s help with something like case sensitive string comparison if I didn’t know it already, or pulling the values from the database. But these classes are highly specialized for their task that would have no reason to already exist out there for an LLM to pull from.

Which brings me back to my original point. If what you’re creating can be done mostly by an LLM, you’re creating a copy. I saw a video about a guy using an LLM to create a Flappy Bird clone. It was impressive, but there are so many Flappy Bird clones out there. There’s so much source for an LLM to use for that specific class. And it’s only impressive until you realize the guy didn’t actually create anything. The very goal was a clone, so of course an LLM will do great at that.

They help you do what has already been done. But we’re [hopefully] not in the business of doing what has already been done.

1 Like

Looking at the App Stores shows that the vast majority of developers are perfectly happy creating clones of existing apps and functionality. It’s lucrative, if uninspired.

2 Likes

Yes, but this is perfectly fine. But I need those pieces of already done code to make my new and unique code. I work faster and better together with ChatGPT.

3 Likes

Personally, my experience has been the opposite. I might spend a few minutes telling AI what I want, but I spend a whole lot more time fixing hallucinations in the code and tracking down bugs in that code than it might’ve taken me to read some documentation, formulate a plan, and code it myself the first time. It’s just Other Peoples Code (OPC) on steroids for me.

That’s not to say that it doesn’t have its place (I’m sure it does…somewhere), and if it works for you then that’s great!

3 Likes