Hacker News new | ask | show | jobs
by skywhopper 3485 days ago
Anyone who says this:

    in the virtual world of computers,
    everything can be replicated, from complex
    physical phenomena to abstract ideas,
    and even your own mind.
Does not understand computers well enough to be lecturing the world about the need for software "literacy". The assertion that computers can represent any of those things is a complete falsehood.

Computers are great with complex mathematical models of physical phenomena, and in some limited cases this is extremely useful. But smart engineers know the limits of their tools, and computer models are not an exception.

But to assert that abstract ideas or the human mind can be replicated in a computer only shows that the author either has no idea of the actual state of the art, and/or has no idea of what he means when he says this is possible.

One of the first things you learn in Computer Science is that not all problems can be solved with a computer. It's amazing that people so enamored with math that they want to believe they can model every phenomenon in the universe with a computer apparently disbelieve the math that proves computers can't correctly model everything.

Weird. Please don't try to teach the world that computers can do everything. They can't. And that should be lesson one in any plan to increase software literacy. Starting, apparently, with its advocates.

7 comments

I remember a draft of the manifesto that had indeed way more classifiers in it. I guess removing almost all of them for better readability was maybe not the best idea.

DecoPerson and noxToken are right about this being a general statement about computing and not present day technology. Whether or not the human brain can be completely simulated by a machine is still an unanswered question but nothing I came across so far convinced me that it's not possible.

While it's true that not all mathematical problems can be solved algorithmically, that doesn't limit at all the kind of things a computer can simulate. Most physical phenomena don't have a mathematically precise answer and approximations are usually good enough. I hope I understood you correctly there.

If you say "computers can't correctly model everything" then I probably disagree with your definition of a "model". In my understanding of the word the concept of correctness doesn't even make sense. I'm convinced that models should be first and foremost be judged by their "usefulness".

To make this discussion more concrete, it would be very helpful if you could provide an example of something that cannot be modeled with a computer.

Sure! Most real numbers are uncomputable, for starters. "approximations are usually good enough" is a smoke screen that assumes that it's always possible to make approximations and iteratively improve their accuracy, something which generally is only true for computable numbers!

Another example, something I've been studying recently, is the phenomenon of patterns. Patterns are very abstract, and it's not at all clear how a computer can model a pattern without resorting to some concrete instantiation of it. At best, we have blueprints, models, code, designs, and instances; these are all themselves occurrences of patterns, but they fail to embody the pattern itself.

While I've got your attention, "Cryptography also enables a high level of security." is a ridiculous line. Cryptography, by itself, is only a building block. Security is structural. Check out object capabilities: http://srl.cs.jhu.edu/pubs/SRL2003-02.pdf

Edit: Scott Aaronson discusses limits of quantum computation in this talk: http://www.scottaaronson.com/blog/?p=2903 Basically it is totally possible that minds cannot be simulated by computers without destroying the mind in question!

I must admit that I have only very limited understanding of numeric and cryptography. But I do find these very interesting discussion points.

The uncomputable real numbers are the irrational ones, no? But those you can compute to an arbitrary precision. It's just for most applications, you don't need much precision. But again, I've not done very much simulation so I might miss something.

Patterns are something I haven't thought about in this context. I'm not entirely sure what kind of patterns you're talking about. I'm guessing software patterns. I was thinking about abstract patterns and had to think of Deep Mind and how it learned to play Go by recognizing patterns.

I stay with my statement about security. I never said that it's sufficient. But necessary. I think a cryptography-enabled capability-based security model could be very interesting.

Will definitely read Aaronson's talk. That's a very interesting subject.

Simplify your message. What is the core, key idea of what you want to do? If you can't explain it in a sentence, keep trying.
I want to "increase the number of people who are able to write, modify, combine and share software by building a tool that makes writing software easy and fun, and accessible to everyone." I even have a slogan. I call it "Enabling Software Literacy"

That said, I'm highly skeptical towards the "good ideas can be stated in a sentence" heuristic.

If you want anybody to listen, you're going to have to keep repeating it.

It's a good start. I can support software literacy. Now you need to state your plan to get there just as concisely. Probably not as easy.

> Whether or not the human brain can be completely simulated by a machine is still an unanswered question but nothing I came across so far convinced me that it's not possible.

If you haven't read this book:

https://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach

...you probably should.

It may or may not change your mind, but it will bring up some interesting concepts and other meanderings that will keep you thinking about things.

Let me put it this way: Before I read it, your words above echoed my ideas. Interestingly, they still do. That said, after I read the book, there are certain nagging issues deep in the recesses of mathematics where few have dared to delve that raise interesting questions...

That's one of my all-time favourite books so if I hadn't read it I'd be eternally thankful to you for pointing me to it =) It definitely blew my mind.

It didn't make me feel that mathematics is somehow limited though. As far as I understand Gödels theorem, all he says is that there is no such thing as a contradiction-free system of axioms a la Principia Mathematica.

But that's fine with me. I keep tons of contradicting believes in my head all the time. And I'm actually not that interested in simulating an entire brain (although that would be very exciting) but the thing I really care about is the ability to express a part of my mind that I care about in software, sort of like expert systems do. And as a software developer, that's exactly what I do everyday with the minds of my clients. That's also the main idea behind DDD in my opinion.

This topic deserves an essay. If I manage to wrap my head around it, I'll publish something on my blog this week.

I remember the long faces, when i took my programming class through the introduction of floating points to the windows calculator- and they realized that this thing makes mistakes- (x/(9^64))*(9^64) != x

And then the dawning realization, what fights the future would hold for them...

I don't think he was talking about present day technology; rather, he was referring to abstract machines.

Whoever taught you computer science must have had a very pessimistic attitude, which is surprising to me as most of the academics I've talked with think the computers of the distant future will have no limitations.

In the preset day, though, we have limited time and must choose our battles carefully. I respect the OP for his attempts, if a little a misguided. Just ask any active member of the Linux kernel and they'll tell you how often they see such people undertake similarly bold approaches which deliver little outcome (and, hopefully, a life lesson...)

> academics I've talked with think the computers of the distant future will have no limitations.

This could mean a lot of liberal arts students. Academics aren't in any advantageous position to understand the progress of technology. Computers necessarily have limits because of their physical properties of matter and energy.

Thinking that "future = no limits = no scarcity = everyone gets everything they want even fantasy" is kind of a logical leap that most people in tech are not comfortable making. Maybe "academics" are more optimistic because they don't know anything, and it's easier to believe we'll have flying cars in the future than to realize that there will never be a time on Earth that it makes economical sense to fight gravity for an individual transport medium.

One really nice thing about academia is that "unlimited resources" are indeed a valid premise while you are in design space. It's only when you start implementing your idea that you have to face a limited universe.

But on the other, for somebody has programmed in the 60s, the computing power and memory we have nowadays probably seem "limitless" in comparison.

>One of the first things you learn in Computer Science is that not all problems can be solved with a computer.

Oh ... could you elaborate? I think my cut-rate, community college degree skipped that part :) it seems like a useful thing to know!

I assume skywhopper is referring to undecidable and uncomputable problems. https://en.wikipedia.org/wiki/Undecidable_problem
I don't really get how that's a critique of the ability to represent complexity on a computer well. After all, isn't a human mind constrained by P ?= NP in the same way as a computer architecture?
We do not know that actually. While it might be true that classical mechanics is the only machine behind our brain, evolution is just as likely to have stumbled into a quantum computer design we have not yet discovered in the last billion years.
Quantum computers still can't solve NP-complete problems in polynomial time, sadly. Take a look at the BQP complexity class; it's only a subset of NP.
Change replicated to represented or modeled, and it's a true and useful observation. Maybe the author believes "replicated," or maybe he just didn't find the right word that day.

In any case, if I change that word as I read it, it becomes a useful observation to me. Just because I'm reading an authors words doesn't mean I have to accept those words as-is. I just got a useful thought out of an incorrect statement. :)

Ah words. That might be the wrong one indeed. I guess I always assume the benevolence of the reader while I'm writing. But precision is important.

What I meant was that in that virtual world they can be replicated. So the replications would be virtual themselves. I better make that clearer.

Perhaps there's intended subtext saying that computers have the capability to do such things, but we are unable to do such things with the current technology and knowledge. I mean, you're right. The statement shouldn't have been said without being explicit.

I dunno. I'm just trying to give benefit of the doubt.

In writing this defense of the article, I realize that such a flawed premise shouldn't exist when talking about teaching fundamentals.

Is it possible that you're being overly literal in your reading?