11 ms·
AI coding agents are removing programming language barriers
- Maro 1y agoThis is great, and I think this is the right way to use AI: treat it as a pair programming partner and learn from it. As the human learns and becomes better at both programming and the domain in question (eg. a Ruby JIT compiler), the role of the AI partner shifts: at the beginning it's explaining basic concepts and generating/validating smaller snippets of code; in later stages the conversations focus on advanced topics and the AI is used to generate larger portions of code, which now the human is more confident to review to spot bugs.
- Ozzie_osman 1y agoAgree. My team and I were just discussing that the biggest productivity unlock from AI in the dev workflow is that it enables people to more easily break out of their box. If you're an expert backend developer, you may not see huge lift when you write backend code. But when you need to do work on infrastructure or front-end, you can now much more easily unblock yourself. This unlocks a lot of productivity, and frankly, makes the work a lot more enjoyable.
- SubiculumCode 1y agoSeems like it would make people more adverse..the variability of AI expertise by language is pretty large.
- MattGaiser 1y agoIt just needs to be better than the human would be and less effort. It does not need to be great.
- karmasimida 1y agoLet me just say this way. AI is a much better, so in some case worse, language lawyer than humans could ever be.
- Paradigma11 1y agoLLMs learn and apply pattern. You can always give some source code examples and language docs as context and it will apply those adapted patterns to the new language. Context windows are pretty large (Gemini 2.5 pro with 1 mill tokens (~ 750k words the largest) so it does not really matter.
- deleted 1y ago[deleted]
- cultofmetatron 1y agoI think AI will push programming languages in the direction of stronger hindly milner type type checking. Haskell is brutally hard to learn but with enough of a data set to learn from, its the perfect target language for a coding agent. its high level, can be formally verified using well known algos and a language server could easily be connected with the ai agent via some mcp interface.
- seanmcdirmid 1y agoWe might see wider adoption of dependently typed languages like Agda. But limited corpus might become the limiting factor, I’m not sure how knowledge transfers as the languages get more different.
- ipnon 1y agoIt's getting cheaper and cheaper to generate corpora by the day, and Agda has the advantage of being verifiable like Lean. So you can simulate large amounts of programs and feed these back into the model. I think this is a major reason why we're seeing remarkable improvements in formal sciences like the recent IMO golds, and yet LLMs are still struggling to generate aesthetically pleasing and consistent CSS. Imagine a high schooler who can win an IMO gold medal but can't center a div!
- andrewflnr 1y agoIt seems like "generating" a corpus in that situation is more like a search process guided by prompts and more critically the type checker, rather than a straight generation process right? You need some base reality or you'll still just have garbage in, garbage out.
- tsimionescu 1y ago> can be formally verified using well known algos Is there any large formally verified project written in Haskell? The most well known ones are C (seL4 microkernel) and Coq+OCaml (CompCert verified C compiler).
- andrewstuart 1y agoI’ve been enjoying doing a bunch of assembly language programming - something I never had the experience of or capability to learn to competence or time to learn previously.
- behnamoh 1y agoCounter point: AI makes mainstream languages (for which a lot of data exists in the training data) even more popular because those are the languages it knows best (ie, has the least rate of errors in) regardless of them being typed or not (in fact, many are dynamic, like Python, JS, Ruby). The end result? Non-mainstream languages don't get much easier to get into because average Joe isn't already proficient in them to catch AI's bugs. People often forget the bitter lesson of machine learning which plagues transformer models as well.
- echelon 1y agoAI seems pretty good at Rust, so I don't know. What sort of obscure languages are we talking about here?
- behnamoh 1y agoHaskell, Lisps (especially the most Common one!), Gleam or any other Erlang-wrapper like Elixir, Smalltalk, etc.
- josevalim 1y agoPhoenix.new is a good example of a coding agent that can fully bootstrap realtime Elixir apps using Phoenix LiveView: https://phoenix.new/ https://phoenix.new/ I also use coding agents with Elixir daily without issues.
- arrowsmith 1y agoYes, Claude 4 is very good at Elixir.
- ModernMech 1y agoSee this is what kills me about these things. They say they built this system that will build apps for you, yet they advertise it using a website that chews through my CPU and GPU. All this page does is embed a YouTube video, why is my laptop's fan going full blast? And I'm supposed to trust the code that emanates from their oracle coding agent? What are we doing here people??
- kaptainscarlet 1y agoI was thinking the same the other day. No need for high-level languages anymore. AI, assumming it will get better and replace humans coders. has eliminated the labour constraint. Moores law death will no longer be a problem as performance gains are realised in software. The days of bloated electron apps are finally behind us.
- balder1991 1y agoYet WhatsApp is killing its Windows desktop app in favor of the web-based version.
- nikolayasdf123 1y agotrue. doing pair programming with AI for last 10 months I got my skills from zero to sufficient profficiency (not expert yet) in totally new language — Swift. entry barrier is much lower now. research advanced topics is much faster. typing code (unit tests, etc.) is much faster. code review is automated. it is indeed makes barrier for new languages and tools lower.
- iLoveOncall 1y agoI would expect anyone to get proficient in Swift after 10 months of using it, with or without AI... If AI had really a multiplying factor here, I'd expect you to BE an expert.
- dearilos 1y agohow'd you get your code review automated?
- bigfishrunning 1y agoEasy! By not doing any, and trusting the AI when it says "LGTM"
- nikolayasdf123 1y agoyou would be surprised how many complex and non-compelx bugs it finds all the time. and that is in addition to typos checks. super reliable. very useful bugs. amost 100% of the time I say "oh that's nice. saved me lots of time testing and debugging this. thanks!" sometimes it recommends high-level architectural changes. sometimes it detects "inconsistent" things that step out of the line of non-trivial patterns. saved me tons of time in K8S and other large config YAMLs and in just imperative code too (structures there repeats often too) and about correctness of suggestions. they are obvious once you see them. tests pass by definition (if you have any, before Copilot kicks-in). so whatever Copilot suggests likely already passes the tests, yet not ... sit right with it. it's intuition is pretty remarkable.
- nikolayasdf123 1y ago
- sillycube 1y agoYes, I try to port 200 lines of js to Rust, the features remain the same. Using Claude 4.0 Sonnet with a prompt and it's done. Work perfect. I still spend a few days studying Rust to grasp the basic things.
- karmasimida 1y agoAI has basically removed my fear with regards to programming languages. It almost never misses on explaining how certain syntax works.
- globular-toast 1y agoWe learn natural languages by listening and trying things to see what responses we get. Some people have tried to learn programming the same way too. They'd just randomly try stuff, see if it compiles then see if it gives what they were expecting when they run it. I've seen it with my own eyes. These are the worst programmers in existence. I fear that this LLM stuff is turning this up 11. Now you're not even just doing trial and error with the compiler, it's trial and error with the LLM and you don't even understand what it's output. Writing C or assembly without fully reasoning about what's going on is going to be a really bad time... No, the LLM does not have a working model of computer memory, it's a language model, that's it.
- physicsguy 1y agoI've noticed this at work where I use Python frameworks like Flask/FastAPI/Django and Go, which has the standard library handlers but within that people are much less likely to follow specific patterns and where there are various composable bits as add ons. If you ask an LLM to generate a Go handler for a REST endpoint, it often does something a bit out of step with the rest of the code base. If I do it in Python, it's more idiomatic.
- iparaskev 1y ago> The real breakthrough came when I stopped thinking of AI as a code generator and started treating it as a pairing partner with complementary skills. I think this is the most important thing mentioned in the post. In order for the AI to actually help you with languages you don't know you have to question its solutions. I have noticed that asking questions like why are we doing it like this and what will happen in the x,y,z scenario, really helps.
- solids 1y agoMy experience is that each question I ask or point I make produces an answer that validates my thinking. After two or three iterations in a row in this style I end up distrusting everything.
- tietjens 1y agoyes, this. biggest problem and danger in my daily work with llms. my entire working method with them is shaped around this problem. instead of asking it to give me answers or solutions, i give it a line of thought or logical chain, and then ask it to continue down the path and force it to keep explaining the reasoning while i interject, continuing to introduce uncertainty. suspicion is one of the most valuable things i need to make any progress. in the end it's a lot of work and very much reading and reasoning.
- samrus 1y agoThis is very true. Constant insecurity for me. One thing that helps a little is asking it to search for sources to back up what its saying. But claude has hallucinated those as well. Perplexity seems to be good at being true to sources, but idk how good it is at coding itself
- iparaskev 1y agoThis is a good point. Lately I have been experimenting with phrasing the question in a way that it makes it believe that I prefer what I am suggesting, while the truth is that I don't. For example: - I implement something. - Then I ask it to review it and suggest alternatives. Where it will likely say my solution is the best. - Then I say something like "Isn't the other approach better for __reason__ ?". Where the approach might not even be something it suggested. And it seems that sometimes it gives me some valid points.
- alentred 1y agoI wonder, are some programming languages more suitable for AI coding agents (or, rather LLMs) than the others? For example, are heavy on syntax languages at disadvantage? Is being verbose a good thing or a bad thing? P.S. Maybe we will finally see M-expressions for Lisp developed some day? :)
- iLoveOncall 1y agoI don't think I've ever seen an experienced software engineer struggling to adapt to a new language. I have worked in many, many languages in the past and I've always found it incredibly easy to switch, to the point where you're able to contribute right away and be efficient after a few hours. I recently had to do some updates on a Kotlin project, having never used it (and not used Java in a few years either), and there was absolutely no barrier.
- RedNifre 1y agoBash might not be difficult, but it is very annoying, so I'm happy that the AI edits my scripts for me.
- thefz 1y ago> Bash might not be difficult, but it is very annoying Just shellcheck the hell out of it until it passes all tests.
- xnorswap 1y agoI've seen plenty struggle. They don't struggle to write code, but they struggle to write idiomatic code. An experienced programmer from a different language introduced to another will write lots of code that works, but in a style idiomatic to their favoured language, be that C, C++, rust, python, etc. Every language has its quirks, and mastery is less about being able to write a for loop or any given algorithm in any given language, but more about knowing which things you should write, and which things you should be using the standard libraries for. I've literally seen C# consultants waste time writing their favourite .NET LINQ methods into a javascript library, so they can .Select(), .Where(), etc, rather than using .filter, .map, etc. Likewise I've seen people coming from C struggle to be as productive as they ought to be in C#, because they'd rather write a bunch of static methods with loops than get to grips with LINQ. Fully understanding a runtime (or compiler behaviour for AOT languages) and what is or isn't in standard libraries isn't something that can be mastered in a few hours.
- deleted 1y ago[deleted]
- graynk 1y agoGet back to me once you successfully write a Vulkan app with LLMs
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- thefz 1y agoI wanted to test Gemini's code generation so I asked it for a bash script iterating through an array of directory names and executing a command for each one. It got it wrong. The command was generated outside of the for, and never updated inside the loop effectively making it useless. Luckily I know bash so I spotted it immediately. But I wonder how it's "removing programming language barriers" when one that does not know its output language can not spot even such a glaring issue.
- jiggawatts 1y agoI think this is more of a criticism of bash than of Gemini. Also, I out-of-hand reject any criticism of an AI that specifies only the brand ("ChatGPT") and not the specific model version, settings, etc... So, for example, Gemini 2.5 Pro (Jan 2025) with temperature 0.15 prompted with: "Write a short, idiomatic bash script that takes a file containing a list of directory names, changes to each one, runs a command, and then returns to the original working directory." Spits out this: #!/bin/bash # A script to run a command in a list of directories. # Exit if the wrong number of arguments are provided. if [[ $# -lt 2 ]]; then echo "Usage: $0 <file_with_dirs> <command> [args...]" >&2 exit 1 fi DIR_FILE="$1" shift # The rest of the arguments ("$@") are now the command. # Ensure the directory list file exists and is readable. if [[ ! -r "$DIR_FILE" ]]; then echo "Error: Cannot read file '$DIR_FILE'" >&2 exit 1 fi # Read the file line by line. while IFS= read -r dir; do # Skip empty lines or non-existent directories. if [[ -n "$dir" && -d "$dir" ]]; then echo "==> Entering '$dir'..." # Run command in a subshell to keep the 'cd' local. # '&&' ensures the command only runs if 'cd' succeeds. (cd "$dir" && "$@") echo "<== Finished with '$dir'." else echo "--> Skipping invalid directory: '$dir'" >&2 fi done < "$DIR_FILE" echo "All done." That worked for me, but I was testing it in WSL 2 where I got a gibberish error... which was because I edited the file in Windows Notepad and the line endings were confusing bash. Gemini helpfully told me how to fix that too! Something that I found amusing, and again, is a criticism of bash instead of the AI, is that this fails to process the last line if it isn't terminated with a \n character. PS: This is almost a one-liner in PowerShell, and works with or without the final terminator character: Push-Location Get-Content dirs.txt | cd -PassThru | Foreach-Object { echo "Hello from: $pwd" } Pop-Location Gemini also helped me code-golf this down to: pushd;gc dirs.txt|%{cd $_;"Hello from: $pwd"};popd
- sunrunner 1y agoWhat about the part of programming and software development that relies on programmatic/systemic thinking? How much is the language syntax itself part of any 'program' solution?
- OfficeChad 1y ago[dead]
- dearilos 1y agoAI coding agents help you solve the problem faster AI code review helps you catch issues you've forgotten about and eliminates the repetitive work These tools are helping developers create quality software - not replace them
- kwancloudli 1y agoSee if you have same thoughts after 1 years
- 0points 1y agoHyperbole: AI isn't even trained on most programming languages. Compare it yourself with letting it generate js/python or something it trained alot on, versus something more esoteric, like brainfuck. And even in a common language, you'll hit brick walls when the LLM confuses different versions of the library you are using, or whatever. I had issues with getting AI generated rust code to even compile. It's simple: The less mainstream language, the less exposure in the training set leads to worse output.
- rvz 1y agoThis is why the most seasoned of engineers will be employed back to clean up the mess that these AI agents and vibe-coders have created. I suggest that the author should properly read up on the technicals of these compiled languages before having to be fully dependent on an AI bot which by his own admission can lead him and the chatbot into the wrong direction. Each of these languages all have different semantics and have complete differences between them; especially compiled languages like C/C++,Rust verses Ruby and Javascript (yuck).
- Pamar 1y agoAm I the only one that remembers how Microsoft tried to convince everyone to adopt .Net because this way you could have teams where one member could use J#, another use Fortran.Net (or whatever the name was) and old chaps could still contribute by writing Cobol# and everything would just magically work together and you would quadruple productivity just by leveraging the untapped pool of #Intercal talent out there?
- mikert89 1y agoWish I could go back to a time when I believed stuff like this
- bgwalter 1y agoYet again the key point of the article is "[AI is] encouraged at Shopify". Without fail all of these articles are externally driven to some extent.
- ChrisMarshallNY 1y ago> AI as a Complementary Pairing Partner That's how I've been using it. I treat it as a partner that has a "wide and shallow" initial base, but the ability to "dive deep," when I need it. Basically, I do a "shallow triage," to figure out what I want to focus on, then I ask it to "dive deep," on my chosen topic. I haven't been using it to learn new languages, but I have been using it to learn new concepts and techniques. Right now, I'm learning up on implementing a webauthn backend and passkey integration into my app. It's been instrumental. Coming along great. I hadn't had any previous experience, and it's helping me to learn. I should note that it has given me wrong examples; notably, it assumed a deprecated dependency version, that I had to debug and figure out a fix. That was actually a good thing, as it helped me to learn the "ins and outs" a bit better. I'm still not convinced that I'd let AI just go ahead and ship an application from scratch, without any intervention on my part. It often makes mistakes; not serious ones, but ones that would be bad, if they shipped.
- AstroBen 1y agoI've been diving into a (new language to me) Swift codebase over the last week and AI has been incredibly helpful in answering my questions and speeding up my learning But meaningfully contributing to a complex project without the skills? Not a chance I'd put my name on the contributions it makes. I know how many mistakes these tools make in the languages I know well - it also makes them in the ones I don't. Only now I can't review its output
- balder1991 1y agoYeah, I don’t understand how people feel confident with that at all. Whenever I dive into a programming language I don’t know, I realize the amount of stuff I need to get used to before I feel confident reviewing code in it. Also supposedly language barriers are smaller than ever, yet WhatsApp is killing its desktop app on Windows in favor of using the Web-based version.
- itsafarqueue 1y agoBecause sixty percent of the time it works every time.
- dogleash 1y agoI wonder how much it's changing the learning curve vs just making the experience more comfortable. >For someone who spent a decade as a “Ruby developer,” becoming a multi-language developer in less than a year feels revolutionary. Revolutionary? They've snitched they have no frame of reference to make that claim. It would have taken "less than a year" with or without AI. They just spent 10 years not trying. Everyone's first language learning experience is also learning to program. Learning a new language once you have years of professional programming practice is completely different.
- thegeomaster 1y agoSame here. Reading the article, I could not really relate to the experience of being a single-language developer for 10 years. In my early days, I identified strongly with my chosen programming language, but people way more experienced than me taught me that a programming language is a tool, and that this approach is akin to saying "well, I don't know about those pliers, I am a hammerer." My personal feeling from working across a wide range of programming languages is that it expands your horizons in a massive way (and hard to qualitatively describe), and I'm happy that I did this.
- mathgeek 1y agoGood analogy IMHO. Knowing whether a given language is a tool vs a toolbox is important.
- ryandv 1y agoThe idiosyncrasies of Ruby, like Perl and JavaScript, lead to a certain kind of brain damage that make it difficult to build correct mental models of computing that can then generalize to other languages.
- pryelluw 1y agoAlthough I disagree with your opinion (and who cares?), your comment reminded me of Winp Lo. https://m.youtube.com/watch?v=d696t3yALAY https://m.youtube.com/watch?v=d696t3yALAY
- dogleash 1y ago>We can start contributing meaningfully from day one, learning what we need as we go. Can you though? Or is just not bad enough for your coworkers to bother telling you how bad it is? I use AIs daily. But that doesn't mean I don't get mad when I'm reviewing a coworker's work and have to fight whatever bullshit an AI convinced them. I can't just brush it off as AI nonsense because 1) it might be their honest attempt at work without AI and 2) if it is AI they've already proven they don't know how to improve it.
- bitpush 1y ago> Can you though? Take a look at this Haskell program that LLM wrote. I do not write Haskell, but I can review the code just fine to say that this is doing what I want. -- Simple multiplication function multiply :: Num a => a -> a -> a multiply x y = x * y -- Main function for running the program main :: IO () main = do putStrLn "Enter the first number:" input1 <- getLine putStrLn "Enter the second number:" input2 <- getLine let num1 = read input1 :: Double let num2 = read input2 :: Double let result = multiply num1 num2 putStrLn $ "Result: " ++ show num1 ++ " * " ++ show num2 ++ " = " ++ show result If I had to write this by myself, it'd have taken atleast 20mins. First I have to be learn how main function is setup, how type definitions work, what putStrLn is, how to get an input, how to define a multiple function etc etc. It really is an NP problem, come to think of it.
- skydhash 1y ago> First I have to be learn how main function is setup, how type definitions work, what putStrLn is, how to get an input, how to define a multiple function etc etc. So did you learn all of that from just glancing at this snippet?
- lvl155 1y agoAI tools make it so much easier to shift gears between two or more languages. Before this year, it would take me at least a week to adjust going from Python to Rust to TS. Now, AI will just fill in the gaps and I know enough to recognize poor AI patterns.
- snovymgodym 1y agoI don't know, have there really been meaningful "language barriers" between mainstream programming languages for the last 20 years or so? If I think about the 10 most common languages being used for application code right now, something like 80% of them can be described as "C or ALGOL's syntax with call-by-reference and automatic memory management". If you program for a living, I feel like you can switch between any of these without much effort. They're so similar to one another at a fundamental level, and there's lots of convergence going on as they adopt features from one another. Sure, doing C or C++ for the first time can be hard if you've never had to think about memory lifecycles before, but even that isn't so crazy if you're working with established patterns, pay attention to warnings, and use an aggressive linter. For languages with actual learning curves, they're just not as widely used (e.g. Rust, Ada SPARK, lisp, forth, ML).
- elzbardico 1y agoI shudder thinking of people who never wrote C, vibecoding C.
- jug 1y agoIt’s kind of true. The amount of direct training material per language still matters quite a bit. They’re best at the giants Javascript or Python, but starts influencing Rust and in particular languages like Zig. So if you ask it to write a Python app in C it’ll probably do better than if you ask it to write it in D, Zig, Nim, Crystal, what have you. Unfortunately I haven’t been able to find the excellent chart that had in fact benchmarked coding based on languages right now.
- deterministic 1y agoI know quite a few programming languages well enough to write production software using them. It didn't take long to learn. The hardest to learn for me was Haskell. Because of how different the thinking behind the language is. But it was great to learn even though I don't use it daily. I highly recommend learning different programming languages. It's a great way to get exposed to different ways of thinking about how software should be developed.