Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'd say that depends on what you mean by "ultimate". The Turing machine is the most fundamental abstraction in CS, sure. But it's not that much of an abstraction of my laptop. My laptop has state, it has instructions, each instruction takes it from one state to another. It doesn't have infinite resources, but for most of my purposes it might as well.

So since my metaphor was obviously unclear, the point I'm getting at is why would I want to be "punching tape" (writing assembly or C instructions) for a "Turing machine" (a physical computer with unlimited resources that executes one — okay, two — instructions at a time) when I could instead tell a robot (a high-level programming language) what I want it to do, and let the robot figure out the individual instructions to make that happen?

And just for future reference, "You know that #{thing I assume you don't know}, right?" is a really douchey way to pretend to try to educate somebody.



Sorry I came across as douchey. That's what I get for trying to write a terse reply from my phone. It just felt like an incomplete analogy when you were talking about abstractions and it felt like you knew a TM was an abstraction. Like trying to call everything a car.


I would say that TMs are one of the most fundamental abstractions in CS - but as you note, for an abstraction they are actually quite concrete. I would perhaps argue that the lambda calculus is a slightly more fundamental abstraction - even of course they are equivalent in "power" to TMs.


I see where you're coming from with that, although personally I mostly think of them as different approaches of considering the same thing. A Turing machine asks the question of what a computer can be, while lambda calculus asks the question of what a computer program can be. You could also think of the TM as an abstraction of the imperative paradigm, and LC as as abstraction of the functional paradigm. We know they're theoretically equivalent, but they're different ways of conceptualizing it, and probably trying to figure out which is more basic is not a good use of our time :P


Heh, I guess anonymous doesn't like me calling their job "robot work" :P




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search: