Live data from Hacker News

I won't deliberately use AI for programming

mahdikarimi.com

51–60 of 67 posts

Re: I won't deliberately use AI for programming

#51

I have mixed feelings about this. I switch back and forth between two editors: Emacs for Clojure and other lisps (and Org Mode and Magit), and VSCode with Copilot for, well, most everything else. This ad hoc setup provides a little bit of "personal A/B testing" -- feeling the difference Copilot makes. When I was learning Go I had Copilot on most of the time. I was amazed at how much progress I could make despite bein…

> Repeated and quick exposure to the relevant idioms supplied by my tooling seems to have helped

This sounds exactly like what we know about how children learn language. The recommendation now for adults focuses on a large portion of full immersion in content like tv/movies with no translation. We pick up on patterns and rules from repeated exposure. Maybe this will inform how we teach programming too. I had Copilot on learning Rust and it alternately felt distracting and like cheating so I turned it off, but I think I'll turn it back on based on your experience.

Re: I won't deliberately use AI for programming

#52

Earlier quoted context omitted.

When it comes to programming, when an LLM hallucinates something in an area I'm not familiar with, it's usually very obvious that it is not correct because it just does not work at all. For me, programming hallucinations have never fallen into the case where it appears like everything is working but actually isn't doing the correct thing. So then I just forward that back to the model, or in the very worst case use my…

You are talking about most obvious hallucinations such as inventing a non-existent API. However, those are indeed trivial. What's not trivial is not using APIs that exist for your particular problem; using obsolete patterns; not recognising that a particular approach is a dead end; not recognising potential future problems. All those problems fall in the same bucket of not knowing what you don't know, yet having a (s…

I don't think copying and pasting from stack overflow then fudging things until it works is always quite the same thing as using an LLM to help write code.

I've just spent the month of August learning to use Godot 4.0 with C#. Resources for this topic on the internet are scarce, Google only wants to show me the official Godot documentation and YouTube videos (which I don't watch because I don't like to learn in this way).

Sure, I could spend my time reading the official docs cover to cover, but I much prefer to get my hands dirty. I'm not a novice game programmer, I've written my own game engines, used Unity and published games. I've got the underlying knowledge of how Godot might work, but I'm unclear as to how to accomplish specific goals I'm trying to achieve.

And absolutely, I could just put everything into Google, and probably find correct documentation for what I need. Or I could just write "// Interpolate from current position to camera" and have Copilot spit out "transform3d.interpolate_with" along with supporting code specific to the code I have right here, which also references functions I don't even know existed. This way, I'm learning the "API landscape" in a sense.

Godot 4.0 is new enough (and C# used with Godot used so infrequently in online resoures) to the point where Copilot literally can not produce the correct output basically ever. The API changed and everything it outputs is subtly incorrect, either generating code that is now obsolete, or that the code it's generating no longer functions because of the API change.

When this happens, I just dive into the docs as a backup strategy. But never as my first choice.

Is this worse than not having Copilot? I don't think so, but it seems like we probably won't agree on that. I still feel like I've 'learned' Godot (I at least know more now than I did on August 1st). I'm able to synthesize the code more easily on my own thanks to the starting points provided by the LLM. And I'm also writing tutorials on how to use Godot, further solidifying the things the LLM showed me in my own mind.

I'm not saying LLM's are a "one stop shop" for learning. I'm just saying it's another tool. One that I think is a little shortsighted to just completely disregard because it's sometimes incorrect.

Re: I won't deliberately use AI for programming

#53

Earlier quoted context omitted.

You are talking about most obvious hallucinations such as inventing a non-existent API. However, those are indeed trivial. What's not trivial is not using APIs that exist for your particular problem; using obsolete patterns; not recognising that a particular approach is a dead end; not recognising potential future problems. All those problems fall in the same bucket of not knowing what you don't know, yet having a (s…

I don't think copying and pasting from stack overflow then fudging things until it works is always quite the same thing as using an LLM to help write code. I've just spent the month of August learning to use Godot 4.0 with C#. Resources for this topic on the internet are scarce, Google only wants to show me the official Godot documentation and YouTube videos (which I don't watch because I don't like to learn in this…

I'm on board with your point here

Re: I won't deliberately use AI for programming

#55
post #44

I used Copilot for several months and there were times when I was “wow”ed and others where it’s just got in the way. I recently decided to make my editor much more minimal and even went so far as to disable autocomplete entirely. So far I haven’t noticed a reduction in my productivity and actually find it much easier to think about what I’m writing since I’m not having to correct autocomplete and Copilot all the time…

The main thing I find copilot good for is things that are easy to validate, but tedious (not hard!) to write. Stuff like colors for different statuses, or error messages. I actually love it for writing error messages. Keeps me in flow better not having to switch to writing Human English every five lines when something fails validation.

I agree, in fact I used it to generate a list of colors for a very simple color picker at work. It was very helpful. That said I could also have a chat interface do that for me when I want it, so I can keep my editing experience distraction free.

Re: I won't deliberately use AI for programming

#56
post #3

I strongly disagree with this perspective. I have found GPT4 in particular to be very helpful in learning new programming languages and improving my overall coding. I still solve problems myself and I still read books, but GPT4 is the TA that I can have a conversation with about a piece of code. It's all about how you use it. If you just ask it to tell you complete answers or generate code on a blank page then you're…

I find it really helpful when dabbling in a language that you haven’t used much.

For example: If you’re an expert in language A, and you want to do something common in A in language B, you can ask GPT to show you the idiomatic way of doing it in B and it will usually lead you down the right path (or tell you it’s not possible).

Re: I won't deliberately use AI for programming

#57

What a luddite argument! AI can show you previously unknown ways, often the pragmatic and idiomatic ways to solve problems. It can also explain code in depth. I don‘t know how I‘d have quickly mastered the shitty "drool syntax" I had the displeasure to work with today. No other tool allowed one to become fluent in a new language or framework this fast, ever before. Sounds the same like people who rejected IDEs. Or ev…

49 20 70 72 65 66 65 72 20 74 6F 20 77 72 69 74 65 20 6D 79 20 63 6F 64 65 20 69 6E 20 48 65 78 2E

01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101111 01110010 00100000 01100010 01110101 01110011 01110100 00100001

(ps. vi might not necessarily be an ide by itself (though plugins can change that) , but the unix command line in its totality definitely can count as one. Sometimes it's just faster to jump into vi, fix a problem, and then continue. )

Re: I won't deliberately use AI for programming

#58
> while attempting to grasp new concepts, numerous questions might crop up that encourage you to delve deeper and acquire additional knowledge

So far GPT-4 has proven to be much more helpful in giving me pointers or straight up answers (that I DO check!) to some of my questions than any other source, tool or entity in my life. I've explored and lightly discussed topics I never knew I was interested in.

Re: I won't deliberately use AI for programming

#59

I think that for some types of programmers, AI-assisted programming feels no different from what they already do. Those types feel that the end goal of 'working code' is all that matters. Their definition of 'working' meaning that the functional requirements of the feature are met. That mindset is an extreme. A developer's job is to solve a problem for someone, not to code, but copy/pasting code without understanding…

As a front-end lead and long time game programmer, I've been using copilot at work and home since it was invite-only. This assessment isn't accurate, at least in my case. Copilot mostly: - Writes the same code (often verbatim) I was about to write, often multiple lines of it. "Ok, next I'll loop over the rigidbodies and apply the force to the ones in range- oh look the loop is already there" - Gives me some API calls…

> be honest, you don't read a book on every API call you copy from Stack Overflow.

I don't, because I don't copy code from SO in the first place. But when I'm using or encountering an API that I'm not terribly familiar with, I absolutely do read the documentation for it. It's part of my continuing education and how I maintain a diverse professional skillset.

Re: I won't deliberately use AI for programming

#60
post #41

I do so many things manually that have been successfully automated for a long time. Washing dishes, splitting firewood, grinding coffee, owning manual transmission cars, I could go on. Some things are subjectively better like splitting firewood; It's more work but quieter. Some things are objectively better; washing dished by hand are cleaner. I don't think about it too much. I guess I'll just add programming to that…

Dishwashers are better than hand in literally every sense. More water efficient, chemical efficient, cleaner since the water gets MUCH hotter.

I agree, with a good modern dishwasher. My parents have a wonderful Bosch dishwasher that is quiet, efficient, and most importantly, can handle anything you throw at it. Conversely, the dishwasher at my apartment is junk; I have to rinse and scrub dishes before putting them in the dishwasher or they won't come out clean.
Post reply on HN