4 ms·
if AI can translate our English descriptions into working code, do we still need programming languages at all? I think some people equate “source code” with “c
by ttoinou 1y ago
if AI can translate our English descriptions into working code, do we still need programming languages at all?
I think some people equate “source code” with “compiled code” or “AST” (abstract syntax tree). The former contain so many features that are still part of the english language such as functions / variables / types names, source files organization folder and filenames, comments, assets, git repo with log and history etc. And the AI probably wouldnt be as efficient if all those elements were not part of the training data. To get rid of such programming language and have a pure AI programming language would require tons of training data that humans will never produce (chicken and egg paradox)
- f1shy 1y agoIF LLM do translate so good English somehow directly in “code”, then there are much more job in the line that just coders, and many tools that could be rendered obsolete. Indeed fact the whole chain, from customer to, well, back to customer, could be replaced. Requirements elicitation, writing requirements, making a design, architecture, even tests (shloud we need them?) As far as I know and my experience confirms (maybe biased?) the whole chain of SW engineering is there precisely because English is not always optimal. Indeed fact fact in a project I directed, the whole requirement management was basically a loop Repeat{talk to customer; write formal language; simulate; validate}until no change; It was called “runnable specification” not my idea. It worked absolutely incredibly good.
- ttoinou 1y agoWhat's the simulate and validate steps ?
- f1shy 1y agoThe written requirement were written in C, C++, python, Verilog, Systems C. So they could be run. The runs were sent to the customer who would validate (approve) or reject.
- ttoinou 1y agoThat's pretty much how everyone is doing it, no ? It's a (Think a new improved model, Code the model, Study Results and compare with what we thought about the model) cycle. What's the alternative ?
- skydhash 1y agoI think the issue is how people goes about doing it. Often the model is clearly not improved, but it would mask problems some people wants under the rug. Sometimes, people are coding the wrong model or coding wrongly the correct model or coding wrongly the wrong model. Sometimes there's no study being done, only hope and prayers. And comparing is only ever done by the customer.
- f1shy 1y agoMmm bot really. First, it was HW and SW, and HW was simulated. Many go on to build something, then test Second, requirements are written in a formal language. I’ve never seen formal languages in DOORS (or similar) before Third we did not do the whole thing, just the bits and pieces in the requirements. After the requirements were done and approved, we move on to development, where the “normal” iterations happen. Subtle, but not the same
- skydhash 1y ago> Repeat{talk to customer; write formal language; simulate; validate}until no change; That's basically the agile manifesto, but involving flexibility by having humans instead of policies defining the flow and shorter iterations.
- thunky 1y agoI don't know about that... The LLM only needs to convert the human language into some strict machine readable structure (like an AST), which the human doesn't need to bother with. This is a pure conversion task. From there, something else (not a human) can convert that to running machine code. Effective this would obsolete the human facing programming language.
- ttoinou 1y agoDo you think GenAI LLM would be so efficient at coding if there were no names and comments in the training data ? I doubt it. And where LLMs shine the most is for web development where there is a ton of training data and HTML / CSS is quite verbose
- thunky 1y ago> Do you think GenAI LLM would be so efficient at coding if there were no names and comments in the training data ? I doubt it. Sure, but if you remove human facing programming languages from the equation - which are diverse and messy due to human understanding and varied preferences - then the intermediate language that the LLM generates would be much smaller and simpler to "understand" and produce. Public code could be converted into this intermediate language to train the LLM so it has examples of human intent -> AST. I don't think this could eliminate programming languages, but my position is that a large percentage of development work today is not very unique at all: it's the same patterns being done over and over by different people in different (or in many cases, the same) way. We could solve this problem without LLMs, but we never will because the will is not there.