14 ms·
A.I. can now write its own computer code – that’s good news for humans
- Wildgoose 5y agoI remember "The Last One", a program generator written in 1981. So the idea of programs writing programs is nothing new. Improvements by purposeful self-modification would be a different matter... https://en.wikipedia.org/wiki/The_Last_One_(software) https://en.wikipedia.org/wiki/The_Last_One_(software)
- tluyben2 5y agoThey have been saying our jobs are obsolete because AI longer than that anyway. The stuff that codex generates is not the work we do and as such it's pretty useless. I see AI more in frontend code: have designers think up things and have the AI generate React that gives the best possible (machine learned) user experience from those designs (like: this looks like a form with a list right next to it: that will be best with this html on mobile and desktop). At least that seems possible now while writing code that adds value outside that rather does not.
- emanuele232 5y agoI think i saw a workin product that does exactly that but i can't remember the name
- tluyben2 5y agoThere is at least one that was here about 2 years ago but was not good.
- raxxorrax 5y agoIt writes Javascript, that doesn't count. I doubt it read any API specs and implemented the code for that matter. The sentence he wrote in this case is probably a programming language that got transpiled to JS. disclaimer: Only saw the picture because the article is behind a paywall.
- chinga1204 5y ago> I doubt it read any API specs and implemented the code for that matter. That should be easier than an unbounded philosophical discussion with an eight year old sensemaking vocabulary in-formation.
- deleted 5y ago[deleted]
- Raro 5y agoCodex has the capacity to write decent Python code. A large part of getting great results from it is writing clear, well separated, prompts. Also taking it off streaming mode, to get best N results, and penalizing repetition, improves the output dramatically. Even better if you can give further hints (e.g. import pandas) before submitting. Of course, it's merely trained on code it's seen on GitHub, so it certainly has a particular smell to it (disclaimer: I focus on Data Science related code, which is not always of the highest quality and has its share of cargo-culting). Most of the demos you will likely have seen are in streaming mode, have vague prompts with a high temperature setting.
- sharemywin 5y agoHere's a pretty impressive demo. https://www.youtube.com/watch?v=SGUCcjHTmGY https://www.youtube.com/watch?v=SGUCcjHTmGY I think they said it handles something like 37% of requests. Btw, don't watch it if your worried at losing your job to a computer.
- bavell 5y agoWatched it, very impressive for AI but not at all worried about losing my job :)
- Traubenfuchs 5y agoHi! What is your job and why are you not worried? I am also looking for reasons not to be worried!
- endisneigh 5y agoi'm curious - if you're worried based off that video - why?
- OneEyedRobot 5y agoIt seems to me that the problem from a programmers standpoint isn't that their job will disappear but that the definition of their job will change quite a lot. I always think of the example of supermarket cashiers. Formerly a fairly skilled job but now merely providing cheap meat-robot manipulators for a scanner. The person is still there but has a job concentrated down to the few things a person does better, and those things aren't always the fun things.
- MrsPeaches 5y agoI wonder if “coding/coder” will go the same way as “computing/computer” [1] [1] https://en.m.wikipedia.org/wiki/Computer_(occupation) https://en.m.wikipedia.org/wiki/Computer_(occupation)
- 5y ago
- endisneigh 5y agoLuckily for anyone in the software writing profession, writing the actual code is the easy part. Anyone who watches the video in its entirety will be made painfully aware of this. That aside - what I'd actually prefer is something that does the opposite of this. Rather than write code, I'd rather it actually help decide what I should be doing, not give me how it's implemented. Example: > "Make twitter" - "OK. Do you mean a short message sending service like "Twitter.com" when you say 'twitter'? > "Yes" - "OK" - "How many users are you thinking this will have?" > "20 million" - "Alright, where are these users located?" > "All over the world?" - "Will they all be on simultaneously?" > "Yes" - "OK, what are your latency requirements?" > ... The end of this discussion could be a fully architected design in the abstract, with recommendations on specific technologies to use, the tradeoffs and the costs, if applicable. A plus if said architecture could be specified in a way that makes it easy to deploy. This logic could be used for high level implementation designs, and even UI/UX.
- dgb23 5y agoI love designing programs, programming and everything around it, it's my job. I constantly jumping back and forth between being worried that I won't be able to do this in the foreseeable future and realizing that these systems don't solve the problems I'm solving.
- 37ef_ced3 5y agoThese systems don't solve the problems you're solving? Not yet, but give it a couple years. You will join the taxi drivers, and so will I.
- quonn 5y agoYawn. Seriously, don‘t worry about it.
- 37ef_ced3 5y agoFirst they came for Lee Sedol, and I did not speak out— Because I was not a professional game player. Then they came for the taxi drivers, and I did not speak out— Because I was not a taxi driver. Then they came for the frontend programmers, and I did not speak out— Because I was not a frontend programmer. Then they came for me—and there was no one left to speak for me.
- neonate 5y agohttps://archive.md/fz2xN https://archive.md/fz2xN http://web.archive.org/web/20210910154656/https://www.nytimes.com/2021/09/09/technology/codex-artificial-intelligence-coding.html http://web.archive.org/web/20210910154656/https://www.nytime...
- dekhn 5y agoCade Metz is such a tool.
- You-Are-Right 5y agoCan it write an AI that writes code?
- humanistbot 5y agoThe semantics of "AI that can write its own computer code" is hurting my head. What is the line between an "AI" code generator that inputs natural language and outputs code in a high-level software language, versus a high-level language compiler that inputs structured instructions and outputs machine/bytecode? At some point, these "AI" / autocoding systems are just a higher level of code abstraction, right? If you showed a modern python script to an assembly developer from 1975, they'd probably call that a code-generating AI. Or am I missing something?
- avmich 5y agoI think it's good to remind that a common theme in AI development history is that whatever advances AI tools demonstrate become considered "non-AI" - even if before it was seen as AI-worthy.
- TeMPOraL 5y agoWith a caveat that typically "it was seen as AI-worthy" only because people expected the full solution, which would require an AI, but learned to accept a partial but much simpler one. For example, free-form document search used to be considered AI problem, because people assumed the program needs to understand the documents and the query, the way a librarian or an archivist did. It turns out that some fuzzy matching and a silly graph algorithm can get you 90% there - so search is now called "non-AI". But it's not the people's understanding of AI that changed. It's that the AI part of search is the unsolved remaining 10% (that would also make it not suck). Same story with machine translation. It was considered AI, now it's 90% solved with clever algorithms and a big corpus. Definitely not AI - but again, only because the AI part is the remaining 10% that would make machine translation not suck. Note how business and legal language is still translated by humans - that's because the 90% that was solved is good enough only for casual use, where people are willing to tolerate mistakes and to meet the machine halfway. Point is, I'd argue people still have the same vague definition of AI as they always had - a program that is smart in general sense, that can navigate its environment and figure stuff out on its own. A program that, if you squint hard enough, could be considered a person[0]. Problems that transitioned from "AI-complete" to "doesn't need AI after all" are ones for which we found good enough solutions that didn't need the AI. -- [0] - At least to sensibilities trained on science fiction, which very much broadens what you'd consider a sapient life form, a person.
- howmayiannoyyou 5y agoEvaluated OpenAI Codex for weeks now. It cuts 1/2 the time off my current coding time, largely by producing syntax correct code & reducing lookups to docs/stack/etc. At the same time, it's hopelessly wrong or broken about 1/3 of the time. On balance - it is revolutionary. For real world use - it is still very experimental.
- avmich 5y agoCan we ask Codex to write in languages like Haskell where it's hard to make "small" mistakes, because types are catching you? Or does it circumvent that?
- PartiallyTyped 5y agoConsidering Haskell is much more dense than most languages, it should be harder to create those small mistakes because the produced code is much shorter, but I haven't tested it, so take this with a grain of salt.
- YeGoblynQueenne 5y agoIf you want to auto-write Haskell, use MagicHaskeller: http://nautilus.cs.miyazaki-u.ac.jp/~skata/MagicHaskeller.html http://nautilus.cs.miyazaki-u.ac.jp/~skata/MagicHaskeller.ht... And whle we're at it, if you want to auto-write Prolog, use my own Louise: https://github.com/stassa/louise https://github.com/stassa/louise
- hasmanean 5y agoMy printer can print art. That makes it an artist.
- abecedarius 5y agoWorth remembering that just a few years before Deep Blue beat Kasparov, grandmasters were saying that was indefinitely far off. And that in the face of a clear steady ratings trend. You need to account for the rate of progress, not just the current abilities. (Yes, there's more to software development than coding.) (Didn't read the article, it's nytimes.)
- cable2600 5y agoAn AI can brute force a winning plan on a chess board. Chess masters study books and patterns. Deep Blue was fed books and other player's moves. When Kasparov was beating Deep Blue they had to quit and feed Deep Blue more of Kasparov's games.
- ta988 5y agoHow long before people use it to pass interview leetcode-level questions.
- jvm_ 5y agoLeetcode interview questions will adapt to ask for the wrong answer. You'll have to write broken code to prove you can code better than the correct code AI can spit out.
- gavinray 5y agoThe quality of the code it produces is not very good. I have been trying this out, I can share a bit of my experiences/thoughts below: ------- I've been writing JavaScript/TypeScript fulltime for ~6-7 years now. Day in, and day out, and I happen to love + ardently follow the progress of the language. In the middle of my functions using "const" and "for (let thing of things)", it will try to autosuggest code snippets using "var" and "for (var i=0, i < things.length; i++) { var thing = things[i]". There's two problems I see here: 1. Languages evolve. Newer language features that devs should be taking advantage of don't get suggested because training data doesn't exist on it yet. 2. The code quality isn't great, as you have to assume the majority of programmers are not producing the world's best code, and so that is the data it was trained on. I saw the same thing in Java. Using JDK16, it would never suggest autocompletions for Records, or multi-line strings, or pattern matching. If I had accepted its suggestions, what I would have wound up with, was code that TECHNICALLY worked, but was very low quality and used dated techniques. Many things it suggests can now be solved in a few lines using recent features of languages that there isn't enough training data on. So it will never suggest them.
- sschueller 5y agoI am not looking forward to the day I have to fix or enhance legacy code written by some AI that is long gone and no one knows how anything works...
- refactor_master 5y agoThen you put another AI on top of that, designed to fix legacy code bugs. And another AI on top of that, and…
- aogaili 5y agoWhile this impressive but building software is about the larger understating of the environment and the intent of the users etc. Coding is just translating the solution from the developers head to the machines to execute. This is coding using natural language. It associates natural language text with code but it understands nothing really in the way humans understand larger context.
- xyzzy21 5y agoGood luck with that. Simple information theory arguments assure this will not work out so well.
- whaaswijk 5y agoInteresting. Could you provide such an argument?
- qualudeheart 5y agoI’d love to hear more about that. That other poster itt asked if you could post those arguments. I’d also like to hear those. Information theory is a topic I’ve worked on before, while designing an AI.
- brundolf 5y agoNobody tell them compilers have been writing their own computer code based on higher-level instructions for half a century ;)
- marstall 5y agoWhen i think about the work i do as a fairly blue collar front-end engineer writing react and swift code, it's interesting to consider how this could fit in and help. The problem areas it seems to excel at are somewhat self-contained, which is in contrast to the code I write, usually all about integrating multiple systems and bodies of knowledge (user device, network, data schema, industry practices, product requirements etc). I too rarely, to my occasional regret, have a chance to write a more pure function whose function can be explained so concisely as the miraculous codex demos are. Helper functions ("count the words" etc) are sprinkled throughout my code for sure but are mostly provided to me by the platforms I inhabit. Codex's ability to explain a piece of code in plain english seemed exciting at first, but the type of "other people's code" I am usually puzzling over has so many tentacles into the specific "business rules" and arcana of the service i'm writing to. How would Codex know about all that? Of course codex has already blown my mind several times so I am quite open to it someday being able to ingest an entire set of interrelated codebases and break them down for me succinctly. That doesn't even seem far-fetched, based on what we've seen to this point. The thing that is ringing a bell for me the most is the idea of it being able to understand APIs and generate correct code for them. That could be a neat learning tool and save some boilerplate. Kind of like scaffold-generation code, but on steroids ...
- Jensson 5y agoThere are two main things I've seen code AI do: automate generation of boiler plate and inline code libraries. It doesn't look like this AI does anything different from that either. Those are nifty but hardly game changing.
- axpy906 5y agoOn a side note, I saw this on the Gartner wave for 2021. It was under the hype cycle with 5 years, fwiw.
- bob229 5y agoLol and if it can also collect the requirements and write the user stories and acceptance criteria that would be grest
- justicezyx 5y agoI tried codex last weekend. It's not writing code as equivalent to how a human engineer write code. Codex cannot produce meaningful code beyond instructive "A does B". Even a similar thing like "A and B does C and D respectively" will likely confuse codex. As we often know how hard it's to express oneself in human language, for codex to be near the performance of human engineer is no less difficult than inventing an AGI. Good luck with that in 20 years
- SkyMarshal 5y agoJust don't teach it Lisp.
- deleted 5y ago[deleted]
- aaron695 5y agoCopilot simply does not work. If you want to understand the true state of programming look at how many programmers think it does. Copilot does seem to be doing some things that programmers want that can be added properly using normal code extensions and look up tables to IDE's. Why has this not been done before, see above. Programmers are not good at their jobs. They spend their days bike shedding because Copilot might steal code or put in obscure security bugs or be hard to maintain. It does not work, so these are not issues. Once again an amazing way for the AI industry to control the stupid masses. To believe AI can be racist (this meme has already been applied to Copilot) or steals code is to believe it works. Good on the AI industry to find their niche I guess, stupid people are a big market.
- mesozoic 5y agoBut can it reverse a binary tree
- WalterBright 5y agoBack in the 80's there was a software product that advertised no more programming! You just wrote a specification in their specification language :-) I stopped seeing the ads for it after a few months.
- kovacs_x 5y agoso.. give it to the noob and see how it goes! :D code "generators" has been with us for a long time, yet they only "success" is that they are good at generating "boilerplate" which by definition is sign of bad programming.
- d13 5y agoI’ve been using Copilot the last few weeks and it’s like having a lunatic babble in your ear while you’re programming. Once in a while though, it has moments of startling clarity - just right enough to make me pause, and just wrong enough to make me burst out laughing.
- satisfice 5y agoAI cannot “write its own code.” Also a human with the social skills of AI is not qualified to make software.
- d4rkp4ttern 5y agoEveryone except me seems to have gotten access to Codex :) Can someone who has access try asking it to do this with Python/Pandas: I have a data frame with columns [name, date, win] which is sorted by date in increasing order within each name. The win column is Boolean. Now add a new column “days_to_win” which is the number of days until the NEXT win=True for the name, not counting the current date. If there is no next win for the name, set it to 9999. This should be done without any for loops with pure pandas functions/methods. I will be impressed if Codex can do this.
- PicassoCTs 5y agoOkay, so something not understanding the domain, "writes" lots of garbage copy&paste code and then a expert is called in to "fix" it. This situation seems very familiar. Let me explain were this leads. I work in industrial automation were the code is regularly poorly created by "local" experts and people from outside the field. This always fails, flails and bails- after a certain complexity is reached. Then externals are brought in to "fix it" - and the created mess is used as negotiation mass. After all the project was "well under way" and is "almost completed". You are also given only a very small "time frame" as the "software is almost done". When this happens, take a peak at the software and then just stand up and leave. You will spend otherwise days unpaid educating, the project-management about the most basic elements of software-development. Which then instantly will be forgotten, as post-traumatic memory suppression kicks in. Nothing can help these companies, because they are not even able to perceive the problem. They do not understand about the value of abstraction, nothing about abstraction layers- often they miss even the difference between the complexity in performing a task (e.g. Writting code) and the complexity residing inside the domain (e.g. Writing Device Controlling Software). These are projects, were taking a instance of the same project with different parameters can result in easily the same amount of time spent again. You can easily identify the presence of such companies, by looking at the tools. Usually they are deformed, by the "Project Management" to be easier aka more like excel. Im not kidding. This is how they plan all projects, this is were they expect to find difficulties, this is they perceive the world, this is how they want to solve it. A instance is a copy & pasted cell. When they try to "advance the field" and make there projects less of a death march, no-code tools and soon AI-Code Generators are there way to go. And more excel. Expertise dependency is to be avoided like the devil, thus all tooling has to be useable by non-experts. If you are long enough in this, you can read there thoughts from across the hallway. "We can do this cheaper. No need for someone to study this. Why are my projects failing. I need to get out of this field. I need to promote somebody who has no idea, into my place, so i can get out or up while i still can. " So with every project in these companies you get a new liaison-face, cause nobody wants to manage software projects. These are not software companies and they can not build and ship complex software. But they have too, cause its part of their business now. They are stuck, in a procedural, copy-pasted world, in the late 70, were the sun never set on non-object orientated code. These are companies, were the "software-team" is the only thing growing exponentially. I honestly by now appreciate the scammers, milking the idiots with coding-tools for every cent but i think, if there was somebody out there, trying to solve the situation by forcing education upon the "local" experts, that would help alot.
- hermitsings 5y agoThe title is misleading.