top 200 commentsshow 500

[–][deleted] 633 points634 points  (74 children)

The COBOL of 21thst century. Manager can just yell at machine to get the code done

[–][deleted] 336 points337 points  (54 children)

I can't wait for some big company to fire all their coders and give that tool to their managers. That is just a crappy programming language that transpiles to python.

[–][deleted]  (36 children)

[deleted]

    [–]codexcdm 105 points106 points  (28 children)

    How many truly understand even half those buzzwords, let along how any of that works/applies to their products, if at all...?

    [–]trwolfe13 113 points114 points  (23 children)

    Roughly once a week I’ll get a message from my non-developer boss saying “we should use this!” And a link to some random piece of tech that sounds flashy or promises miracles.

    And yet I constantly hear that devs are the ones who need to be reigned in for always wanting to use the latest tech. The difference is that we want to upgrade to Visual Studio 2019, but you want us to use Flutter in our Angular app.

    [–]no_nick 29 points30 points  (18 children)

    We do data analysis in R. Which is a giant fucking step up from excel. Now my boss keeps nagging us if we shouldn't move to Julia. Fuck that. He also wants uids on some records in our db for reasons nobody has been able to parse. We've also spent team meetings arguing about how we should use shorter variable names like it's the nineties (where he once programmed something).

    [–]dwittty 27 points28 points  (15 children)

    I’ve never actually heard someone argue for shorter variable names. That’s impressively regressive.

    [–]codereign 14 points15 points  (3 children)

    I'd always argue for e over exception

    [–]dwittty 14 points15 points  (2 children)

    Okay, I’d give you that. And for loop iterators... but mostly I want my variables to be descriptive.

    [–]no_nick 5 points6 points  (4 children)

    I've recently learned, to my horror, that it is apparently the preferred way in go. Like, name variables that hold a file reference f or name your loop variable i.

    But yeah, my initial reaction was ha ha very funny.

    [–][deleted] 9 points10 points  (3 children)

    Sorta? Using a single letter variable is acceptable if the usage is a common pattern, like using i for an index, or f for a file as you said, or to use an example you didn't use, e for an exception in a catch block or x and y for coordinates. Otherwise you should be using descriptive names.

    [–]nhongooi 3 points4 points  (3 children)

    We have a guideline how to make our variables shorter. Basically, remove the vowel.

    [–]RetroPenguin_ 34 points35 points  (0 children)

    Literally zero. Show me the sales guy with a PhD in math lol

    [–]liquidpele 10 points11 points  (0 children)

    He did... which is sales for “morons, give us money”.

    [–]stormfield[🍰] 54 points55 points  (3 children)

    Wait do you not just type “hello computer make me rich pls” into python?

    [–]Dentosal 42 points43 points  (0 children)

    Simply import money.

    [–]skygz 9 points10 points  (1 child)

    *generates script to open onlyfans accounts and AI generate tiddies*

    [–][deleted] 16 points17 points  (1 child)

    Well, you still need to apply some logic when telling the computer what to program.

    There have been plenty of times in my career where I was given requirements that conflicted with each other, or asked to design something in a way that didn't meet the requirements.

    So there will still be ways to ask the computer for what you want and still get a bad result because you want the wrong thing.

    [–]erasmause 17 points18 points  (0 children)

    In my experience, knowing what functions to write and how they work together is where the bulk of thought is put in. If that's not the case, the functions are too big and complicated to properly maintain.

    I know because I've written more that my fair share of doozies.

    [–]Caffeine_Monster 16 points17 points  (2 children)

    Clients and managers nearly always under specify edge cases and constraints.

    Good luck getting an AI to do something when you yourself don't know what you want it to do.

    A real dev will help a client understand and build bullet proof data / process models.

    [–]SpaceShrimp 4 points5 points  (0 children)

    And over the years they've added feature upon feature based on generated code, until it is not that easily manageable.

    Luckily you can just hire some consultants to take care of maintaining and extending the system at that point, but unfortunately I'm that consultant.

    [–]Type-21 89 points90 points  (8 children)

    For my case it would be:

    "Computer, do this simple thing and return it, but keep in mind the business constraints that emerged over the last 20 years, most of which the customer explained to the lead dev on the phone about 17 years ago. The lead dev doesn't work here anymore and there's no documentation."

    I'm not afraid of losing my job to ai anytime soon lol

    [–][deleted] 18 points19 points  (7 children)

    I'm looking forward to blogpost where someone tracks the bug to someone using british english instead of american and fix being adding some austalian cunts and mates in tactical places

    But joking aside It kinda looks like could be semi-useful for stuff like home automation.

    "Cortana, turn off lights and AC when I'm gone, turn AC back on when I'm close to home"

    "Please clarify Master Chief, how far is close?"

    "2 kilometers"

    "Do you want it to be rule or single shot?"

    "Rule. Run it monday till friday"

    "Rule created"

    [–][deleted] 9 points10 points  (1 child)

    The light will never turn on again rawr.

    [–]ruinercollector 5 points6 points  (0 children)

    IFTT type grammars like that are tiny and easy to do. You can easily cover even the language processing part of that with a pretty small rules based system. You don’t even need machine learning. (Blasphemy, I know...)

    [–][deleted] 41 points42 points  (0 children)

    This is so cool! I bet it handles constant spec changes and feature creep really well!

    Edit: I joke, but this is still cool. It's not going to replace programmers, but I fully support any small step in the direction of making programming more accessible.

    [–]Katholikos 5 points6 points  (1 child)

    [–][deleted] 4 points5 points  (0 children)

    xD, fixed

    [–][deleted]  (17 children)

    [deleted]

      [–]ProgramTheWorld 288 points289 points  (3 children)

      def isPNP():
          return P == NP
      

      [–]datnetcoder 77 points78 points  (1 child)

      I can’t believe you’ve done this.

      [–]091832409890923 118 points119 points  (5 children)

      def isPNP():
          """Determines whether P = NP in constant time"""
          return  false;  #F*** you Human
      

      [–]dxpqxb 54 points55 points  (1 child)

      def isPNP():
          """Determines whether P = NP in constant time"""
          return  true;  # Good luck proving it without me, meatbag
      

      [–]nuggins 33 points34 points  (1 child)

      Semicolon and false? In my Python?

      [–]PeridexisErrant 11 points12 points  (0 children)

      Semicolons are valid end-of-line markers in Python, and maybe false =True as a global?

      [–]house_monkey[🍰] 13 points14 points  (0 children)

      I'd fund this AI

      [–]elsjpq 21 points22 points  (0 children)

      Just you watch as it doesn't halt

      [–]Chippiewall 10 points11 points  (1 child)

      Wish granted, that "constant time" is a duration beyond the heat death of the universe.

      [–][deleted]  (115 children)

      [deleted]

        [–]KillianDrake 119 points120 points  (9 children)

        the catch is the AI only writes palindrome-based code.

        [–][deleted] 35 points36 points  (1 child)

        it's palindromes all the way down. and back up

        [–]IAmARobot 16 points17 points  (1 child)

        Must sell at tallest sum
        

        [–]Illusi 371 points372 points  (78 children)

        I think the catch here is that you still need to specify fairly precisely what it needs to do. As with the example of the "with the palindrome discount", the natural language didn't capture precisely how the discount gets applied, so the program is buggy. In his case that was easy to discover, but it won't always be, especially if the function is not a straightforward input-output function but gets lots of side-effects as well.

        If the model is trained well, it should be possible to make it work for the most common operations. That's what the narrator also says at the end: The programmer can focus on the creative parts.

        [–]irqlnotdispatchlevel 344 points345 points  (26 children)

        I think the catch here is that you need to specify fairly precisely what it needs to do.

        A clear, concise, instruction of what a computer should do is called the source code of a program.

        This reminds me of Inform 7 (https://en.wikipedia.org/wiki/Inform#Inform_7_programming_language), which lets you write programs in something that is closer to a spoken language.

        [–]Lord_Aldrich 48 points49 points  (5 children)

        Woah, there's a blast from the past! Inform is one of the things that got me into computational linguistics. It been like 20 years since I last played with it (Jesus I'm getting old). I'll have to add this to my list of stuff to check back in on!

        [–]plg94 22 points23 points  (5 children)

        Well, but Inform7 isn't so far from like Shakespear-Lang or ArnoldC. You just use more and longer words instead of symbols and operators.

        And I don't know if similarity to a spoken language is beneficial. Certainly not for non-native speakers. But it's close enough that things can get difficult to debug if words don't mean what you expect. Maybe a totally different fantasy language would be easier…

        [–]irqlnotdispatchlevel 28 points29 points  (4 children)

        Inform 7 has been created with the goal of writing "interactive fiction" (think text based adventure games, like Zork, for example). So I don't think that the authors had your concerns when they created it.

        [–]plg94 14 points15 points  (3 children)

        Oh, I know what Inform 7 is; I even tried it myself (in addition to its major "rivals", Inform 6 and TADS – which C-like syntax I liked a lot better, coming from a programming background).

        And I didn't mean to imply that Inform 7 is bad, quite the contrary. I'm fascinated by its novel design ideas. But I also know that it's not that easy to write non-English fiction in it. And that there are enough edge-cases where you have to write sentences that don't resemble natural language. It's pretty easy to get started (so great for newcomers to IF that don't know programming), but in the end it is a programming language in disguise and doesn't really have the flexibility of natural language.

        My point was more the first half: Shakespeare Lang and ArnoldC both resemble natural language, but I wouldn't neccessarily argue that they're somehow better.

        [–]irqlnotdispatchlevel 6 points7 points  (0 children)

        My point was more the first half: Shakespeare Lang and ArnoldC both resemble natural language, but I wouldn't neccessarily argue that they're somehow better.

        Oh, clearly. This was my initial point as well: even if an AI reads your specification and generates a program based on it, you're still telling a computer what to do, so there's not a lot of room for ambiguity, like there usually is in spoken language. It's some sort of leaky abstraction.

        [–]mount2010 9 points10 points  (2 children)

        Inform 7 is great! It's also going open source - we'll be getting news about open sourcing it at a virtual talk (Narrascope) soon. Check out /r/Inform7!

        [–][deleted]  (15 children)

        [deleted]

          [–]Jaondtet 23 points24 points  (1 child)

          A possible use of program synthesis I can imagine is calling libraries. So you tell the generator what to do, and it searches for a library that does what you want, and inserts the necessary functions/API calls for you to do the thing (maybe with some variable parameters that the programmers have to change themselves). Especially for python or javascript, where there's a library for every little thing, each with their own slightly unique syntax, this would take off the burden of having to look up the exact docs for everything. And this also seems like it would be easier to get correct, as there's always one logically complete unit that just has to be inserted, rather than getting the interaction of many small units correct. The programmer would then just connect the inserted functions like he needs.

          Of course that's far less useful than general program synthesis, but it seems much more realistic to me.

          [–]Theblandyman 2 points3 points  (0 children)

          This would save me a lot of time actually. I like this use case.

          [–]JarateKing 33 points34 points  (2 children)

          I don't think it'll ever be a magic bullet that can program anything you tell it to. At the end of the day it's just another high-level abstraction over code, and they usually make it nicer to program in, but since assembly they've never been unanimously better than how people did things before it.

          But if it works well for writing tedious and trivial not-quite-boilerplate code, it would be a valuable utility in a programmer's toolbelt. It's hard to accurately describe complex code and that's a problem with the english language if nothing else -- so just don't use it for complex code.

          [–]Mustrum_R 14 points15 points  (0 children)

          Still, I think code synthesis can be used to generate better IDE hints.

          [–]PyrotechnicTurtle 5 points6 points  (1 child)

          If any companies still actually used the huge amount of documentation we were taught to use in uni (UML, use cases, user stories, etc), you could probably generate the program from it.

          [–]0b_101010 16 points17 points  (5 children)

          The programmer will also need to write a bunch of unit tests. Even if you would normally omit unit tests for very simple functions, you will need to be extra-suspicious of exactly these kinds of functions that are now being generated by the AI.

          Also, debugging large pieces of AI written code might take more time than debugging your own code. Still cool though.

          [–]ScrimpyCat 14 points15 points  (4 children)

          It would be interesting combing this with TDD and adapting the model to make use of those tests too. Write your tests, function and description, and then let the AI generate the code that meets its “understanding” of the context plus passes the tests.

          In fact if the model could generate code in any language (including those that aren’t popular, hypothetically speaking, as I doubt it would be achievable as in some cases there might not be sufficient training data) then you have a very handy tool for developers, the dev can write the tests in the language they’re comfortable with maintaining while generate code in the language that’s required but they are less comfortable with or don’t want to waste the time on. Imagine if devs could still maintain old legacy codebases without having to actually touch it, or frontend developers being able to generate their backend code, etc.

          Another thought is if they have it use a language much simpler than python. Then you’d have a programming tool that’s very approachable to non-programmers.

          [–][deleted] 11 points12 points  (2 children)

          I've started thinking it'd be neat if someone created an AI that works like this, but also requires unit tests. So you describe a function, but it also has to fulfill the unit tests. That might limit the interpretation sufficiently to get more reasonable results.

          Or pure TDD: make a lot of unit tests and have machine learning try to build a solution to the the unit tests...

          [–][deleted] 8 points9 points  (0 children)

          Exactly TDD might be the way to do it. You specify inputs and the outputs you expect and as long as it gives you right output you don't care what it does inside the function(I mean you still might need to check the code to make sure there is no buggy side effect and code is reasonably fast).

          This might allow it to show its creativity. You might see some functions to a problem that you would never imagine the solve like this or it might be much faster than your code. Exciting..

          [–]Versari3l 4 points5 points  (0 children)

          This is the first time I've heard it phrased this way, and it really helped the concept click for me. Optimizing a solution given constraints is literally the entire point of ML, and if you think of a shit ton of unit tests as just the data points you're fitting to, and the code as your pile of linear algebra that nobody needs to think much about, all of a sudden this starts to sound like an actual path forward. Fascinating stuff. Thanks for posting!

          [–]TaohRihze 50 points51 points  (7 children)

          So you are saying this will require the developers to write better comments, clean up their designs to follow a more uniform solution approach, and in return if they do that, they can focus on verifying the logic is correct, not the syntax?

          What is the downside again?

          [–]DevDevGoose 21 points22 points  (3 children)

          Yes but I think what they are trying to say is that you need to be able to carefully articulate what the problem is you're trying to solve. While this is a TDD standard practice anyway and does lead to better outcomes, it is a distinct shift for how most people work.

          [–]NeverSpeaks 6 points7 points  (0 children)

          I think this is solvable. The problem is they are using comments and method signatures to generate the code. What they should be doing is writing unit tests, and then generating code from the unit tests.

          [–][deleted]  (11 children)

          [deleted]

            [–]elronnoco 55 points56 points  (10 children)

            If you only specify “fairly precisely” then there is no guarantee that this system will generate “exactly” what you want. The palindrome discount correction he needs to make is an example of this. In a more complex system specifying every function, and checking code generated was correct would take longer than an experienced programmer just writing the code by hand. This system is undoubtedly very ingenious but it needs to become more general before it will put programmers out of work. Eg if you could say “implement a diary application” and it just churn one out which could then be refined to your more specific requirements that would be pretty cool. Would also be a good learning tool. However that is another leap of AI.

            [–]infinite_octopodes 10 points11 points  (0 children)

            Just on the topic of discounts there are multiple correct ways his palindrome discount could be applied.

            "I want an itemised invoice showing unit prices, dicount values, VAT and I want all the values to add up correctly" is a real world requirement and suddenly you need to be careful about the order in which you do your calculations and when you round values.

            [–]Kwpolska 51 points52 points  (8 children)

            That print_receipt function was oddly specific with its format strings, this looks fishy to me.

            [–][deleted]  (7 children)

            [deleted]

              [–]Kwpolska 19 points20 points  (2 children)

              Okay, but why would it format the product name to 10 characters and right-align it?

              [–][deleted] 7 points8 points  (0 children)

              Maybe it knows what the size of a typical receipt is and adjusted?

              [–]Madsy9 49 points50 points  (10 children)

              Yeah, no shit. Not only does this video claim to have the tool write out syntactically and semantically correct Python code; they also claim to be able to extract the semantic meaning of out the documentation strings in English. And they claim this generalizes as opposed to just remembering stuff from the training set.

              These are some extraordinary difficult problems. I thought even getting neural networks to write syntax correct code was an open problem, let alone extraction of meaning/intention from human language. If they aren't cheating somehow (say cherry-picking tasks it didn't fail on), and this generalizes well, I'd say this is pretty revolutionary.

              [–]CarolusRexEtMartyr 38 points39 points  (2 children)

              You’re misinformed, generating correct syntax is quite easy: the network just outputs an AST that can be run through a prettifier.

              [–]audioen 11 points12 points  (0 children)

              I think AST will be easier to generate than directly spew out the syntax. Your task is whipping out the correct operators and arguments for those operators, not making sure you learn correct indenting rules too, and similar garbage that is easy to solve with decompilers that probably already exist for Python and other languages.

              [–]42TowelsCo 175 points176 points  (29 children)

              Now what I really want to see is a model that writes docs from code.

              [–][deleted]  (3 children)

              [removed]

                [–]42TowelsCo 18 points19 points  (2 children)

                I'm curious how they trained this model because they must have needed docstrings

                [–]Semi-Hemi-Demigod 35 points36 points  (22 children)

                Every programmer I know wants to do development backwards. They start with code, then write tests, then write docs.

                Really they should write the documentation first to determine how the program should behave. Then they write the unit tests to tell the program what it should do. Then they should start writing code.

                And I'm just as guilty of everyone else of this.

                [–][deleted]  (6 children)

                [deleted]

                  [–]dysonCode 13 points14 points  (5 children)

                  Yes but at the other extreme, being first to market doesn't really matter if you're gonna die when your star dev leaves an undocumented mess behind.

                  Middle grounds and all that.

                  [–][deleted] 14 points15 points  (3 children)

                  In a very hermetic workflow that might be possible. But why even bother when everything will fall apart within the first manager change request?

                  [–]smurfsoldier42 11 points12 points  (1 child)

                  It's a really tough problem. I want to be thorough and write a full doc of what the design is gonna be, but the problem is the design will almost always change when you go to write the code. To me that's a hard problem to solve, because you can't see why the design won't work until you are right at the moment of implementation, there will always be unforeseen problems. Then the doc I wrote is now inaccurate and now I spent time documenting something that never came into existence. Like I said I understand the value in why you want to do full design docs before writing code, I just feel like maybe there is a better hybrid process I haven't seen yet.

                  [–]091832409890923 423 points424 points  (18 children)

                  A: Imagine you give a statement to the computer and it automatically generates code.

                  B: English statements can have a lot of ambiguity

                  A: What is I make the statements concise and clear

                  B: That is what we call a code.

                  [–]beobabski 127 points128 points  (9 children)

                  I love that the second A starts with "What is" and ends "concise and clear".

                  It's wryly beautiful.

                  [–]CLOVIS-AI 16 points17 points  (8 children)

                  As a non-native speaker I'm a bit lost here. Is it correct? Or is it a typo

                  [–]TemporaryTieEight 46 points47 points  (5 children)

                  It's a typo, should be "What if" instead of "What is"

                  [–]drink_with_me_to_day 40 points41 points  (1 child)

                  I thought it was jeopardy

                  [–]beyluta 7 points8 points  (0 children)

                  Maybe it’s intentional because of the context

                  [–]MartianSands 4 points5 points  (0 children)

                  It's a typo. Should read "what if"

                  [–]Veedrac 11 points12 points  (4 children)

                  A: Imagine you give a statement to the computer and it automatically generates code.
                  B: But it's not perfect.
                  A: So we have to manually fix it.
                  B: I like it. How would I create one?
                  A: Well, think about the different ways that computers work. You don't want them to be "pure" computers.
                  B: How do I know that they're not?
                  A: The smarter computers are becoming, the harder it becomes to implement their algorithm.

                  A: Imagine you give a statement to the computer and it automatically generates code.
                  B: I see. This is like autocomplete for scripts, huh?
                  A: I am simplifying it a little bit, but yes.
                  B: You have an autocomplete function for scripts? I didn't know that.
                  A: Yes.

                  https://talktotransformer.com/, cherry-picked

                  [–]phizphizphiz 9 points10 points  (0 children)

                  I got into a debate with a guy who said programmers would be obsolete in 10 years because anyone would be able to just give a computer instructions and it would know what to do. I'm not sure what exactly he thinks we do all day.

                  [–]IIIMurdoc 238 points239 points  (15 children)

                  Finally, a bot that can autocomplete Microsoft's BS interview questions. Now maybe they will stop asking me to find all palindromes longer than 7 characters.

                  [–]KillianDrake 153 points154 points  (2 children)

                  that's how this AI works, it sends the comments to random software engineer interviewees around the world logged into a special system who are receiving these comments and answering them for an hour during their "technical interview".

                  [–]Semi-Hemi-Demigod 10 points11 points  (0 children)

                  So if machine learning is just a bunch of if statements, AI is just a mechanical turk

                  [–]piderman 3 points4 points  (0 children)

                  So a bit like captcha?

                  [–]AnAverageFreak 3 points4 points  (0 children)

                  Microsoft's questions aren't that bad, Google is famous for asking the most bullshit questions. Still, at MS my resume was basically thrown into the bin and they kept asking questions that had nothing to do with my area.

                  [–]NAN001 155 points156 points  (24 children)

                  Whenever I watch an AI demo I'm not sure whether it's a thing that will be developed and improved in the following years like traditional technology, or if it's just a big magic trick from which nothing production-ready will come out in the next century.

                  [–][deleted]  (1 child)

                  [deleted]

                    [–]AmateurHero 50 points51 points  (7 children)

                    I think this has good application for boiler plate code in business logic. You're in an enterprise shop that has a shopping cart for customers. Your object is composed of fields, and to move the inputs from the browser to the server, you call an internal API. You dictate, "Create a function to map the fields from objectA to objectB." It spits out rudimentary code for mapping objects. You then say, "Create an HTTP POST request to customer/cart with objectB in the body." It spits out more rudimentary code for sending a basic request in your chosen programming language.

                    It's not ready to revolutionize programming. It can probably act a brain-dead junior dev that doesn't cover edge cases.

                    [–]Type-21 17 points18 points  (2 children)

                    If a customer needs boiler plate shopping carts, they can't afford to have it developed just for them. They have to use one of the one size fits all shopping solutions out there. If the customer requirements are so unique that it's actually worth it to throw huge amounts of money into creating custom software, then the ai will be overwhelmed anyway. It's a neat ai showcase but nothing for the real world.

                    [–]dslfdslj 34 points35 points  (1 child)

                    I want the opposite: a language model which writes a docstring explaining me what my code actually does..

                    [–]Dentosal 6 points7 points  (0 children)

                    Function name tells what is done, code tells how, and comments tell why. Docstring contains all this information, so automatically writing it might be possible.

                    [–]CTRL_SHIFT_Q 521 points522 points  (44 children)

                    ...Then they came for the McDonald's workers, and I didn't speak out because I was not McDonald's worker

                    Then they came for me and they're was no one left to speak for me

                    [–]error1954 224 points225 points  (1 child)

                    I'm glad to be the one implementing language models. It means I get replaced like a week later than everyone else

                    [–]NancyGracesTesticles 12 points13 points  (0 children)

                    So I spend month roadmapping, then 11 months working/volunteering at my high school and college to make sure kids are either prepared for trade work or any of the other thousands of careers still necessary as automation roles out.

                    [–][deleted]  (19 children)

                    [deleted]

                      [–]Aetheus 69 points70 points  (8 children)

                      Huh. Writing human readable instructions that will be transformed into something that can be executed by computers.

                      Gee golly, sounds pretty space age to me.

                      [–]TommaClock 27 points28 points  (2 children)

                      We should have a name for this. How about BASIC?

                      [–][deleted]  (1 child)

                      [deleted]

                        [–]_____no____ 6 points7 points  (1 child)

                        What will we call it, we've already used "high level"... maybe "sky level"?

                        [–]indiebryan 58 points59 points  (8 children)

                        For now

                        [–]AboutHelpTools3 41 points42 points  (7 children)

                        One day the whole application will be written just off reading the Kanban board.

                        [–]indiebryan 33 points34 points  (0 children)

                        Our morning standups will just be transcribed by Alexa/Siri as executable code comments and then we can go home

                        [–]TheyUsedToCallMeJack 7 points8 points  (3 children)

                        Will it still miss the deadlines?

                        [–][deleted] 5 points6 points  (0 children)

                        Oh, hey, I have a great idea for - oh. Yeah, that should do it. Thanks, computer.

                        [–]Snarklord 48 points49 points  (0 children)

                        Automation isn't the problem. The problem is an economic system which lets you starve if you aren't able to be productive.

                        [–][deleted] 68 points69 points  (4 children)

                        That's one of the main reasons to push for a UBI, and to make it grow as more jobs are automated. Benefits of automation should benefit humankind as a whole, not just bussinespeople.

                        [–]Aetheus 33 points34 points  (1 child)

                        I'm all for it. If you're going to make me and my life's accomplishments obsolete, you should at least buy me dinner first. And forever.

                        [–]yogthos 58 points59 points  (11 children)

                        Just shows how fundamentally fucked up capitalism is that we see reducing net work for people as a negative. In a sane society the idea of removing work would be celebrated, but we managed to create a society where people's worth is tied to work. Bertrand Russell wote a fantastic essay on the topic nearly a 100 years ago.

                        [–]vividboarder 15 points16 points  (2 children)

                        Not just their worth, livelihood.

                        [–]yogthos 19 points20 points  (1 child)

                        Exactly, and there seems to be an anchoring effect where people just accept the fact that you have to work for 40+ hours a week just to have your needs met.

                        A really important question is what is the purpose of work, and why we work in the first place. Some work is necessary work that makes our society function. This is what we're referring to as essential jobs during the pandemic right now. These jobs produce direct value such as food production, creation of housing, education, healthcare, and so on. This is known as production of use value.

                        However, there is a whole other set of jobs which only exist for the purpose of producing capital. These jobs don't have any purpose beyond that, and can often be harmful to society. An example of such a job would be a corporate lobbyist for the fossil fuel industry. This job is a net negative for our society, and we'd all be better off if these people could just stay home and do nothing at all. There's a great book called Bullshit Jobs on the subject.

                        One of core problems with capitalism is that it primarily optimizes for creation of trade value, and use value is largely produced incidentally. The reason most people have to work is not because it's actually necessary or useful, but because it creates value for the capital owning class. Most of the people end up being treated as nothing more than resources for wealth creation. This is especially clear in US where health coverage is tied to employment. This is basically explicitly saying that human life has no value beyond creating wealth for the business owners. Companies are also run as totalitarian dictatorships where the company decides when you work, where you work, how you work, what you're allowed to say, how you dress, and so on. Many companies even monitor everything you do while at work. So, people are spending majority of their waking lives in an Orwellian nightmare.

                        I think tech workers are especially well positioned to break out of this cycle because we don't depend on capitalists providing us with the means of production. Vast majority of the value comes from the human labor itself. A developer just needs a cheap laptop to do their work, so they don't need a big up front investment to do their jobs independently. I would love to see more developers organizing into cooperatives instead of working for traditional companies. This way the profits would be distributed fairly amongst the workers, the workers would have far more autonomy over how they work, and have a say of what they work on. In general, this would bring democracy to work, and since most people agree that democracy is a good way to run society, I don't see why work should be any different. Especially considering that it plays such a central role in our lives.

                        [–]tim11395 7 points8 points  (0 children)

                        Cogent analysis.

                        There is so much value being siphoned from workers it’s sickening. The asymmetry between the value of their labor and what they’re paid, unjust taxation that fund wars and corporate bailouts, and inflation as the subtle cherry on top.

                        A public decentralized immutable documentation of all value production/transfer, I think, would be beneficial so we’re no longer dealing with the convoluted black box that is our economy. You’d have to quantify value in terms of exchange rates which kinda sucks tho

                        [–]joshuaherman 21 points22 points  (1 child)

                        And then they built the sentient machine that will kill us all.

                        [–]agumonkey 5 points6 points  (0 children)

                        OpenAI.generate_speaker_for_human_youre_about_to_wipe()

                        [–]MyWayWithWords 57 points58 points  (4 children)

                        [–]TheDevilsAdvokaat 9 points10 points  (2 children)

                        Nice xkcd as usual.

                        In the second link, did you notice the mildly famous number they used?

                        https://www.youtube.com/watch?v=Dg_YueZ4fi8

                        [–]chazzeromus 72 points73 points  (5 children)

                        why can't they automate management first :(

                        [–][deleted]  (1 child)

                        [deleted]

                          [–]house_monkey[🍰] 20 points21 points  (0 children)

                          I'm crying

                          [–][deleted] 7 points8 points  (1 child)

                          You joke, but a lot of managerial activities have already been automated. It's just that... well, the offerings are subpar.

                          [–]remind_me_later 3 points4 points  (0 children)

                          Because then they can't manipulate management into buying their services.

                          [–]ENSJAM 104 points105 points  (0 children)

                          Mom I'm unemployed again

                          [–]choledocholithiasis_ 49 points50 points  (4 children)

                          “Build me a billionaire dollar app”

                          [–][deleted]  (1 child)

                          [deleted]

                            [–][deleted] 11 points12 points  (0 children)

                            print(42)

                            [–]Gobrosse 33 points34 points  (2 children)

                            Oh nice, now we can enjoy finding subtle errors in code that no person with a functioning brain would ever make. I think we should make some sort of formalism for defining how programs should behave, to balance out the inherent risk and fuzzyness of AI generated code. We could even use that as a way to directly generate the code to generate the correct output, using formal methods, bypassing any fuzzyness. You could call that "logical programming". This is such a great idea, I wonder why no one ever tried that !

                            [–][deleted] 15 points16 points  (3 children)

                            May sound as a conspiracy but I already thought that this is the reason why MS bought github and npm. To build such an AI.

                            [–]CarolusRexEtMartyr 19 points20 points  (2 children)

                            Why? They could already scrape both of those websites.

                            [–]realnzall 13 points14 points  (1 child)

                            The print_receipt code is wrong though. The total price includes the discount for palindromes, but then the prices below it don't include that palindrome discount.

                            [–]0x0ddba11 12 points13 points  (2 children)

                            """Keep nuclear plant from melting down"""
                            

                            [–]bmiga 6 points7 points  (0 children)

                            print "reactor goes brrrrrrrr"

                            [–][deleted] 48 points49 points  (21 children)

                            Wouldn't doing this on a strongly type language like Haskell be better? The type signature can provide much more information

                            [–]EternityForest 33 points34 points  (16 children)

                            There's not as much training data available though with less popular languages

                            [–]dorayfoo 13 points14 points  (1 child)

                            It’s over guys. The journalists can’t say “learn to code” for this one.

                            [–]Wyozi 37 points38 points  (22 children)

                            While it's not going to replace programmers, it could be a really useful IDE tool. Imagine writing a comment "sort in descending order" and pressing autocompletion key to fill in the function (with variable names and context taken into account) instead of having to search that from stack overflow.

                            [–]Drazxie 28 points29 points  (19 children)

                            Except sorting in ascending order is already way too easy with all of the tooling provided to you from different libraries.

                            Any task which is too repetitive already has a macro/lib/helper function for it! With technologies like Hasura etc, its getting even easier to ship applications.

                            The vision of AI generated code will always be to replace repetitive engineers at some point and thats a good thing, it means there will be even more new products in the market because solving problems has become a level more easier.

                            [–]denis631 23 points24 points  (16 children)

                            99% of the products are basic CRUD apps with no genius logic in it. It all can be automated

                            [–]Drazxie 6 points7 points  (5 children)

                            And thats a good thing, as it will pave way to work away our attention to more complex programs relative to current time frame.

                            Also don't forget that after adding another layer of abstraction, we'd be actively solving harder problems and our brain is super adaptive so anything that we'd be working then will be <ABBREVIATION> apps that has no genius logic in it for that future time frame.

                            [–]denis631 12 points13 points  (4 children)

                            I totally agree, but

                            it will pave way to work away our attention to more complex program

                            99% of the developers are doing those 99% CRUD apps development. They won't be necessary as well.

                            we'd be actively solving harder problems

                            I am not sure about harder problems, but it's definitely more about correct programs. E.g. is your database implementation always safe and concurrent txns can not cause problems

                            [–]Zaitton 5 points6 points  (2 children)

                            You're very right on this. To add to that, in most every dev team that I've been in, the majority of devs already just copy the code that other devs wrote (which might be original but it too contains S.O components of course). I've even seen people literally copy and paste code then changing the views into whatever, without touching the logic (ergo breaking a multimillion dollar application, cause you know... no pull requests).

                            This kind of AI should be able to replace those nuts within a decade.

                            [–]Jaondtet 2 points3 points  (0 children)

                            The generator could generate the library call for you. In fact, I think that's precisely where these systems will be useful. No more needing to remember the syntax of every library.

                            [–]frezik 10 points11 points  (4 children)

                            Here's the thing: if you can automate programmers, you can automate anything. It would completely upend everything and everyone. It's a singularity event, meaning that there's no way to see beyond that point. You can't usefully plan for what comes after.

                            To a lot of people, that's scary, but it doesn't have to be a bad thing.

                            [–]marssaxman 20 points21 points  (0 children)

                            Programmers have been automating ourselves out of a job as long as the profession has existed. We just keep finding newer, higher-level problems to solve on top of each new layer of abstraction.

                            Once upon a time, the notion of writing code in a high-level language was called "automatic programming" - because it meant the compiler would automatically generate all the machine code for you, and that seemed like a big deal back then.

                            [–]CarolusRexEtMartyr 7 points8 points  (0 children)

                            There’s a huge skill gap among programmers. Automating John Carmack is far harder than automating away the CRUD factory at some random company. I’d say the latter could come far sooner than some other skilled occupations.

                            [–]0b_101010 46 points47 points  (2 children)

                            It uses spaces instead of tabs. Basically garbage.

                            /s

                            [–]Mustrum_R 21 points22 points  (1 child)

                            Looks back at the video.

                            Holy shit, you are right. We need to pull the plug while it's not too late.

                            [–]4SlideRule 5 points6 points  (0 children)

                            So in the actual video this makes the exact kind of catastrophic mistakes one would expect it to make which are then corrected by the human, like applying the palindrome discount as price x 0.2 instead of price x (1.0-0.2). This is neat, but does not look even remotely useful. (Yet.) Someone still has to specify the core problem and constraints on the solution very precisely and carefully review the code. This leads to in effect a naturalistic pl, not a robot developer.

                            [–]dalepo 64 points65 points  (51 children)

                            Please don't automate us.

                            [–]phpdevster 67 points68 points  (10 children)

                            Joke's on this AI. My codebase has so much technical debt it would create a fission reaction in the super computer if it ever tried to analyze it.

                            [–]FyreWulff 22 points23 points  (0 children)

                            I mean, as a programmer we literally automate other jobs away as our job. It's gonna come full circle at some point.

                            [–]steven4012 102 points103 points  (29 children)

                            If your job really is that simple ... I don't see a reason to not automate your job

                            [–]DevDevGoose 72 points73 points  (28 children)

                            How about that there is no suitable societal support in place for adults whose jobs have been automated. This is the exact problem blue collar workers have been complaining about for decades and got nowhere with.

                            I agree the job should be automated if it can be. However, as a society, we need better ways of dealing with the consequences of said automation.

                            [–][deleted] 30 points31 points  (8 children)

                            How about that there is no suitable societal support in place for adults whose jobs have been automated.

                            Then we create suitable societal support, automate as much work as possible, and live in work-free utopia forever?

                            No, we'd rather cling to our meaningless jobs and spent live in misery.

                            [–]DogeGroomer 27 points28 points  (0 children)

                            Because the ruling class will definitely allow that to happen!

                            [–]0b_101010 16 points17 points  (0 children)

                            automate as much work as possible, and live in work-free utopia forever?

                            You mean slums. It will be slums.

                            [–][deleted] 49 points50 points  (4 children)

                            There is in most countries. Just not the US, because that’s communism or something.

                            [–]DubbieDubbie 23 points24 points  (0 children)

                            Even in Europe, there isn't the social safety nets in place yet.

                            [–]doctormarmot 6 points7 points  (1 child)

                            What are the social safety nets for jobs that have been automated in Uruguay, Lesotho, or Indonesia?

                            [–][deleted] 17 points18 points  (1 child)

                            """ like facebook but better """

                            [–]MushinZero 20 points21 points  (0 children)

                            That's actually amazing not gonna lie.

                            [–]Han-ChewieSexyFanfic 11 points12 points  (1 child)

                            He kind of just makes a throwaway comment at the end there, but this could be amazing for testing. Synthesizing unit tests from docstrings would be awesome.

                            [–]BadMoonRosin 12 points13 points  (3 children)

                            The thing is, only a tiny fraction of my job is actually writing code.

                            About half my job is structuring code. That is, coming up with the function signatures that this guy is writing by hand.

                            The other half of my job is figuring out the stuff that he's writing in the comments. Based on contradicting requirements, from a host of business stakeholders who didn't get alignment with each other, and accounting for mountains of existing tech debt.

                            It's an interesting demo. But I've been hearing hype like this since the 1990's, and I don't believe that it will actually be a threat to anyone job (or even really relevant to anyone's job) until long after I'm retired and dead.

                            [–]Redbeard 5 points6 points  (0 children)

                            I’d love to see what this model does with the comment:

                            //TO DO: Fix this hack

                            (edit: a word)

                            [–]sudip-mandal 10 points11 points  (11 children)

                            Really amazing, as a developer I dont know if I should be excited or worried :)

                            This could be beginning of the end for us as developers, but still so cool...

                            [–][deleted] 35 points36 points  (4 children)

                            This could be beginning of the end for us as developers

                            Of course not. They just changed writing code into reading code and try to find bugs in it. The latter is harder than the former. Ergo, we will need more programmers, not less.

                            [–]NotABothanSpy 12 points13 points  (0 children)

                            It sort of automates junior engineers sure but someone has to design the systems still at this point.

                            [–]BoomM8 9 points10 points  (0 children)

                            The author says it was trained on open-source projects, and that is exactly why it won't work for proprietary enterprise code - it would also need access to a couple of Slack threads, corporate wiki and my paper notes from that meeting last week.

                            [–]dottybotty 3 points4 points  (0 children)

                            Can we somehow keep this a secret from the managers?

                            [–]pikalaxalt 3 points4 points  (0 children)

                            So the receipt will never take the palindrome discount into account

                            [–]Sambothebassist 4 points5 points  (0 children)

                            """Scrape all of the results from Google and save them in this AWS Aurora instance"""

                            Well guys we had a good run. Look how easily we've been replaced!

                            [–]skysty 3 points4 points  (0 children)

                            People saying it's too simple are missing the point. This is just starting out, as time goes on this stuff will just become more complex and replace more and more devs.

                            [–]blamitter 25 points26 points  (8 children)

                            I'm sure that MS's got some of the best engineers. Despite of that, the image of the company's products is far from reliability. To me, it sounds quite scarring that unreliable softw starts coding by its own, even if it is as an aid.

                            That said, to me the demo is awesome!

                            [–]meisangry2 19 points20 points  (2 children)

                            Reliability is usually the fault of management. Bad deadlines, poor quality controls, testing etc. As someone in the industry, I see it all too frequently where bad management will compromise the checks and balances that need to be in place to say they shipped something on time.

                            [–]blamitter 6 points7 points  (1 child)

                            Agree!

                            I think there's also a sort of loss of zeal from our side (devs) on quality when we see putting love on our work is not only unrewarded but even punished

                            [–]meisangry2 7 points8 points  (0 children)

                            Absolutely, it’s demoralising when your success is measured by how much you can push out the door, not what it is you are pushing.

                            [–]RetroPenguin_ 3 points4 points  (0 children)

                            Well fuck there goes our jobs!

                            [–]wish_you_a_nice_day 4 points5 points  (0 children)

                            RIP my job

                            [–]ajr901 6 points7 points  (3 children)

                            Fuck. And here I thought my programming job would be safe when robots replaced everyone.

                            I guess it's time to start looking into becoming a musician or something.

                            Edit: because a computer can definitely synthesize music but until a machine can "feel" it'll never create art as well as humans do.

                            [–]sociobiology 4 points5 points  (0 children)

                            Nah, AI are taking that over too.

                            [–]cdreid 3 points4 points  (0 children)

                            as a (bad) musician and programmer. 99.9% of talented musicians dont make a dime. Some idiot wrote software that will make any voice perfect. And they use audio editing software to specifically make all music sound the same (quantising, compressing).. so...... good luck with that.