For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | u8's commentsregister

I've been coding by hand for nearly 20 years. I don't get any rush from generating code with agents. Most of the time I just feel loss.

Coding to me has always been the work of a craftsman. I spent years learning syntax, studying APIs, and generally becoming an expert in a language I could then use to exactly express myself. My code became my way of of telling a story. I picked that language not only because it was the right tool for the job, but because I liked the community, I liked the direction of the tool, and I liked writing it.

Agents obliterate all of that. Before, source code was like exploring a canyon. Each function, loop, and nested brackets was someone's choice. There was an implicit story to follow. Agentic code is that valley after the glaciers have retreated. A good illustration of what I'm afraid of losing is in those videos cataloging the [the rapidly dwindling sanity of valve programmers as expressed through code comments](https://www.youtube.com/watch?v=k238XpMMn38). When AI generates your code, you lose that context. You lose that human connection to code that I care so much about.

Unfortunately, I don't think the human touch was as high-of-value to other developers as I previously thought. I've realized that for most developers, it was never about the journey, it was about getting to the destination as quickly as possible. We were infected with a plague of idea-guys and didn't even know it.

That's okay.

There are a billion things in the world where what was once the sole dominion of craftsmen is now shared with machines. Tables and chairs used to be all handmade, now I can order one online and it comes in a self-assembly kit. For 99% of people, code is not the objective. The tool they can use is. They don't understand how it works, or what choices you made. It's story would be lost on them anyway, and that's okay. They just need the self-assembly kit.

I use AI when it makes sense. Writing tests, refactoring big changes, reviewing pull requests, and generating the CUD in CRUD after I define the data and how to get it. Stuff I'd send to my junior engineering assistant. I now get to spend more time working on what I want to work on. I just can't forget that learning is effort, and if I skip all of that, I'm no better than anyone else with access to Claude.

I hear a lot of developers coping with AI by saying that what makes them unique is their ideas or understanding of systems. Does anyone really believe that AI will not get cheaper, smaller, smarter, and easier to run locally? It will come for you, and understand your systems better than you.

It's all a game of balance and incentives. If you want to understand code, you need to write it. If you don't care about code, and just want what it can give you, generate it and realize that you're atrophying a unique skill. Feeling hopeless about all of this? Outside of work, nobody is making you be productive. You can just write code to enjoy it. Anyone who tells you differently is getting off at a different station.


Add my name to the list. I enjoyed thinking about all of the little problems. Being a craftsman.

I took a crack at implementing this in Go. For anyone curious I settled for algorithm 2 as I can just use a map as the base set structure.

https://github.com/tristanisham/f0


What about the Go try/catch claim? There is no try/catch in Go. Returning errors and values is closer to Rust and Zig than D and C++.


Go has panics. You can unwind them, and recover from them. Using these for control flow is heavily discouraged and therefore it's rarely ever an issue, but they are a type of exception handling, or at least very close to that.


Also worth noting is that while they are discouraged, the very same Go devs who discouraged this pattern chose to use it in the standard library for basic things.


Rust has panics too, which also unwind, and you can also recover from them; they are also a type of exception handling. Unless the project was compiled with panic=abort, in which case they don't unwind at all and you can't recover from them; the existence of the panic=abort option means one cannot reliably use them for control flow, which makes it harder to abuse. But even then, you still have to make sure your code is "panic safe" when writing library code (usually through clever use of RAII guards, instead of expecting the code flow to always reach the end of a function).


I’ve made the exact same website for myself. It’s just a little PHP static webapp but I can write reviews for posts and it’s got a simple SQLite/PHP ^8 backend.

https://artsie.red/

I could have used something like Safari’s reading list, but that wouldn’t scale to all of my devices. And I don’t like the idea of putting control of those links into a service I can’t delete.

This site literally solves one problem perfectly and beyond the occasional functionality upgrades (auto-fetching post metadata, a refresh button, and a little CMS behind authentication) it’s super light and useful for me!


Just was in the National Irish Museum - Archeology yesterday and saw these stones for myself! These are such impressive structures, at least 5 feet high with writing so deeply engraved it’s still legible today (a specialist’s eye is still required).


If you’re interested in trying Zig out and want an easy way to update/use multiple versions I’ve been working on a Zig Version Manager for the past few weeks.

It works on Windows, Mac, Linux, a smattering of BSD’s and Plan 9. Arm and x86.

https://github.com/tristanisham/zvm


On Windows one can use https://scoop.sh too. There's a "zig" package for numbered releases, and a "zig-dev" package for nightly.


There is also `pip install ziglang`


With nix you can use https://github.com/Cloudef/nix-zig-stdenv see the versions.nix


I had to do a lot of manual transcription in Journalism school. Using a tool like Descript saved HOURS of my life. Generally it was 80% accurate, but going over an two-hour-long recording again at 3x speed while reading over the transcript, fixing errors from memory or pausing took a five hour job down to 30-40 minutes. Either way, somebody is going to have to listen to the recording. This just removes a layer of grunt work.


Golang has https://pkg.go.dev. Rust has https://docs.rs

Golang entire standard library is documented. Plus with how the language is designed docs don’t need to change with new versions. Just with new functions.


More importantly, golang has https://go.dev/ref/spec — most of the time I wished for better TypeScript documentation it's about syntax (though I did need to go read the default bundled libraries a couple times for details, that's rarer).


My spam horror show started after responding to a text similar to these. It was poised as a woman trying to connect with her daughter. I responded, and since then have had a deluge of spam and crap messages.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search:

HN For You