3 ms·
A lot of the previous calculus around refactoring and "rewrite the whole thing in a new language" is out the window now that AI is ubiquitous. Especially in sit
by djoldman 8mo ago
A lot of the previous calculus around refactoring and "rewrite the whole thing in a new language" is out the window now that AI is ubiquitous. Especially in situations where there is an extensive test suite.
Testing has become 10x as important as ever.
- pjmlp 8mo agoWell, I am on the provocative side that as AI tooling matures current programming languages will slowly become irrelevant. I am already using low code tooling with agents for some projects, in iPaaS products.
- anon-3988 8mo ago> Well, I am on the provocative side that as AI tooling matures current programming languages will slowly become irrelevant. I have the opposite opinion. As LLM become ubiquitous and code generation becomes cheap, the choice of language becomes more important. The problem with LLM for me is that it is now possible to write anything using only assembly. While technically possible, who can possibly read and understand the mountain of code that it is going to generate? I use LLM at work in Python. It can, and will, easily use hacks upon hacks to get around things. Thus I maintain that as code generation is cheap, it is more important to constraint that code generation. All of this assume that you care even a tiny bit about what is happening in your code. If you don't, I suppose you can keep banging the LLM to fix that binary blob for you.
- pjmlp 8mo agoLets say years of offshoring projects have helped to reach that opinion.
- _flux 8mo ago> The problem with LLM for me is that it is now possible to write anything using only assembly. While technically possible, who can possibly read and understand the mountain of code that it is going to generate? As a very practical problem the assembly would consume the context window like no other. And another is having some static guardrails; sometimes LLMs make mistakes, and without guard rails it debugging some of them becomes quite a big workload. So to keep things efficient, an LLM would first need to create its own programming language. I think we'll actually see some proposals for a token-effective language that has good abstraction abilities for this exact use.
- ignoramous 8mo ago> As LLM become ubiquitous and code generation becomes cheap, the choice of language becomes more important. I think, changes to languages/tooling to accomodate Agentic loops will become important. > All of this assume that you care even a tiny bit about what is happening in your code. If you don't... I mean, as software engineers, we most certainly do. I suspect there'll be a new class of "developers" who will have their own way of making software, dealing with bugs, building debugging tools that suit their SDLC etc. LLMs will be to software development what Relativity was to Astrophysics, imo: A fundamental & permanent shift.
- javier123454321 8mo agoIm already using models to reason about and summarize part of the code from programming language to prose. They are good at that. I can see the process being something like english to machine lang, machine lang to english if the human needs to understand. However amother truism is that compilers are a great guardrail against bad generated code. More deterministic guardrails are good for llms. So yeah im not there yet where i trust binaries to the statistical text generators.
- staticassertion 8mo agoI don't agree. For one thing, the language directly impacts things like iteration speed, runtime performance, and portability. For another, there's a trade-off between "verbose, eats context" and "implicit, hard to reason about". IMO Rust will strike a very strong balance here for LLMs.
- pjmlp 8mo agoFormal specifications and automated testing, will beat any language specific tooling. Hardly much different than dealing with traditional offshoring projects output.
- anon-3988 8mo agoIf the offshore company provides me a Rust crate that compiles, that is already a lot of guarantee. Now that does not solve the logic issues and you still need testing. But testing in Python is so easy to abuse as LLM. It will create mocks upon mocks of classes and dynamically patch functions to get things going. Its hell to review.
- throwaway27448 8mo agoWhat is a programming language used for if not the most formal specification possible? Of course it doesn't matter what language you use if you perfectly describe the behavior of the program. Of course, there's also no point in using LLMs (or outsourcing!) at that point.
- staticassertion 8mo ago> Formal specifications and automated testing, will beat any language specific tooling. I don't understand what you mean. Beat any language at what? Correctness? I don't think that's true at all, but I also don't see how that's relevant, it definitely doesn't address the fact that Rust will virtually always produce faster code than the majority of other languages. > Hardly much different than dealing with traditional offshoring projects output. I don't know what you mean here either.
- 8mo ago
- ivell 8mo agoI would say that current programming languages have a better chance due to the huge amount of code that AI can train on. New languages do not have that leverage. Moreover, current languages have large ecosystems that still matter. I see the opposite. New languages have more difficulty breaking into popularity due to lack of enough existing codename and ecosystems.
- pbronez 8mo agoInteresting take, what do you think comes next? A programming language optimized for coding agents?
- pjmlp 8mo agoKind of, more in line with formal specs used in high integrity computing, instead of classical programming languages.
- jillesvangurp 8mo agoThere is the notion that a lot of programming language preferences are based on the notion of people using them. As soon as it's LLMs using them, a lot of what motivates their choices becomes less valid. I've been doing a few projects that are definitely outside my comfort zone with LLMs and its fine. I can read the code but I just don't have the muscle memory to produce it.
- dizhn 8mo agoFor a personal thing I had AI write some python libraries to power a cli. It has to do with simple excel file filtering, grouping and aggregating. Nothing too fancy. However since it's backed by a library, I am playing with different UIs for the same thing and it's fun to say.. Do it with streamlit. Oh it can't do this particular thing. Fine do it with shiny. No? OK Dash. It takes only like an hour to prototype with a whole new UI library then I get to say "nah" like a spoiled child. :)