top | item 43998543

(no title)

kogir | 9 months ago

  Another example for all you computer folks out there: ultimately, all software
  engineering is just moving electrons around. But imagine how hard your job would
  be if you could only talk about electrons moving around. No arrays, stacks,
  nodes, graphs, algorithms—just those lil negatively charged bois and their 
  comings and goings.
I think this too easily skips over the fact that the abstractions are based on a knowledge of how things actually work - known with certainty. Nobody in CS is approaching the computer as an entirely black box and making up how they think or hope it works. When people don't know how the computer actually works, their code is wrong - they get bugs and vulnerabilities they don't understand and can't explain.

discuss

order

lo_zamoyski|9 months ago

Computer science has nothing to do with physical computing devices. Or rather, it has to do as much with computers as astronomy has to do with telescopes. You can do it all on paper. The computing device doesn't afford you anything new, but scale and speed for simulating the mechanical work doing it on paper would. Electrons are irrelevant. They are as relevant to computer science as the species of tree from which the wood in your pencil comes from is relevant to math.

Obviously, being able to use a computer is useful, just as using a telescope is useful or being able to use a pencil is useful, but it's not what CS or software engineering are about. Software is not a phenomenon of the physical device. The device merely simulates the software.

This "centering" of the computing device is a disease that plagues many people.

gchamonlive|9 months ago

> When people don't know how the computer actually works, their code is wrong - they get bugs and vulnerabilities they don't understand and can't explain.

While this is true, we're usually targeting a platform, either x86 or arm64, that are incredibly complex pieces of engineering. Unless you are in the IoT or your application requires you to optimize at the hardware level, we're so distant from the hardware when we're programming in python for instance that the level of awareness required about the hardware isn't that much more complicated than the basic Turing machine.

quadhome|9 months ago

Physical latencies in distributed systems design. Calibration for input devices. Block storage failures and RAID in general. Monitor refresh rates. Almost everything about audio. Rowhammer.

manugo4|9 months ago

No, red is an abstraction that is not based on knowledge of how colors work.

lo_zamoyski|9 months ago

"How colors work" is dubious.

In physics, color has been redefined as a surface reflectance property with an experiential artefact as a mental correlate. But this understanding is the result of the assumptions made by Cartesian dualism. That is, Cartesian dualism doesn't prove that color as we commonly understand it doesn't exist in the world, only in the mind. No, it defines it to be the case. Res extensa is defined as colorless; the res cogitans then functions like a rug under which we can sweep the inexplicable phenomenon of color as we commonly understand it. We have a res cogitans of the gaps!

Of course, materialists deny the existence of spooky res cogitans, admitting the existence of only res extensa. This puts them in a rather embarrassing situation, more awkward that the Cartesian dualist, because now they cannot explain how the color they've defined as an artefact of consciousness can exist in a universe of pure res extensa. It's not supposed to be there! This is an example of the problem of qualia.

So you are faced with either revising your view of matter to allow for it to possess properties like color as we commonly understand them, or insanity. The eliminativists have chosen the latter.

ysofunny|9 months ago

it is an abstraction based on how our biological eyes work (this implies "knowledge" of physics)

so it is indirectly based on knowledge of how color works, it's simply not physics as we understand it but it's "physics" as the biology of the eye "understands" it.

red is an abstraction whose connection to how colors work is itself another abstraction, but of a much deeper complexity than 'red' which is a rather direct abstraction as far as abstraction can go nowadays

inglor_cz|9 months ago

For me, a computer is at best semi-transparent.

I can rely on a TCP socket guaranteeing delivery, but I am not very well versed in the algorithms that guarantee that, and I would be completely out of my depth if I had to explain the inner workings of the silicon underneath.

jtbayly|9 months ago

Plenty of programmers know nothing about electrons. Think kids.

Most programmers never think once about electrons. They know how things work at a much higher level than that.

bluGill|9 months ago

That only works because some EE has ensured the abstractions we care about work. You don't need to know everything, you just need to ensure that everything is known well enough by someone all the way down.

DontchaKnowit|9 months ago

Yeah? So what. Theyre still using abstractions that were created by people who know about electrons.

ImHereToVote|9 months ago

"Nobody in CS is approaching the computer as an entirely black box and making up how they think or hope it works."

That is literally how we approach transformers.

danielmarkbruce|9 months ago

Who is "we"? Lot's of people (including me) know how how transformers work. Just because we can't do all the math in our head quickly enough to train a model or run inference mentally, doesn't mean we don't know mechanically how they work.

jemmyw|9 months ago

It doesn't skip over it. First this is an example and not the primary thing it's talking about. But secondly, just above, the article states that some lower level knowledge is necessary in the transit example. If you map those things, as written by someone who, as they say, isn't they knowledgeable about programming, then they make sense without diving into the specific.

growlNark|9 months ago

> I think this too easily skips over the fact that the abstractions are based on a knowledge of how things actually work - known with certainty.

models ≠ knowledge, and a high degree of certainty is not certainty. This is tiring.

AIPedant|9 months ago

This seems like a misreading of the comment. The models and knowledge of arrays, classes, etc, are known with "arbitrarily high" certainty because they were designed by humans, using native instruction sets which were also designed by humans. Even if this knowledge is specialized, it is readily available. OTOH nobody has a clue how neurons actually work, nobody has a working model of the simplest animal brains, and any supposed model of the human mind is at best unfalsifiable. There's a categorical epistemic difference.

achierius|9 months ago

But doesn't this argument defeat itself? We cannot, a priori, know very much at all about the world. There is very, very little we can "know" with certainty -- that's the whole reason Descarte resorted to the whole cogito argument in the first place. You and GP just choose different lines to draw.

pimlottc|9 months ago

> Nobody in CS is approaching the computer as an entirely black box and making up how they think or hope it works.

Haven't you heard about vibe coding?