LinuxDay2021/README.md

63 lines
4.2 KiB
Markdown
Raw Permalink Normal View History

2021-09-21 22:52:38 +00:00
# Appunti Linux Day
## Introduzione
- Ci sono circa 250 linguaggi di programmazione. Perché non ce nè soltanto uno, ma fatto bene?
2021-09-28 22:26:35 +00:00
- Domande al pubblico, (*) = da fare, le altre opzionali:
- (*)Cosa significa per voi "linguaggio di programmazione"?
- (*)Che linguaggi conoscete?
- (*)Quali vi hanno interessato maggiormente?
2021-09-21 22:52:38 +00:00
- Vi siete documentarvi per conto vostro per svolgere progetti personali?
- Pensate che questi linguaggi siano utili per il futuro (lavorativo)?
2021-09-28 22:26:35 +00:00
- Perché nasce un linguaggio di programmazione? (qui si spiega, di fatto, che cos'è un linguaggio di programmazione):
- Impartire gli ordini ad una macchina
- Astrazione
------ spostare dopo ------
2021-09-21 22:52:38 +00:00
- Motivi di successo dei linguaggi, effetto volano:
- Dovrei imparare il linguaggio più popolare perché è più facile trovare lavoro, informazioni, librerie.
- E se ormai ho già imparato quel linguaggio, chi me lo fa fare di impararne un altro?
- Il linguaggio si adatta ai gusti degli utenti, alle esigenze e limitazioni tecniche del momento, agli obiettivi pratici. Esempio: perché al ristorante non vendono solo la pizza margherita?
2021-09-28 22:26:35 +00:00
---------------------------
2021-09-21 22:52:38 +00:00
## Breve storia dei linguaggi di programmazione
2021-09-28 22:26:35 +00:00
- "Programmazione" meccanica pre-era dell'informazione: il telaio Jaquard, Babbage, Ada Lovelace e la storiellina del governo inglese.
- Holleritz e la nascita di IBM (applicazione dei principi delle schede perforate alle calcolatrici elettromeccaniche).
- Periodo dei computer a valvole: vera programmazione in assembly (eventualmente, speedcoding come primo tentativo di astrazione).
- Tavolina degli mnemonici del 6502 o equivalente, considerazioni sulle limitazioni date dalle mancanze delle istruzioni macchina.
- Necessità di linguaggi più vicini alla lingua parlata: il Fortran e il COBOL, (cenno a Grace Hopper); [il COBOL è in voga ancora oggi](https://www.pcmag.com/news/us-states-ask-for-help-from-cobol-programmers);
2021-09-21 22:52:38 +00:00
- Evoluzione del computer da calcolatore per le grandi università a soprammobile da ufficio;
2021-09-24 20:40:01 +00:00
- Programmazione "meccanica", computer senza dispositivi "grafici" di input. Da binario agli mnemonici dell'assembly.
2021-09-21 22:52:38 +00:00
- I programmini in assembly dellapollo 11 (burn baby burn);
2021-09-28 22:26:35 +00:00
- primo esempio di come avviene un fork dei linguaggi;
2021-09-21 22:52:38 +00:00
- LAPL (A Program Language), capostipite di molti linguaggi moderni. Quello con la tastiera astrusa con un esempio;
- Slide tutta nera: questo è loutput su schermo prodotto dai linguaggi descritti finora. Il calcolatore non aveva il video, arriva dopo.
- Introduzione della print, “si stampa a schermo” un hello world con vice e il basic del C64.
- Fine anni 60, invenzione di C e UNIX.
- Motivi per cui i linguaggi di programmazione si dividono in filoni:
- Obsolescenza
- Motivi commerciali (imposizione da aziende)
- Paradigmi di programmazione:
- Imperativi
- Procedurali, strutturati, OOP
- Esempio del linguaggio OO: Definizione del tipo (rappresentazione del dato e operazioni), esempio con il tipo “vettore”: con una sola variabile mi porto dietro linformazione “mascherata” e le operazioni ad esso correlate.
- Interazione: proviamo a scrivere il programma senza classi, in C.
- Dichiarativi
- funzionali o logic programming. Esempio di Excel come linguaggio funzionale.
- Linguaggi distribuiti in concorrenza: su processori multicore si può fare lesempio dei due pizzaioli con un solo forno.
- Un linguaggio ha successo anche quando puoi usare un sottoinsieme di cose slegate da tutto il resto del linguaggio. Se un linguaggio è fatto da una pila di caratteristiche è meglio perché così non bisogna studiarsi tutto il malloppo per fare qualcosa. (subset fallacy).
- Carrellata dei linguaggi esoterici
- Linguaggio esoterico per instagram coi pixel che corrispondono a istruzioni
- brainfuck
- Moo MOO mOO mOo
- Monicelli
2021-09-28 22:26:35 +00:00
## La programmazione in ambiente WEB
- 10 slides in 10 minuti.
2021-09-21 22:52:38 +00:00
## Cose rimaste fuori
- Esempio delle ricette: un linguaggio di programmazione è la ricetta, un linguaggio di descrizione o markup sono gli ingredienti.
- Non è detto che i linguaggi di oggi siano adatti alle applicazioni richieste: