211service.com
Bjarne Stroustrup
Negli anni '80 e '90, quando era ricercatore presso AT&T Bell Labs, lo scienziato informatico di origine danese Bjarne Stroustrup ha progettato C++, probabilmente il linguaggio di programmazione più influente degli ultimi 25 anni. Nonostante tutto, il C++ è controverso. Il linguaggio è ampiamente antipatico ai milioni di programmatori che lo usano, soprattutto perché è notoriamente difficile da imparare e da usare, e perché il design di Stroustrup consente loro di commettere gravi errori di programmazione nell'interesse di massimizzare la loro libertà di espressione. Oggi Stroustrup è professore di informatica alla Texas A&M University.

Bjarne Stroustrup, l'inventore del linguaggio di programmazione C++
Revisione della tecnologia : Perché la maggior parte dei software è così scadente?
Questa storia faceva parte del nostro numero di gennaio 2007
- Vedi il resto del problema
- sottoscrivi
Bjarne Stroustrup: Alcuni software sono in realtà piuttosto buoni, secondo qualsiasi standard. Pensa ai Mars Rovers, a Google e al Progetto Genoma Umano. Ora, quello è software di qualità! La nostra civiltà tecnologica dipende dal software, quindi se il software fosse stato così dannoso come la sua peggior reputazione, la maggior parte di noi sarebbe già morta.
D'altra parte, il codice software medio può farmi piangere. I programmatori chiaramente non hanno riflettuto a fondo sulla correttezza, sugli algoritmi, sulle strutture dati o sulla manutenibilità. La maggior parte delle persone non sa quanto sia grave perché non leggono il codice: vedono semplicemente Windows bloccarsi o fanno cadere una chiamata dal telefono cellulare.
BAMBINI : Come possiamo risolvere il casino in cui siamo?
BS: Non possiamo semplicemente fermare il mondo per un decennio mentre riprogrammiamo tutto, dalle nostre macchine da caffè ai nostri sistemi finanziari. D'altra parte, cavarsela è costoso, pericoloso e deprimente. Sono necessari miglioramenti significativi e possono avvenire solo gradualmente. Ma devono venire su un ampio fronte; nessun singolo cambiamento sarà sufficiente.
Guardando al mio ristretto campo di progettazione del linguaggio di programmazione, la mia opinione è che un buon linguaggio può essere una risorsa importante, ma solo se usato correttamente e bene. Una lingua non risolve i problemi; aiuta semplicemente l'espressione delle soluzioni.
BAMBINI : Cosa rende un buon linguaggio di programmazione?
BS: Tutto ciò che aiuta le persone a esprimere le proprie idee rende una lingua migliore. Una lingua dovrebbe essere brava nelle attività quotidiane nelle mani di bravi artigiani. Meno importa se la lingua è bella in sé. Ci sono sistemi più utili sviluppati in lingue ritenute orribili che in lingue elogiate per essere belle, molti di più.
BAMBINI : L'eleganza non è importante?
BS: L'eleganza è essenziale, ma come si misura l'eleganza? Il numero più basso di caratteri per esprimere la soluzione a un problema? Penso che dovremmo cercare l'eleganza nelle applicazioni costruite, piuttosto che nei linguaggi stessi. Sarebbe una forzatura chiamare il complicato set di strumenti di un falegname (molti piuttosto pericolosi) elegante . D'altra parte, il tavolo e le sedie della mia sala da pranzo sono eleganti, belli, davvero. Detto questo, sarebbe ovviamente meglio se la lingua stessa fosse una bellissima opera d'arte.
BAMBINI : C++ è troppo difficile per la maggior parte dei programmatori?
BS: Non dovrebbe essere. Per usare bene il C++, devi comprendere la progettazione e la tecnica di programmazione. In un certo senso, i miei critici hanno ragione: non tutti dovrebbero scrivere C++, ma poi non ho mai affermato che dovrebbero. Il C++ è progettato per consentirti di esprimere idee, ma se non hai idee o non hai idea di come esprimerle, il C++ non offre molto aiuto.
BAMBINI : Come spieghi il fatto che il C++ è ampiamente criticato e risentito da molti programmatori, ma allo stesso tempo è ampiamente utilizzato?
BS: La risposta disinvolta sarebbe, ci sono solo due tipi di linguaggi: quelli di cui tutti si lamentano e quelli che nessuno usa. La ragione principale del successo del C++ è semplicemente che soddisfa i suoi limitati obiettivi di progettazione: può esprimere una vasta gamma di idee in modo diretto ed efficiente.
BAMBINI : Nel tuo libro Il design e l'evoluzione del C++ , affermi che Kierkegaard abbia influenzato la tua concezione della lingua. È uno scherzo?
BS: Un po' pretenzioso, forse, ma non uno scherzo. Molte riflessioni sullo sviluppo del software sono concentrate sul gruppo. Le pratiche aziendali possono essere direttamente ostili a individui con capacità e iniziativa eccezionali. Considero tale gestione di persone eccezionali sia crudele che dispendiosa. Kierkegaard era un forte sostenitore dell'individuo contro la folla. Non posso indicare una caratteristica specifica del C++ e dire: Vedi, c'è l'influenza del filosofo del 19° secolo, ma è una delle radici della mia riluttanza a eliminare le funzionalità di livello esperto. Tuttavia, non amo particolarmente la sua filosofia religiosa.
BAMBINI : Cosa rimpiangi di più?
BS: Nessun rimpianto! Beh, ovviamente sogno quello che avrei potuto fare in modo diverso e migliore, ma chi sono io per indovinare, diciamo, Bjarne vintage del 1984? Potrebbe essere stato meno esperto di me, ma non era meno intelligente, probabilmente più intelligente, e aveva una migliore comprensione del mondo del 1984 di me. Il C++ è stato utilizzato per costruire molti sistemi che migliorano le nostre vite ed ha avuto un'influenza positiva significativa su linguaggi e sistemi successivi. È qualcosa di cui essere orgogliosi.
