211service.com
Sulle regole
Venerdì 6 aprile 1327, durante la messa pasquale nella chiesa di Santa Chiara ad Avignone, Francesco Petrarca vide la donna che avrebbe ricordato come Laura, e se ne innamorò irrevocabilmente. Petrarca aveva 23 anni. Se la tradizione letteraria ha ragione nell'identificare l'oggetto del suo Fulmine come Laura de Noves, aveva 17 anni.

Jason Pontin, caporedattore ed editore
Probabilmente Petrarca non ha mai incontrato Laura; si rifiutava di vederlo perché era già sposata. Ma quando morì nel 1374, aveva composto centinaia di poesie inneggiando alla sua bellezza, lamentandosi della sua sfortuna e piangendo la sua morte prematura all'età di 38 anni, una rispettabile madre di 11 anni.
Questa storia faceva parte del nostro numero di gennaio 2007
- Vedi il resto del problema
- sottoscrivi
Le poesie sono raccolte in un libro comunemente chiamato Il Canzoniere , o Il libro dei canti. Per lodare Laura, Petrarca perfezionò la forma lirica chiamata sonetto, che nelle sue mani è composta da 14 versi, solitamente di endecasillabi, in rima abba, abba, cdc, dcd o qualche altra variazione. Questa piccola forma sgraziata è stata imitata da migliaia di poeti e ha ispirato molti celebri esempi di arte letteraria. Il sonetto petrarchesco è stato chiamato gabbia, ma è una gabbia che racchiude una peculiare economia di pensiero: l'ottava, i primi otto versi, offre una proposizione di qualche tipo che si risolve in modo soddisfacente nel sestetto, gli ultimi sei versi. Le regole di un sonetto sono rigide ma semplici.
Al contrario, considera il linguaggio di programmazione C++.
Multimedia
Guarda il video dell'editore.
Un programma, come una poesia, è una forma per esprimere idee: in un caso, le parole in un linguaggio naturale, vincolate all'interno di un testo, esprimono l'amore di un uomo per una bella donna; nell'altro, il codice del computer, vincolato dalle convenzioni sintattiche di un linguaggio di programmazione, esprime l'idea, diciamo, che un robot extraterrestre come il Mars Rover potrebbe avere un sistema di guida autonomo e integrato.
Il C++ è probabilmente il linguaggio più influente degli ultimi 25 anni; molti dei sistemi e delle applicazioni dell'era dei personal computer e di Internet sono stati scritti in esso, incluso il motore di ricerca di Google e i sistemi di commutazione elettronica che sono alla base delle nostre reti di telecomunicazioni. Ma nonostante tutto, il C++ è notoriamente difficile da imparare e da usare. In parte, ciò è dovuto alla difficoltà di padroneggiare il metodo paradigmatico del linguaggio, chiamato programmazione orientata agli oggetti. Ma principalmente è perché gli sviluppatori di software sono liberi di esprimere le loro idee in C++ in una sconcertante varietà di forme.
In Il design e l'evoluzione del C++ , l'inventore del linguaggio, Bjarne Stroustrup (che intervistiamo in questo numero speciale sul software; vedi The Problem with Programming ), spiega che ha progettato il linguaggio in questo modo per ragioni quasi filosofiche: Trovo che la preoccupazione quasi fanatica di Kierkegaard per l'individuo sia molto più attraente rispetto ai grandiosi schemi per l'umanità di Hegel e Marx. … Spesso, quando ero tentato di mettere al bando una caratteristica che non mi piaceva, mi sono astenuto dal farlo perché non pensavo di avere il diritto di imporre le mie opinioni sugli altri.
La moderazione di Stroustrup non ha soddisfatto le generazioni di programmatori che hanno lottato con le stranezze della sintassi e il sovraccarico delle funzionalità del C++ (per usare il gergo dei programmatori). Quando una versione della nostra intervista con Stroustrup è stata pubblicata su Slashdot, un sito aggregatore che offre notizie per nerd, ha attirato 605 commenti. JCR ha chiesto, perché il C++ introduce così tanta complessità per così poco vantaggio? Le regole del C++ sono complicate ma permissive.
I linguaggi di programmazione interessano più persone rispetto ai programmatori professionisti. Sebbene la nostra civiltà tecnologica funzioni su software, il software non funziona molto bene. Come dice la nostra storia di copertina di Scott Rosenberg, Ovunque guardi, il software è fuori budget, in ritardo sulla pianificazione, insicuro, inaffidabile e difficile da usare (vedi Tutto quello che puoi fare, posso fare Meta ) . Linguaggi di programmazione eccessivamente complicati, di cui il C++ è un esempio, sono una delle ragioni principali della confusione del software. Questo perché un linguaggio di programmazione utile dovrebbe essere quello che gli informatici chiamano un'astrazione della complessità sottostante dei flussi di controllo e delle strutture di dati. Il C++ preserva per i programmatori la massima libertà di espressione possibile; ma come ha ammesso JLeslie (un altro commentatore di Slashdot), il costo era che non era un'astrazione.
Potrebbe esserci un altro modo. Charles Simonyi, l'ex capo architetto di Microsoft, che ora è il capo di Intentional Software, vuole rovesciare i linguaggi di programmazione per qualcosa che chiama programmazione intenzionale. Il profilo di Simonyi di Rosenberg spiega come la programmazione intenzionale potrebbe dare agli sviluppatori un ordine di astrazione più elevato. Piuttosto che scrivere codice software in linguaggi di programmazione, i programmatori abbandonerebbero con gratitudine la produzione di codice a un generatore che ingoierebbe i loro progetti, rappresentando le intenzioni degli utenti di computer, e sputerebbe codice funzionante in un linguaggio che i computer potrebbero capire, compilare ed eseguire .
La migliore espressione delle idee avviene in forme rigorose e semplici. Potrebbe Charles Simonyi offrire ai programmatori una nuova forma che è allo stesso tempo più semplice e rigorosa di qualsiasi cosa abbiano avuto prima? Scrivimi e dimmi a [email protected]
