News for hackers. Stuff that matters.
Re:Why Copilot Is Making Programmers Worse at Programming by plasticeagle on Wednesday September 11, 2024 @03:46PM (#41514720)
This article 100% read like it was written by AI.

I will personally never use Copilot, or any other AI code generation tool, for the simple reason that I enjoy writing code.

Even if I were unfamiliar with a new language, I'll still never use it. Instead, I'll consult the documentation and follow examples. I like coding, and I neither need nor want a machine to do it for me.

It's exactly the same as writing English. There is great pleasure to be found in writing, it's worth your time. Just be careful when doing so to not end up sounding exactly like ChatGPT.

Re:Why Copilot Is Making Programmers Worse at Programming by com2kid on Wednesday September 11, 2024 @03:52PM (#41514783)
> I will personally never use Copilot, or any other AI code generation tool, for the simple reason that I enjoy writing code.

I had an XML file format, I needed it converted to JSON. I haven't parsed XML in over a decade, and I didn't want to relearn. I also didn't want to match up XML fields to JSON fields. Both file formats had well defined schemas available, but were also common enough that most major LLMs were trained on them.

I just asked Claude to write a program to convert from one file format to another.

There is no joy in that task. Doing it myself would have been the very definition of a useless chore.

Re:Why Copilot Is Making Programmers Worse at Programming by loosetypewriter on Wednesday September 11, 2024 @03:58PM (#41514838)
If you are an experienced coder, then you know which tasks are useless chores. It's a different issue for newdevs who will be learning to code with tool assistance.
Re:Why Copilot Is Making Programmers Worse at Programming by emporas on Wednesday September 11, 2024 @05:45PM (#41515604)
New devs, by the time they will become senior devs, the tools will be 10x better. 10x in 3 years is very conservative, it may as well be 100x, not even considering runaway intelligence.

In 2 days, GPT, Claude and Llama 3 helped me solve 4 different problems. 1) I wanted to load in a webpage a json file, parse and read it, using Rust + webassebly. GPT solved it in 10 minutes. 2) Then i wanted to use this code and make it as a Chrome browser extension. GPT solved it as well. 3) Then i wanted to parse recursively directories with Rust source code, run tree-sitter queries, get the points and print matches, not with cli but using the libraries. GPT solved it in an hour. 4) Right now i finished analyzing a git repo, and fetching all branches and commit messages using git2. Llama 3 + Claude Sonet solved it in an hour or two.

DHH did an interview yesterday [1] in which he mentions that he will be programming by hand even if everyone else uses A.I. assistance. I think he is pretty smart and he will not be stuck in the era of meaty fingers pressing keyboards to make programs.

[1] https://www.youtube.com/watch?v=fEy9JhHk6lg

Re:Why Copilot Is Making Programmers Worse at Programming by raxxorraxor on Thursday September 12, 2024 @04:51AM (#41518852)
And parsing text is quite foundational. Although today I would need to think hard to find a language, where you don't have a ready to use XML/JSON parser ready at hand.

Perhaps there is no reference implementation in Pancake Stack, but your language has to be quite arcane to not have something available.

Re:Why Copilot Is Making Programmers Worse at Programming by NoraCodes on Wednesday September 11, 2024 @03:55PM (#41514811)
> I just asked Claude to write a program to convert from one file format to another.

Was it correct?

How did you know?

Re:Why Copilot Is Making Programmers Worse at Programming by mewpmewp2 on Wednesday September 11, 2024 @04:11PM (#41514953)
It's pretty simple to check yourself to be fair.
Re:Why Copilot Is Making Programmers Worse at Programming by HeyLaughingBoy on Wednesday September 11, 2024 @04:28PM (#41515083)
Same way that you'd know if you wrote it by hand?
Re:Why Copilot Is Making Programmers Worse at Programming by happytoexplain on Wednesday September 11, 2024 @05:36PM (#41515550)
Don't use facetious question marks. If you are genuinely confused, put it into words.

Aside from that; Following logic as you develop it vs following logic as you read it are two different skills. Also, with the latter, it's easier to miss details. Further, when you're not experienced on the subject of the code, it's critical to develop an understanding by doing, and not only by reading. Further still, following the logic of genAI code is complicated by the fact that AI can make different mistakes than humans do, and it speaks/documents with much more authority, both of which make it not only more difficult to spot issues, but make it difficult in a frustrating way, reducing energy and satisfaction.

Re:Why Copilot Is Making Programmers Worse at Programming by flerchin on Wednesday September 11, 2024 @03:56PM (#41514813)
Shoulda asked claude what library to use
Re:Why Copilot Is Making Programmers Worse at Programming by mewpmewp2 on Wednesday September 11, 2024 @04:13PM (#41514973)
I'm wondering if there was some remapping of the fields used, otherwise library yes.
Re:Why Copilot Is Making Programmers Worse at Programming by fifilura on Wednesday September 11, 2024 @04:12PM (#41514967)
Yeah, parsing XML is no small deal. Did it answer with a regexp or what?
Re:Why Copilot Is Making Programmers Worse at Programming by mewpmewp2 on Wednesday September 11, 2024 @04:17PM (#41515005)
When I tested right now, for parsing XML it did use libraries or native tools depending on the language, but it converted the nodes provided by that library to JSON as written code.
Re:Why Copilot Is Making Programmers Worse at Programming by bigtex on Thursday September 12, 2024 @11:04AM (#41521771)
TBF there are countless websites that can do this automatically for you, even providing the code to handle the conversion. No AI needed.
Re:Why Copilot Is Making Programmers Worse at Programming by SketchySeaBeast on Wednesday September 11, 2024 @03:59PM (#41514844)
My work has Copilot. It's best when it's a turbocharged intellisense - if I can push tab and have it autofill what I already was about to type I like it. Saving keystrokes is just smart. I won't let it think for me, but I do let it handle the mundane so that I have more time to think. Also, it's terrible at the thinking, just godawful at solving most of the problems that I need to think about.
Re:Why Copilot Is Making Programmers Worse at Programming by jprete on Wednesday September 11, 2024 @04:05PM (#41514904)
I've never been able to see any benefit in this because typing the code takes much less time than deciding what code should be there.

I could get a little bit of benefit out of an autocomplete that only showed legal suggestions, but even with deterministic autocomplete I frequently had to look at too many suggestions and it was faster to throw a query at Google.

Re:Why Copilot Is Making Programmers Worse at Programming by frde_me on Wednesday September 11, 2024 @04:19PM (#41515022)
I've found it to be useful for things where the auto-complete is both long enough and boring enough that it doesn't actually take longer to look at it

For a practical example, lets say I define protobuf models, I start by writing

```

service X {

   rpc doSomething([cursor]
}

```

It'll generally be smart enough to complete to the same pattern as every other one in the codebase

I can then put my cursor after and get it to generate the models by just tabbing a bunch:

```

service X {

  rpc doSomething(DoSomethingRequest) returns (DoSomethingResponse);
}

[cursor]

```

```

service X {

  rpc doSomething(DoSomethingRequest) returns (DoSomethingResponse);
}

message DoSomethingRequest {}

message DoSomethingResponse {}

```

Then I can go to my actual code file where this is implemented, and having had both the context of the codebase and the context of the protobuf file, it'll generate

```

class DoSomethingImpl extends some.grpc.package.DoSomethingService {

  override def doSomething(request: DoSomethingRequest): Future[DoSomethingResponse] {

     // Some usually bad code I just delete

  }
}

```

Nothing here is super complicated, I know it's right at a glance, it's super easy to write, but I hate having to do the boilerplate. Could I write a simple script that kind autogenerates this for a given API? Maybe. But a bunch of typing and piping things around becomes just a bunch of "tab" presses. And an LLM is more flexible to slight changes in the pattern.

This is multiplied times 10 if I then want to consume this from some other language, and it has both in it's context. I literally just need to create the one definition, and the LLM will complete the required code to product / consume the API on both sides as long as it's all in the same context window (and tools are getting good at doing this)

What I really want now is to just have to say "Add a proto api for `doSomething` and add boilerplate to give a response and then consume it. Put it in X existing grpc service" and just have it do all of this without a series of smaller completion.

Re:Why Copilot Is Making Programmers Worse at Programming by mewpmewp2 on Wednesday September 11, 2024 @04:19PM (#41515016)
I wonder if it depends on the programming style, because I always feel like I have this massive amount of things that I need to "vomit" out, so Copilot is always helpful for me. Like I already know what the whole system should be like, so it's just about laying it out.

It's mostly full stack web applications, with React frontend and APIs with databases, so it's not exactly something groundbreaking.

Re:Why Copilot Is Making Programmers Worse at Programming by jprete on Saturday September 14, 2024 @09:57AM (#41539849)
I think that's a big part of it. I'm writing servers and systems in C++ and Kotlin. C++ is a very dense language, virtually every token is semantic with little redundancy except the archaic header declaration system, so there are not all that many shortcuts that still preserve my intended meaning. Kotlin feels like a response to Java being so low-density, and is much higher density, although not as much as C++.

Every time I play with web or GUI development I get the impression that the languages and systems are misaligned with the way people express their intentions in the space. It makes me want to develop a language (or family of languages) directly for expressing GUI concepts, but I don't understand the space well enough to do a good job.

Re:Why Copilot Is Making Programmers Worse at Programming by haliskerbas on Wednesday September 11, 2024 @04:12PM (#41514963)
I build CRUD apps at BigCo and most of the LOC is pretty mindless but needs to be deployed yesterday. Copying over 100 different memberVariable = DATABASE_CONSTANT in different forms becomes much easier when copilot starts guessing the format.
Re:Why Copilot Is Making Programmers Worse at Programming by mewpmewp2 on Wednesday September 11, 2024 @04:22PM (#41515040)
I would say that in many cases there is annoying amount of boilerplate, and I would say it would make sense to DRY & abstract it away, because it's painful to write it, but Copilot has made it bearable, so I'm less caring of that now.

And sometimes if you do abstract it away too much, edge cases handling and everything affecting everything else might not be worth it.

I also think with Copilot in the house, it's completely acceptable to have it write utils fn even if they are not DRY, in the sense that you could import leftPad as a package, but it doesn't matter since you can just write function leftP and copilot will do it for you within few seconds, which is faster and more flexible for the future. And without unnecessary, unknown dependencies with potential vulnerabilities baked in.

I think there's going to also be some sort of enlightening in terms of overusing libraries and idea of everything having to be DRY. Because frequently this will cause more problems than it wins even though you think the code is really, really clean.

Re:Why Copilot Is Making Programmers Worse at Programming by SketchySeaBeast on Wednesday September 11, 2024 @04:08PM (#41514928)
A lot of the time it'll guess the type signature I'm using or the entire shape of the mock object I'm trying to build. When it works it's much better than intellisense, but I don't ever go to it, if the ghost text pops up in a way that works for me I'll hit tab, otherwise I'll keep typing until/if it figures out what I'm aiming for.
Re:Why Copilot Is Making Programmers Worse at Programming by jimbokun on Wednesday September 11, 2024 @04:41PM (#41515177)
And all the generated code needs to be maintained.

Typing the code yourself incentivizes you to write code that's concise and easy to read and avoids repetition.

Re:Why Copilot Is Making Programmers Worse at Programming by mewpmewp2 on Wednesday September 11, 2024 @03:52PM (#41514778)
Asked ChatGPT to create an article on this title and "Erosion of Core Programming Skills" was exact word by word one of the headings it used.

And of course the fact that each heading has exactly 2 paragraphs in similar lengths and the overall tone as well.

The whole blog including the other articles looks like AI generated.

Re:Why Copilot Is Making Programmers Worse at Programming by theropost on Wednesday September 11, 2024 @04:08PM (#41514922)
I personally never use a Word Processor, or any other electronic typing appliance, for the simple reason that I enjoy typing on my mechanical device.

Even if I were unfamiliar with a new keyboard, I'll still never use it. Instead, I'll consult the technical guides and follow examples.

I like typing, and I neither need nor want a word processor to do it

Certain things may seem strange, or that they take away from the experience, but sometimes it is simply progress... good or bad.

Re:Why Copilot Is Making Programmers Worse at Programming by progforlyfe on Wednesday September 11, 2024 @03:48PM (#41514741)
> This article 100% read like it was written by AI.

I noticed that too, found it quite ironic =)

Re:Why Copilot Is Making Programmers Worse at Programming by zwnow on Wednesday September 11, 2024 @03:52PM (#41514781)
I also enjoy writing code a lot. Sometimes I try to let GPT help me by me providing some context or debugging something. It's been good at that so far, as I sometimes don't have the time at work to scroll through the depths of the internet. I still write 99% of the code myself though. It's typing practice for me. Typing is a good thing.
Re:Why Copilot Is Making Programmers Worse at Programming by xelamonster on Wednesday September 11, 2024 @04:12PM (#41514969)
The most helpful way I use GPT feels more like using a supercharged autocomplete than not writing the code myself. Often I do know what I want to write, and if I get a quarter of the way into a function there's a solid chance in my experience that the AI will suggest to the letter exactly what I was intending on typing anyways. This saves me a huge amount of time and feels no less satisfying.

I still read the docs and examples because it isn't reliable enough to tell me accurately how to use most packages. It's absolutely a mess of flaws and sharp edges so I get the hesitation in using it, and for sure it has allowed less than stellar coders to confidently present steaming trash heaps with a pretty bow on top, but I don't think it's always fair to assume using AI tools means being less involved with the code you produce.

Re:Why Copilot Is Making Programmers Worse at Programming by theGnuMe on Wednesday September 11, 2024 @04:09PM (#41514932)
I like reading source code examples to learn so if an AI coding bot can help me level up I think that’d be great… maybe even analyze my code and suggest improvements or a better way to solve a problem. I’m not sure AI is at that level yet though.
Re:Why Copilot Is Making Programmers Worse at Programming by bloopernova on Wednesday September 11, 2024 @04:42PM (#41515182)
Copilot explains code really well, in my experience.
Re:Why Copilot Is Making Programmers Worse at Programming by theGnuMe on Thursday September 12, 2024 @01:07PM (#41523060)
Reverse engineering code to design patterns is what I am interested in. And then say, have it express the code with different (relevant) patterns possibly.

Or take requirements and propose extensible design patterns. There aren't many design patterns per se but that task has a lot of value. Perhaps the most value.

Also an AI that can find similar concepts using different patterns where they should be consolidated. This could even be for something "as simple as" file access. So many bugs and issues due to one person not knowing how to access resource X.

Re:Why Copilot Is Making Programmers Worse at Programming by bloopernova on Friday September 13, 2024 @11:08AM (#41531937)
Yeah I have found copilot to be lacking when it comes to understanding the structure of certain things. Like when you ask it to add tests, it can figure out where the test files go, but can't seem to insert code into existing tests, so you have to rearrange code fairly often.

I think that code generator models need to understand the abstract syntax tree, like using treesitter to better understand the structure, and as you said, the patterns involved in the code. Plus generators could then check that their new code correctly implements a pattern.

I'd love to be able to feed a repo into a model and get documentation and diagrams out of it.

Re:Why Copilot Is Making Programmers Worse at Programming by atsjie on Wednesday September 11, 2024 @04:24PM (#41515052)
> I will personally never use Copilot, or any other AI code generation tool, for the simple reason that I enjoy writing code.

This will sound extremely harsh; but I noticed I strongly favour colleagues who do use AI-assisted tooling over those who do not. The PR, documentation and code just looks cleaner.

So if it comes to who I favour working with; it's usually people who rely on AI-tools. They deliver code I like maintaining more.

Re:Why Copilot Is Making Programmers Worse at Programming by stroupwaffle on Wednesday September 11, 2024 @04:44PM (#41515193)
ChatGPT is really good at answering specific questions. Just like asking a co-worker, it will do the best to its knowledge, but expect you to know how to integrate that knowledge.

It’s a very useful tool to see how to do something a different way, and sometimes it’s surprising and has some really good ideas!

The problem is people expect these tools to “just do it”, but that doesn’t work. You need to iterate—if it makes a mistake, nudge it in the right direction and you’ll find it knows how to intelligently adjust where it goes wrong.

Re:Why Copilot Is Making Programmers Worse at Programming by mysterydip on Wednesday September 11, 2024 @05:47PM (#41515616)
The worry for me is when documentation and examples start to be written by AI because the team decides that writing it themselves is boring and a waste of their time.
Re:Why Copilot Is Making Programmers Worse at Programming by QuantumGood on Wednesday September 11, 2024 @08:24PM (#41516494)
Few of us only write for fun, vs for results on a deadline. I like having time with my wife, and getting work done so we can be together. I also like writing, but I mainly write to accomplish tasks. There are many, many uses for AI within the domains of "writing" (English or code)
Re:Why Copilot Is Making Programmers Worse at Programming by mmphosis on Wednesday September 11, 2024 @09:55PM (#41516905)
> This article 100% read like it was written by AI.

  q 'write a an article called "Why Copilot is Making Programmers Worse at Programming"'
1. Introduction: In recent years, the use of Copilot has become increasingly popular among programmers. While Copilot can be useful in certain situations, it is also making programmers worse at programming in several ways.

2. Lack of critical thinking skills: When using Copilot, programmers may rely too heavily on the tool to generate code for them. This can lead to a lack of critical thinking skills and an inability to solve problems independently.

3. Overreliance on automation: Copilot is designed to automate certain tasks in programming, which can lead to an overreliance on automation. While this can be helpful in some cases, it can also make programmers less able to think creatively and outside the box.

4. Dependence on a single tool: Copilot is just one tool among many that programmers use to write code. By becoming too dependent on a single tool, programmers may be less well-rounded in their skills and less able to adapt to different programming environments.

5. Lack of creativity: When using Copilot, programmers may not have the opportunity to be creative with their code. This can lead to a lack of originality and an inability to come up with innovative solutions to problems.

6. Inability to learn from mistakes: With Copilot, programmers may not have to deal with as many errors in their code. However, this can also make it harder for them to learn from their mistakes and improve their programming skills.

7. Lack of attention to detail: When using Copilot, programmers may be more likely to overlook small details in their code. This can lead to bugs and other issues that could have been caught with a little more attention to detail.

8. Conclusion: While Copilot can be useful in certain situations, it is also making programmers worse at programming in several ways. By becoming too dependent on the tool and not developing critical thinking and problem-solving skills, programmers may be less well-equipped to handle more complex programming tasks. It is important for programmers to use Copilot as a supplement to their existing skills rather than a replacement for them.

  mistral-7b-instruct-v0.1-Q4_K_M-main.llamafile
Re:Why Copilot Is Making Programmers Worse at Programming by raxxorraxor on Thursday September 12, 2024 @04:47AM (#41518818)
I do use AI support. Locally hosted though and no copilot. It just supports me, but I do write my code myself.

What I see is that new programmers do use it extensively though and if the service is down they often remain helpless. Still think it is a very good support in the beginning as long as some knowledge remains retained, which it very likely will.

Re:Why Copilot Is Making Programmers Worse at Programming by YeGoblynQueenne on Thursday September 12, 2024 @06:43AM (#41519373)
>> I will personally never use Copilot, or any other AI code generation tool, for the simple reason that I enjoy writing code.

LLM code generators are a problem for those who write code for a living, not for pleasure. They may well eventually be forced to use such systems, whether they like it or not. When your paycheck is on the line, you will conform.

For those who both enjoy writing code and have to do it for a living, their everyday jobs may just get a lot more tedious and boring than they are right now.

Re:Why Copilot Is Making Programmers Worse at Programming by kamaal on Thursday September 12, 2024 @08:32AM (#41520108)
>>I will personally never use Copilot, or any other AI code generation tool, for the simple reason that I enjoy writing code.

Im pretty sure I will enjoy riding horses. But if I have to deliver things to people, I think I will be using a truck.