Live data from Hacker News

I won't deliberately use AI for programming

mahdikarimi.com

21–30 of 67 posts

Re: I won't deliberately use AI for programming

#21
post #8

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…

But you do use a car, instead of walking everywhere.

This is a bit beside the point. They also use dishes instead of leaves, presumable a modern axe instead of a piece of stone, etc.

To me it’s about finding the sweet spot between staying connected to the thing that you’re doing for the purpose of keeping life interesting/fulfilling and utilizing your time wisely.

Driving stick is like shooting manual photos. Not necessary in 2023, but can be a lot more fun than the alternative, and enables levels of control that cannot be found with automated solutions.

Choosing to walk is like choosing to forego fire altogether.

Re: I won't deliberately use AI for programming

#22
IMO learning is at the service of building. I learn what I need to build. If GPT can do the first 30% of any project, then I can focus my learning on the remaining 70%. Just think of GPT as another layer of abstraction.

Sure, pure learning is enjoyable but also ephemeral. Building/doing = learning, yes, but no need to do everyhting.

Re: I won't deliberately use AI for programming

#23
I used Copilot full time for about four months writing Rust and Python, and then stopped completely.

Problem is, LLMs are really good at uninsightful, repetitive, boilerplate-y bits of code that shouldn't be there. The moment I get to anything remotely complex or subtle, it either doesn't grasp what I'm doing, needs more coaxing than it's worth, or worst of all introduces subtle bugs. It just incentivises me to write mountains of pointless code instead of stopping and thinking if it even needs to be written in the first place.

What we get from code writing LLMs are exactly the same kind of "improved productivity" we got a decade ago with IDEs autogenerating Java boilerplate. It might help in the short term, but long term it just masks the pain that drives tools and skills getting better, more concise, less repetitive, more insightful.

On the other hand, I'm really looking forward to tools that will be able to figure out how much "insight per line of code" our code has, some sort of "Kolmogorov complexity" but with LLMs. Anything too predictable, anything LLMs can easily fill in is a good code smell signal.

Re: I won't deliberately use AI for programming

#24
post #9

I have gone past the point of giving a shit. Unless it's something I really care about the minuscule details for I'll get ChatGPT to write the main chunk of code and then fix the bugs. It's no different than having a junior dev working for you, except it's quicker and doesn't piss off to lunch or go sick when you need them.

> It's no different than having a junior dev working for you

In my experience it's completely different.

A junior dev who wants to produce a PDF automatically will have to spend a few hours evaluating all the library options and learning their usage. But the code will certainly be free of syntax errors and will produce not-obviously-wrong output before they send it for code review.

ChatGPT will select a library and know how to use it instantaneously - and yet, might call methods that don't exist. Which any human developer would have caught on the very first test run.

They do have certain things in common though - ChatGPT certainly comments code like a beginner programmer :)

Re: I won't deliberately use AI for programming

#25
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 being new to the language. And, when switching to Emacs, I'd notice myself reflexively waiting for Copilot to supply autocompletions that weren't there.

Yet, strangely enough, I can actually write Go code now (with or without Copilot). All the troubleshooting, refactoring, redesigning, bug fixing, etc. that I still had to go through saw to that. (Presumably having programmed already for many years didn't hurt.) Repeated and quick exposure to the relevant idioms supplied by my tooling seems to have helped at least as much as it set me back.

On the lisp (Clojure, Elisp, ...) side of things, I have found Copilot (and ChatGPT) much less helpful, presumably because of the relative paucity of training data. Simple things such as matching parentheses seem to elude these tools, and hallucinations are worse and more frequent. I'm still feeling out how this difference w.r.t VSCode/Copilot and other languages affects my experience and the quality of my output, but it definitely feels different (and, frankly, a little clumsier).

Over time I've learned how helpful different kind of tools are for making software. Learning one's editor well. Writing good (and fast) tests. Using linters and code formatters. Using type systems when available. The new AI tools certainly involve trade-offs, but as I gain experience with them I am becoming convinced that putting them aside will make programming a different, and probably much slower, experience than what most programmers come to experience. (Slow can be good, but probably not what most of us want.)

Re: I won't deliberately use AI for programming

#26
post #21
post #8

Earlier quoted context omitted.

But you do use a car, instead of walking everywhere.

This is a bit beside the point. They also use dishes instead of leaves, presumable a modern axe instead of a piece of stone, etc. To me it’s about finding the sweet spot between staying connected to the thing that you’re doing for the purpose of keeping life interesting/fulfilling and utilizing your time wisely. Driving stick is like shooting manual photos. Not necessary in 2023, but can be a lot more fun than the al…

My point is that AI is just a tool for programming and that I see it as more comparable to the difference between walking and driving than the difference between driving stick and automatic.

Re: I won't deliberately use AI for programming

#27
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…

It's a really bad TA that has no self awareness of its limitations. You are well aware that it hallucinates, right? You probably have observed it yourself in domains you're familiar with. But how would you recognise a hallucination in something that you have no familiarity with?

"Learning something new" from LLMs is like trying to learn something new from a con artist. Sure, they might actually tell you the truth, but having little knowledge of something is exactly the worst possible state to be in while trying to figure out what's true and what's hallucinated.

Re: I won't deliberately use AI for programming

#28
post #9

I have gone past the point of giving a shit. Unless it's something I really care about the minuscule details for I'll get ChatGPT to write the main chunk of code and then fix the bugs. It's no different than having a junior dev working for you, except it's quicker and doesn't piss off to lunch or go sick when you need them.

> It's no different than having a junior dev working for you In my experience it's completely different. A junior dev who wants to produce a PDF automatically will have to spend a few hours evaluating all the library options and learning their usage. But the code will certainly be free of syntax errors and will produce not-obviously-wrong output before they send it for code review. ChatGPT will select a library and k…

…and the library might be obsolete, unmaintained, or outright a wrong choice for the task at hand.

Re: I won't deliberately use AI for programming

#29
post #9

I have gone past the point of giving a shit. Unless it's something I really care about the minuscule details for I'll get ChatGPT to write the main chunk of code and then fix the bugs. It's no different than having a junior dev working for you, except it's quicker and doesn't piss off to lunch or go sick when you need them.

> doesn't piss off to lunch or go sick when you need them It doesn't until it does I think.

I'll worry when it starts a union :)

Re: I won't deliberately use AI for programming

#30
post #17

Some people (like, for example "Conscience of a Hacker" author Loyd Blankenship) still like to make furniture by hand. Despite the widespread availability of flatpacked IKEA style furniture, there is still the desire for the sheer joy of craftsmanship... and there is still demand for the end product.

That's right!
Post reply on HN