Remix.run Logo
▲ jdkoeck 4 hours ago

> Reading the code does not mean you understand the code.

Reading the code may not be enough to understand the behaviour of your program, but believing you can understand the behaviour of a program without at least reading the high level code is truly silly.

(by high level, I mean the code living in the higher layers - of course we don't often read the code of the generated assembly, or the interpreter, or the browser, but that's because they're reliable abstractions, unlike prompts!)

▲rco8786 4 hours ago | parent [-]

> believing you can understand the behaviour of a program without at least reading the high level code is truly silly.

have you ever used a library after only reading the README and documentation, or do you always pull the source and read through it before you think you understand it?

▲ubertaco 16 minutes ago | parent | next [-]

I've used libraries before, where I call the API surface that they expose based on method names and parameter types, without reading all the source. Generally those libraries don't implement my software's entire problem domain area; they tend to implement things like "CSV parser" or "HTTP server". The important code, that I'm actively reading and writing, tends to be the code around those library calls.

This is different from building a product, which you only interact with via UI buttons/CLI/etc, without reading any code to understand how it conceptualizes that product's problem domain area.

People do that latter thing, and we call them "users", not "developers".

▲misterderpie 3 hours ago | parent | prev | next [-]

I would draw the difference here that a library is used by hundreds (of thousands) of people, and established across different scenarios. I don't read the boto3 library AWS provides, but I can trust them and the amount of customers enough to be certain enough that it behaves the way I expect it to. The same can't be said with code we write in silos at our workplace or at home. It simply does not have the same test bench.

Yes, libraries aren't bug-free, but they give me a reliable abstraction tested in the field. Not rarely you dig into library code if you notice unexpected behavior.

If we could rely on our LLM or colleague written code, or own code, have run through the same amount of requests, sure I wouldn't need to review it, as my confidence can be north of 99.9999% it works correctly. But we can't.

▲ 3 hours ago | parent | prev | next [-]
[deleted]
▲watermelon0 3 hours ago | parent | prev | next [-]

You can use it without understanding, but this won't help you actually understand how it behaves.

▲rco8786 3 hours ago | parent [-]

I believe I can understand how a library behaves from the README and docs. I do this all the time. We all do.

▲kevinh 3 hours ago | parent [-]

You haven't run into cases where the documentation is missing or incomplete? You must be dealing with different libraries than I am.

▲rco8786 3 hours ago | parent [-]

Of course. And then we fix the problem. It's no different here. The point is that reading the code first is absolutely not a requirement when adopting a new library.

▲skydhash 36 minutes ago | parent [-]

It is not. But there’s an element of trust being involved. Something like libflac or libcurl, I don’t read the code. I read the doc which does outline the behavior of each function and the conceptual model. If something break, it’s quite often my code. Why? because their code is battle tested. Which is quite different from AI generated code.

▲brabel 3 hours ago | parent | prev | next [-]

I am sure OP cannot understand the Unix file API without actually reading every line of its implementations (on each different architecture)! Or any function for that matter , what does sort do?? Impossible to know without reading the source. And I’m sure after reading the source you will know every detail of how it works and will never forget it.

▲discreteevent 2 hours ago | parent [-]

It's hard for me to understand how you could work on software and not understand the qualitative difference between the Unix File API and some code that an AI spat out 5 minutes ago.

▲weakfish 3 hours ago | parent | prev [-]

No, but the authors of $LIBRARY are accountable if it fails

▲rco8786 3 hours ago | parent [-]

Are they? I've never been able to blame library authors or hold them accountable for code running in my production environment.