Live data from Hacker News

Code is cheap. Show me the talk

nadh.in

181–190 of 237 posts

Re: Code is cheap. Show me the talk

#181
post #165
post #159

Earlier quoted context omitted.

> I can't think of any. Incorrect definition = incorrect interpretation. I edited this a few times but the separation is you can use an abstraction even if you maintain access to the implementation details. > assembler Assembly language which is a different thing. Initially there was no assembler, someone had to write one. In the beginning every line of code had direct access to all memory in part because limited acc…

I genuinely appreciate your response, because there's a good chance it'll result in me changing my perspective, and I'm asking these questions with that intent! > You are thinking of assembly language which is a different thing. Initially there was no assembler, someone had to write one. This is why I specifically mention opcodes. I've actually written assemblers! And...there's not much to them. It's mostly just repl…

Computer Science stole the term abstraction from the field of Mathematics. I think mathematics can be really helpful in clearing things up here.

A really simple abstraction in mathematics is that of numeric basis (e.g. base 10) for representing numbers. Being able to use the symbol 3 is much more useful than needing to write III. Of course, numbers themselves are an abstraction- perhaps you and I can reason about 3 and 7 and 10,000 in a vacuum, but young children or people who have never been exposed to numbers without units struggle to understand. Seven… what? Dogs? Bottles? Days? Numbers are an abstraction, and Arabic digits are a particular abstraction on top of that.

Without that abstraction, we would have insufficient tools to do more complex things such as, say, subtract 1 from 1,000,000,000. This is a problem that most 12 year olds can solve, but the greatest mathematicians of the Roman empire could not, because they did not have the right abstractions.

So if there are abstractions that enable us to solve problems that were formerly impossible, this means there is something more going on than “hiding information”. In fact, this is what Dijkstra (a mathematician by training) meant when he said:

The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise

When I use open(2), it’s because I’m operating at the semantic level of files. It’s not sensible to think of a “file” at a lower level: would it be on disk? In memory? What about socket files? But a “file” isn’t a real thing, it’s an abstraction created by the OS. We can operate on files, these made up things, and we can compose operations together in complex, useful ways. The idea of a file opens new possibilities for things we can do with computers.

I hope that explanation helps!

Re: Code is cheap. Show me the talk

#183

Earlier quoted context omitted.

What you are saying may have made sense at the start of 2025 where people were still using github copilot tab auto completes(atleast I did) and was just toying with things like cursor, but unsure. Things have changed drastically now, engineers with these tools(like claude code) have become unstoppable. Atleast for me, I have been able to contribute to the codebases i was unfamiliar with, even with different tech stac…

> Things have changed drastically now, engineers with these tools(like claude code) have become unstoppable I’ve spent the last week unwinding my coworkers slop who said the same thing.

To be honest, what you have described only shows lack of process.

I am not talking about vibe coding here, which is totally different and understandable. But I am talking about the professional context where the structure is already in place.

Here is my workflow, if it helps:

1. I have a system level prompt i execute(command/skill) before I start anything which says things like

    i) follow SOLID principles
    ii) follow TDD
    iii) follow these testing principles like, don't test the implementation details etc
    and 20 other things
2. I give it the context of what I need to accomplish, and toggle the plan mode ask it follow the above things I have set at system level, and generate me a document to review step by step

3. I review everything, add feedback to the generated plan, prompt again, and finally finalize the plan

4. now that the plan is finalized, I would have a small alignment with co-workers and ask it implement step by step, and then before proceeding with next step, i will tell it to ask me for feedback

each steps code is reviewed and commited, before proceeding to next step

5. once all steps are done, manual testing is done, i do a local review

6. I have a specific skill which reviews everything, and gives me feedback

7. we have human reviewers who will review the code, and coderabbit

8. then we take it to the staging and uat before taking to prod

so see we have not skipped any process of "software engineering", claude code is just an accelrant

but if you are not doing most of the above steps, i see what you are saying would happen by default

Re: Code is cheap. Show me the talk

#185
post #131

Earlier quoted context omitted.

The only people I've known that share this perspective are those that hate abstraction. Going back to their code, to extend it in some way, almost always requires a rewrite, because they wrote it with the goal of minimum viable complexity rather than understanding the realities of the real world problem they're solving, like "we all know we need these other features, but we have a deadline!" For one off, this is fine…

I don't see how the two are related, personally. I'm regularly accused of over-abstraction specifically because I aspire to make each abstraction do as little as possible, i.e. fewest lines possible.

"Abstracting" means extracting the commnon parts of multiple instances, and making everything else a parameter. The difficulty for software is that developers often start by writing the abstraction, rather than having multiple existing instances and then writing code that collects the common parts of those multiple instances into a single abstraction. I guess that is what "refactoring" is about.

In sciences and humanities abstraction is applied the proper way, studying the instances first then describing multitude of existing phenomena by giving names to their common repeating descriptions.

Re: Code is cheap. Show me the talk

#186

I asked Codex to write some unit tests for Redux today. At first glance it looked fine, and I continued on. I then went back to add a test by hand, and after looking more closely at the output there were like 50 wtf worthy things scattered in there. Sure they ran, but it was bad in all sorts of ways. And this was just writing something very basic. This has been my experience almost every time I use AI: superficially…

nobody is going to care about your bespoke codework if there is no downstream measurable difference

Re: Code is cheap. Show me the talk

#187
post #84

Earlier quoted context omitted.

No this is not the way we want learning to be - just like how students are banned from using calculators until they have mastered the foundational thinking.

There is research that shows that banning calculators impedes the learning of maths. It is certainly not obvious to me that calculators will have a negative effect - I certainly always allowed my kids to use them. LLMs are trickier and use needs to be restricted to stop cheating, just as my kids had restrictions on what calculators they could use in some exams. That does not mean they are all bad or even net bad if u…

  > There is research that shows that banning calculators impedes the learning of maths.
Please share what you know. My search found a heap of opinions and just one study where use of calculators made children less able to calculate by themselves, not the ability to learn and understand math in general.

Re: Code is cheap. Show me the talk

#188

Earlier quoted context omitted.

Best example of this is Claude's own terminal program. Apparently renders react at 60fps and then translates it into ANSI chars that then diff the content of the terminal and do an overwrite... All to basically mimic what curses can do very easily.

This is the fun part of whole AI-built things that a lot of people don’t want to accept - it really, really, really does not matter if the code “nice, maintainable and etc.”. Does it work? Is it somewhat extendable with AI? Are users generally happy and adoption rate is high? That’s it.

In this case, no, it does not work. CC is full of reported rendering issues, including some that affect me.

Re: Code is cheap. Show me the talk

#189

I asked Codex to write some unit tests for Redux today. At first glance it looked fine, and I continued on. I then went back to add a test by hand, and after looking more closely at the output there were like 50 wtf worthy things scattered in there. Sure they ran, but it was bad in all sorts of ways. And this was just writing something very basic. This has been my experience almost every time I use AI: superficially…

Living off only deep fried potatoes and large cola bottles is cheap...
Post reply on HN