5 ms·
Just to clarify, it's not really no-code: pseudocode is the new bytecode it would seem and this is just compiling that into usable code. You still need to be a
by StopHammoTime 5y ago
Just to clarify, it's not really no-code: pseudocode is the new bytecode it would seem and this is just compiling that into usable code.
You still need to be able to code and understand what you're doing. You can't just ask simple questions and get complex answers. You still have to be capable of asking complex questions.
A common scenario I can think if is where I struggle to remember the name or API of the exact thing I want to do but I know exactly how it works - typing that in and getting a result would improve my workflow, but it's just saving a trip to Google, we're not talking the difference between doing and not doing, just a saving a minute.
I would rate the value of this more as interesting rather than useful, simply because as another commenter highlighted it's just easier to write code. It could be useful incrementally but not for everything.
- krsrhe 5y ago
- CallMeJim 5y agoNote that in part of the process, Copilot was the one asking complex questions when the human programmer didn't know how to proceed. Copilot adds tremendous value for someone who knows what they want, but not how to do it. For example, I'm not a great programmer. I'm also a lazy programmer. I had to convert a time to a specific format, in a specific timezone in JS, and I couldn't be bothered looking up documentation for Date.toLocaleTimeString (or is that Date.toLocaleString?). I wrote a comment outlining exactly what I wanted: // given a date in ISO format (and UTC timezone), return the time in hh:mm AM/PM format (and x timezone) and immediately Copilot generated the code I was after. Making something easier can definitely mean the difference between doing and not doing — I've taken on a lot of projects I wouldn't have attempted without Copilot.
- zkldi 5y ago> I wrote a comment outlining exactly what I wanted, and immediately Copilot generated the code I was after. How do you know it was what you were after? Like you said, it could be .toLocaleTimeString or .toLocaleString (or something else). How do you verify that the AI isn't giving you broken/incorrect code? I guess you could check the docs, or run the code yourself, but at that point what's the value add for copilot?
- vicda 5y agoI used copilot to learn the crufty parts of bash and to pick up swift from zero. The smaller the problem you're trying to solve the easier it is for copilot to generate it perfectly for you. Think of it like a snippet engine on steroids. It's a huge value add.
- bobsmooth 5y ago>How do you know it was what you were after? By testing it >but at that point what's the value add for copilot? Not having to look up the docs and writing it yourself.
- mordymoop 5y agoRight, I don't know why people are so invested in minimizing how powerful this tool is. I have never properly learned Javascript but I can write Javascript using Copilot because copilot doesn't really make syntax errors, and I can recognize correct semantics, e.g. is it probably doing what I mean for it to do. And then I can, as you say, just test it. It also bears repeating that Copilot will only get better.
- injidup 5y agoThe negative comments seem to assume an open loop development strategy where if copilot fails to give the 100% correct result it is a fail. Rather, even if it is wrong it can get you close and if not close it can give you ideas. You have to close the loop and use your own intelligence as well. For example I can't draw faces but I can recognize a badly drawn face. If I ask an AI: Please draw me a 35 year old man with receding hair and crooked teeth I can quickly validate the result is fit for purpose. If it is not what I want I can modify the query. I then learn quickly how to prompt the AI to give me what I want. In the example you give we can assume that the AI has produced a plausible option even if wrong. For example a scenario may be: # User: Write a comment "Convert the date to the current local for printing" # Copilot: generates the method 'toLocaleString' # User: Mouse hover over the method to get the documentation for the 'toLocaleString' method # User: See that the method produces the wrong output. We realize we don't want the date # User: Modify the comment to "Convert the date to the current local for printing time only" # Copilot: generates the method 'toLocaleTimeString' # User: Yes this is the one I want. Moves on The key point is you have to know what you want and be able to recognize a correct result. Validating a correct result is often easier than coming up with the correct result. You have multiple strategies to validate the result. Testcases, compilation, code review, documentation, IDE intellisense This obviously gets harder the larger the amount of code copilot is being asked to generate. But good software engineering practises still stand. Try to keep your functions and modules small and to the point.