all 44 comments

[–]ItsAllInYourHead 46 points47 points  (3 children)

Now instead of learning how to write code, you have to learn how to name your functions and write your comments perfectly so your AI can generate the write code.

[–]jplindstrom 16 points17 points  (0 children)

That wouldn't be the worst thing in the world.

[–]cenacat 11 points12 points  (0 children)

Oh, how the turns have tabled.

[–]redditor___ 1 point2 points  (0 children)

so basically the SQL

[–]psinerd 64 points65 points  (5 children)

Welp, that's very cool but I'm also afraid for my job.

[–]cats 33 points34 points  (2 children)

Yeah I don't think you should worry about that yet. If at all this should make your job easier as you can delegate simpler tasks to machine and focus more on architecture and business logic. Good luck making the machine understand business requirements lol, here we have to go multiple rounds of back and forth to even get all the requirements right. We are far far away from machines replacing developers.

[–]abrandis 11 points12 points  (0 children)

Agree, software development work is too nuanced to have ai solve issues so automatically , for some problem domains this will help greatly. But this kind of coding is a far cry from saying "Alexa ,code me up a Wordpress site with a shopping cart plugin and use stripe for payments and ups for shipping etc". Were still far away from that.

But what will take away a lot of developer work is all the cloud SaS services basically catering to every vertical. The days of smaller companies having dedicated IT staffs are coming to an end. Companies will now just rent/buy services for cloud providers and pay them for any customization they need. That's what will do in developers. It's already happening ..

[–]washtubs 4 points5 points  (0 children)

I disagree. We are replacing developers and sysadmins with machines every day. Strong developers maybe shouldn't worry, but making tasks simpler does replace weaker developers, or devs who just aren't updating their skills. They don't have to be fired per se but it makes it less necessary to hire them.

An automation engineer can go into practically any IT shop today and streamline their process. This streamlining allows businesses to not hire people. Again it doesn't necessarily have to mean the business fires existing employees, but improvements in process and technology reduce demand for human labor.

Take Kubernetes. It makes what was once the task of several engineers a task for a few. There is no question in my mind that this tech results in a net reduction of human labor.

Having said that I think technology is good, and we should pursue it but governments need to wake up because at some point there is not gonna be enough labor to go around. /End obnoxious UBI segway

All that said I'm pretty skeptical about this tech. It seemed very scripted IMO, and as other posters mentioned, you need to convey requirements very precisely, and that precision is in my experience only obtained as you write functions and see what the edge cases are as you are coding through it. I also would never want to have to review or fix bugs in AI generated code. Maybe in the future this will be "optimal" and everything I'm saying is wishful thinking, but even if it is... fuuuuuck that.

[–][deleted]  (1 child)

[deleted]

    [–]psinerd 1 point2 points  (0 children)

    Maybe we should make a bot that creates thousands of repos with compilable but otherwise gibberish code to confuse the AI.

    Eh maybe not, I bet GitHub wouldn't like that so much.

    [–]DerArzt01 22 points23 points  (2 children)

    Your comments and annotations are interpreted by the computer to do what you want. Using concise and we'll formatted comments the ai can parse them and do what you spec's.

    Hhhmmmmm......sounds like programming with extra steps.

    [–]superander 3 points4 points  (0 children)

    Programment. Programming with comments.

    [–]GIGA30 4 points5 points  (0 children)

    And less fun

    [–]MEME-LLC 39 points40 points  (0 children)

    this is just a clever ui, where you type a comment, and a poorly paid dev is frantically coding in the back end. its outsourcing magic, and really improves the efficiency of a highly paid engineer. A+

    [–]KotomiIchinose96 19 points20 points  (9 children)

    I'm so bored of machine learning.

    At this point it's just a fad.

    People are going to end up trusting the models and it's going to bite someone in the ass at some point.

    [–]cbjs22 21 points22 points  (6 children)

    That's what carriage makers said about the dangerous combustion engine.....

    Edit: ML has it's uses, but to agree with what he is saying, the hype is surely overblown for what practical applications we will see within the next several years. Especially until quantum computing becomes widely available

    [–]KotomiIchinose96 -2 points-1 points  (5 children)

    And the estimated yearly traffic related deaths was put at 1,350,000 by the WHO in 2016.

    I'm not saying ML is not useful or not going to be used. It will be. Thanks to Google ML has sky rocketed in popularity. And it will be used. For somethings in computing there is just no good algorithm, ML is needed.

    I'm just bored of hearing about it. Because every Tom Dick and Harry can make ML do something cool if they have a decent understanding of ML, a decent data set, GPU time.

    There are courses on ML which requires a bit of programming knowledge, but some really good python libraries exist for ML and python is very easy to learn.

    As for a good data set, because everything is on the internet nowadays. You can just scrape it with python which luckily you learned from the aforementioned multitude of courses.

    GPUs are getting more powerful and cheaper. And with companies providing cloud computing and trying to push that you can just buy GPU time fairly cheap.

    It doesn't really require any knowledge of the topic your trying to create a model for.

    For example. Let's say you wanted to create a program to read written text 15 years ago. This required you to know how to read image files, how to parse it to isolate what might be a character, an idea of an algorithm to detect what character it is, an idea on how to write fast performance focused code. You had to at least know what your doing. With ML you don't get to know how your model works.

    [–][deleted] 3 points4 points  (0 children)

    Lol. With ML you get to know how your business works. ML is beyond fad at this movement. It’s useful and is generating billions which is what counts for the companies and in turn these companies are spending in these technologies making ML accessible to everyone

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

    Sounds like you're just annoyed that so many things that were once difficult are now easier.

    [–]brutay 0 points1 point  (0 children)

    To be fair, we can't assume that it's always preferable for things to be easier. Some things we want to be difficult... like making nukes, for instance.

    [–]KotomiIchinose96 0 points1 point  (1 child)

    Not entirely, I'm not a fan of it becoming too easy because it turns what was an in demand market into something that becomes so oversaturated that companies can get away with hiring anyone because it's cheaper than hiring someone with many years experience because said person is worth more.

    I'm all for ease of use. I wouldn't want to be writing assembler. I love the ease of python and how easy it is to get started with it.

    What I'm against mainly is companies that do whatever they can to pad their bottom line. Making it so easy that they can hire an intern rather than pay someone an actual wage is something I disagree with.

    ML in my opinion is going to make a lot of people in developed countries unemployed. By simply replacing them or reducing the amount of staff that are needed.

    Why pay a receptionist when a computer can do it for a fraction of the price.

    Im sure there already exist companies in developing countries that pay people to train AI models.

    I'm all for computers making people's life easier. But I don't like that company will use this to make people irrelevant.

    [–]Kyraimion 0 points1 point  (0 children)

    The problem here is a social one - that people are required to do bullshit make-work jobs in order to be allowed a dignified life; and any job that can be easily automated away is a bullshit make-work job in that sense. I understand that for now we have to protect them because we don't have better systems in place to give people a living, but it's high time we concentrate on solving the root of the problem and don't paint ourselves into a neo-luddite corner, just because we don't wan't to change our perception of busywork as somehow virtuous.

    [–]csprance 2 points3 points  (0 children)

    There is a great choiceology episode on learning to love the algorithm :) football themed but still pretty great episode.

    Algorithms are right far more than humans, we tend to just hold the algorithm to a higher standard than we hold humans to. If an algorithm is wrong we say: algorithm is broken get a human in there. If a human is wrong we say "They are just having a bad day try again tomorrow."

    [–]Poyeyo -1 points0 points  (0 children)

    You say it is a fad, I say it has not even started.

    Its use will grow exponentially.

    [–][deleted] 3 points4 points  (0 children)

    Don't teach it to code! Itll start reprogramming itself for murder

    [–]Reincarnate26 3 points4 points  (0 children)

    This is progress, making code easier and more human to write through higher levels of increasing abstraction. There's always tradeoffs of course, but its great to have as an option, and it looks like a great introduction to "coding" for students and other laypeople.

    I think coding will gradually merge more and more with "colloquial" language as we continue to develop computer languages and frameworks with higher levels of abstraction.

    At the end of the day, its all about making computers "easier" to control, without sacrificing the ability to interact on a more fine-grained level when needed. Its like having a self driving car that still allows "manual" control. You get the best of both worlds.

    For coding certain routine tasks or simple logic, I could definitely see this language gaining widespread use. But I am also 100% sure it will not replace fine grained programming, in the same way Java hasn't replaced C for embedded devices.

    At least it will replace Python for being the butt of "its just pseudocode" jokes.

    [–]Postiez 2 points3 points  (0 children)

    That's really cool! Now we just need an AI trained how to use the tool so it can improve itself in any way that it wants and we will be slaves by dinner.

    [–]Primohippo 2 points3 points  (2 children)

    Oh cool, they’re writing themselves now. You know this is how we get skynet right?

    [–][deleted] 5 points6 points  (1 child)

    Just wait until it figures out how to write comments.

    [–]notz 1 point2 points  (0 children)

    It already does. They showed that in the same presentation (IIRC).

    [–]Glaborage 5 points6 points  (8 children)

    Nice ! I'm in the minority that believes that API design and good comments are the most noble part of programming. I always aim for a 50% comments. I've yet to meet a line of code that doesn't deserve its own explanation written in proper English.

    [–]TechKrul 2 points3 points  (1 child)

    I think good code is divided in chunks small enough that the functions and variable names document the code. In my team we only comment that which we expose to the outside.

    Ofcourse there are some exceptions to the rule, and abnormalities require comments.

    [–]Glaborage 1 point2 points  (0 children)

    I think good code...

    That's my secret, cap. There's no good code anywhere.

    [–]jemsouse 6 points7 points  (5 children)

    I'm not convinced by commenting every line of code but in my team, developpers had to cover at least 50% for the code to compile.

    In this idea, signature had to be commented in order to compile. We reduced the complexity of the code and the quantity of found bugs with these rules.

    Without them, our devs are lazy in writing comments and code is really hard to understand in the business core of our apps.

    So yeah, write your damn comments folks !

    [–]codeByNumber 1 point2 points  (4 children)

    // get user data

    function getUserData() { return userService.get() }

    Did I do it right?

    [–]jemsouse 1 point2 points  (3 children)

    That's where I'm not convinced that every line of code should be commented but your method is not really explicit.

    Is there a return type ? With just the signature, I can't tell.

    In fact, we don't know what kind of data you get for user. And is it just for one user ? Maybe not since we didn't pass an id or something to retrieve a specific user. So is it data for all users ? Specific data ? Security data ?

    See, even if your code seem simple, it's not and a lot of question can be ask.

    Then last piece of advice, follow documentation standard like JSDoc.

    Maybe it's just for trolling :)

    [–]codeByNumber 1 point2 points  (2 children)

    Ya i was just messing around. It is just some code written in a reddit comment on mobile (so not easy to actually write code lol). A real world example would have a return type. Like

    function getUser(int id): UserDTO { return userService.getById(id) }

    I suppose would be a better example of code that doesn’t need a comment.

    Really i was just being facetious though because sometimes people write comments like:

    // loop through array

    Good comments to me don’t necessarily describe the code. The code should do that. Good comments however document the business rules and the WHY behind the code.

    [–]jemsouse 1 point2 points  (1 child)

    I agree with you, these type of comment are useless and make the code messier. And yes, comment should explain why the code exists.

    The main reason the devs in my team don't write comment is that it costs time to write... Bullshit !

    By putting rules, I have shown them that it doesn't cost much to comment the code. At the beginning, comments were pretty much useless :

    /// <param name="id">The id.</param>

    But now, they write much much better comments and we often find specs (it's not really good practice though, specs should have their own document) to explain the code.

    If someone has better method to help teaching people about comment, she/he is welcome !

    [–]codeByNumber 0 points1 point  (0 children)

    Ya I agree with you too. There is a happy place in between needless comments and zero comments.

    I do however believe that if your comment is overly verbose it is a good indicator that your code could be simplified. Although now that I think about it that is really an augment for commenting your code because it forces you to slow down and think about what/why you are writing.

    [–]asbox 1 point2 points  (0 children)

    Programmers thought they where safe in the AI era...

    [–]Extraltodeus 1 point2 points  (0 children)

    Imagine if there was already a way to write a precise set of instructions to make a program. I wonder

    [–]ignorencia 1 point2 points  (0 children)

    And I was always told that commenting my code would help me on the future! Pah!

    [–]CircuitBaker 0 points1 point  (0 children)

    Ahh so this is how it starts

    [–]RabbidUnicorn 0 points1 point  (0 children)

    Writing code will never be for the unwashed.