Hacker News new | ask | show | jobs
by alenmilk 1575 days ago
> The Nimatron.” A non-programmable digital computer.

How can a computer be non-programmable? The whole idea of a computer is that it runs a list of instructions.

6 comments

By making fixed-function hardware, which may or may not run on hard-coded instructions per se. Think about a calculator to start with. There are lots of ways to make a computer that are not a Von Neumann architecture, which is what you’re thinking of. There are a bunch of examples of non-programmable computers here: https://en.wikipedia.org/wiki/Computer#History
> Computers are programmable. A system created from logic gates, executing a fixed set of operations is not called a computer. Your washing machine is not a computer either.

Found this quote that sums it up nicely.

This definition excludes what was once the known totality of computers, namely mechanical and electronic targeting and firing computers and all analog computers.

Digital general purpose computers are programmable by the means of a set of discrete operations. However, this doesn't generalize to include all sorts of computers.

Where’s this quote from? Who said it? Using a washing machine as your counter example feels like a straw man. Is a calculator not a computer?

* edit just to add your quote is definitely wrong. A CPU is a set of logic gates that executes a fixed set of operations.

People have used the word “computer” for a lot of non-programmable machines over the years, and it’s clear in the Wikipedia article I linked to that programmability is a recent feature of computers, and was not always there. (Nor is it always there to this day.)

While I’m sure you can find examples of people that agree with you, that doesn’t invalidate history. A computer is anything that computes something, that’s how the word has been defined and used up to and including today. This includes the Antikythera (analog computer) and even (loosely) the Abacus (digital “computer”).

This is weirdly not as good an example anymore, as LG does sometimes put out firmware updates for their washing machines: https://appliantology.org/topic/77501-lg-model-wt4970cw-top-...

We're in a very weird transitional phase for a lot of this kind of thing. It's still largely a fixed set of operations, but it can be re-programmed and in theory isn't completely restricted to just those functions. Someone could port doom to it (I do actually want to see that one).

In 1938, not so much.

In the 1940s, there were computers, such as ENIAC, that were programmed with plugboards that changed the connections between modules that performed various mathematical operations.

If the modules in the Nimatron could be reconfigured to perform other operations, the Nimatron would, by the standards of the era, be considered an electronic computer, even if today we usually reserve that term for Von Neumann style machines where the program consists of symbols stored directly in the machine's memory.

But then from the wikipedia page.

The Online Etymology Dictionary states that the use of the term to mean "'calculating machine' (of any type) is from 1897.

The Online Etymology Dictionary indicates that the "modern use" of the term, to mean 'programmable digital electronic computer' dates from "1945 under this name

So computer is the correct term before 1945.

“Computer” remains today a word that means any computational device. Without any context, it’s safe to assume programmability, but that’s just a reasonable assumption and not a definition of the word computer. People are making fixed-function computers today, and @orbital-decay and I already gave examples of them here. I happen to work on fixed-function non-programmable hardware that is part of a widely used commodity processor today, a sub-core that does arbitrary amounts of computation without being instruction driven and can’t be used for general purpose computation.
If a computer is a machine that helps me compute, then I'd argue an electronic calculator fits the definition regardless of the century:

https://en.wiktionary.org/wiki/compute

I'd be inclined, though, to exclude "non machine" counting tools such as an abacus.

I believe they mean that it was not RE-programmable, it was designed to do exactly one thing, and would require hardware changes to execute a different program.
I assume it's all implemented in hardware. Maybe misleading in today's terms to call it a "computer"
We have hard-wired non-programmable computers in production today. GPUs have sub-components that do fixed-function computation and don’t run on instructions. I suspect this analog AI processor is not programmable: https://www.mythic-ai.com/product/m1076-analog-matrix-proces.... It seems likely to me that we’re about to see a lot of growth in specialized non-programmable hardware since chips have started hitting size & process limitations. Turning common workflows into fixed-function hardware is one of the lowest hanging fruits we have for increasing compute efficiency.
Plenty of DSPs can't be programmed. Many analog computers of old, as well.
Originally the term “computer” was applied to describe a persons occupation similar to “teacher” or “engineer”

https://en.m.wikipedia.org/wiki/Computer_(occupation)

Over the years we have evolved the meaning of computer from something that calculates or reckons to a electronic device that runs software. In reality any black box that has a one-to-one relationship between inputs and outputs can be considered a computer.

It might be easier to think of mechanical computers, such as the WW2 fire control computers aboard Navy Ships[0] or more famously the Antikythera mechanism[1]. These are fixed devices, they compute values from inputs. The "program" is stored in the gears camshafts and differentials and ratios between them.

Similarly, fixed digital computers such as the Nimatron have their operations stored in relays and digital logic. These sorts of computers don't have a list of instructions. They just have schematics, inputs going through electronic circuits that wind up at outputs. You can do a lot of calculating with just simple logic gates.

[0] - https://www.youtube.com/watch?v=s1i-dnAH9Y4

[1] - https://en.wikipedia.org/wiki/Antikythera_mechanism

in those days a computer was a thing that computes (a calculator) not necessarily featuring programs