un sito di notizie, fatto dai commentatori

A brief history of computers

0 commenti

Il sito LessWrong ospita un lungo articolo di Adam Zerner  che ci porta a spasso lungo la storia dei computer. Il primo passo ci porta, in maniera forse inaspettata, nell’antica Grecia, perché un compèuter non è solo lì’insieme dei suoi componenti elettronici, ma per funzionare ha bisogno di un ingrediente fondamentale: la logica.

Let’s start with logic. Computers are largely based on boolean logic. Y’know, 1s and 0s. AND, OR, NOT.

George Boole did a bunch of important work here in the mid 1800s, but let’s try backing up even further. Was there anything important that came before Boolean logic?

Yeah, there was. It goes all the way back to Aristotle in ~350 BCE. Aristotle did a bunch of groundbreaking work in the field of logic.

Furthermore, after “breaking the ground”, there weren’t any significant developments until the mid 1800s. Wow! That’s a long time. An unusually long time. In other fields like mathematics, natural sciences, literature and engineering, there were significant advances. I wonder why things in the field of logic were so quiet.

Purtroppo, la logica da sola non ci basta per costruire qualcosa che assomigli ad un computer. Dovranno passare ancora molti secoli, anche se dalla fine del ‘700 qualcosa comincia a muoversi. L’invenzione del telaio jacquard così come gli esperimenti di Charles Babbage ed Ada Lovelace, forniscono alcune prime utili esperienze, ma la grande svolta arriva negli anni ’80 dell’800, quando si pone la grande sfida del censimento USA del 1890.

Now imagine that you wanted to use this data to answer some questions. What percentage of households make over $1,000/year? What is the average salary of a baker? Which state has the lowest average annual salary? Which county?

It’d be pretty damn tedious to answer these sorts of questions, right? You’d have to go through all of the paperwork. Like for the average salary of a baker, maybe you’d first go through all the papers and put the papers containing people who are employed as a baker in one pile, and then go through that pile and compute the average salary. That’d definitely be a pain.

Well, Hollerith had a solution to this. You still have to go door-to-door and fill out all of the paperwork. But then you employ people to take that paperwork and fill out a punch card for each citizen. The punch card would encode stuff like salary and occupation.

La grande svolta avviene nella prima metà del ‘900, attraverso il lavoro di Alan Turing e John von Neumann. Il loro lavoro permette di creare i modelli teorici di computer, sulla cui base sono stati costruite tutte le macchine successive. Da qui l’evoluzione si fa inarrestabile, i computer sempre più potenti, piccoli ed economici. Ma resta un problema: come fare ad inserire le istruzioni?

Assemblers are translators. Just like how a human might translate between English and Spanish at the UN, an assembler translates between assembly and machine code. The computer only speaks machine code, whereas human programmers aren’t very fluent in machine code and would prefer to speak in assembly.

But hey, why stop there? This idea of translating from one language to another is pretty powerful. Assembly is ok, but still is a little cumbersome. What if we could create a language that is even more descriptive than assembly, write code in that language, and have it translated into assembly for us?

Enter: programming languages

Così si arriva all’ultima sfida: permettere ai computer di comunicare tra loro. I primi esperimenti con le reti di computer iniziano nei primi anni ’70, con la creazione di ARPANET. Da lì, con un’accelerazione prodigiosa, le reti di computer diventano rapidamente estremamente più estese e potenti, in grado di supportre un’enorme mole di informazioni scambiate. Con la nascita di protocolli comuni, finalmente nasce “la rete delle reti”, Internet, e con essa il mondo come lo conosciamo oggi.

 


Commenta qui sotto e segui le linee guida del sito.