You're missing the point: Natural language can be much a higher layer of abstraction than the programming languages we currently have. It's much faster to say "Add a button to download the output as a PDF" than write JS directly.
You'd be surprised by what regular people can build when you give them the power to create software. Here are a bunch of apps created using my tool/GPT-4: https://showcase.picoapps.xyz Most of our users have never coded before, and are able to build small tools to make their and their customers' lives better.
Sure, they can "build" it, but can they maintain it? Can they only add more layers of mud? How do you refactor the statement "Add a button to download the output as a PDF"?
That's not a replacement for software engineering.
I thought about this for a while now and I think for the class of problems GP is referring to, no maintenance will actually be needed, the tools will just be discarded re-written again -- at least in one-man projects where no other person than the author is needed to create the tool. Maybe in the future some kind of pseudo-code between real code and natural language will be established. This kind of pseudo-code could be as expressive as code but more concise than natural language. I am not certain if it will ever replace actual software engineers for scopes beyond on-man projects.
That makes sense, but never underestimate how easy it is for a throwaway script or tool to become production-ized and a dependency for other production processes.
We've all seen that obscene production workflow built on a Google Sheet or Jupyter Notebook that now needs to support this or that new feature or integration... Add AI-generated tools to the pile.
What's hard about refactoring it? I sorta get the point you're trying to make, but codegen models generate code, but they also understand and explain code very well in plain language. I believe domain experts are smart enough to solve the problems that crop up and maintain their code with help from AI.
Comments
You're missing the point: Natural language can be much a higher layer of abstraction than the programming languages we currently have. It's much faster to say "Add a button to download the output as a PDF" than write JS directly.
You'd be surprised by what regular people can build when you give them the power to create software. Here are a bunch of apps created using my tool/GPT-4: https://showcase.picoapps.xyz Most of our users have never coded before, and are able to build small tools to make their and their customers' lives better.
Sure, they can "build" it, but can they maintain it? Can they only add more layers of mud? How do you refactor the statement "Add a button to download the output as a PDF"?
That's not a replacement for software engineering.
I thought about this for a while now and I think for the class of problems GP is referring to, no maintenance will actually be needed, the tools will just be discarded re-written again -- at least in one-man projects where no other person than the author is needed to create the tool. Maybe in the future some kind of pseudo-code between real code and natural language will be established. This kind of pseudo-code could be as expressive as code but more concise than natural language. I am not certain if it will ever replace actual software engineers for scopes beyond on-man projects.
That makes sense, but never underestimate how easy it is for a throwaway script or tool to become production-ized and a dependency for other production processes.
We've all seen that obscene production workflow built on a Google Sheet or Jupyter Notebook that now needs to support this or that new feature or integration... Add AI-generated tools to the pile.
What's hard about refactoring it? I sorta get the point you're trying to make, but codegen models generate code, but they also understand and explain code very well in plain language. I believe domain experts are smart enough to solve the problems that crop up and maintain their code with help from AI.
Hence, the usefulness of tools like UI.Vision RPA