Om regler

Fredagen den 6 april 1327, under påskmässan i St. Claire-kyrkan i Avignon, såg Francesco Petrarca kvinnan han skulle fira som Laura, och blev oåterkalleligt kär. Petrarca var 23 år gammal. Om litterär tradition är korrekt i att identifiera föremålet för hans Blixt som Laura de Noves var hon 17.





Jason Pontin, chefredaktör och utgivare

Petrarca träffade förmodligen aldrig Laura; hon vägrade att träffa honom eftersom hon redan var gift. Men när han dog 1374 hade han komponerat hundratals dikter som prisade hennes skönhet, beklagade hans olycka och sörjde hennes tidiga död vid 38 års ålder, en respektabel mor till 11.

Allt du kan göra kan jag göra Meta

Den här historien var en del av vårt januarinummer 2007



  • Se resten av frågan
  • Prenumerera

Dikterna är samlade i en bok som brukar kallas Canzoniere , eller Sångboken. För att prisa Laura fulländade Petrarch den lyriska formen som kallas sonnetten, som i hans händer består av 14 rader, vanligtvis av hendecastavelser, på rim abba, abba, cdc, dcd eller någon annan variant. Denna krabbade lilla form har imiterats av tusentals poeter och har inspirerat många berömda exempel på litterär konst. Petrarchansonetten har kallats en bur, men det är en bur som fångar en speciell tankeekonomi: oktaven, de första åtta raderna, erbjuder en proposition av något slag som är tillfredsställande löst i sestetten, de sista sex raderna. Reglerna för en sonett är strikta men enkla.

Tänk däremot på programmeringsspråket C++.

Multimedia

  • Se redaktörens video.

Ett program, som en dikt, är en form för att uttrycka idéer: i ett fall uttrycker ord på ett naturligt språk, begränsat i en lyrik, en mans kärlek till en vacker kvinna; i den andra uttrycker datorkod, bunden av ett programmeringsspråks syntaktiska konventioner, idén, säg, att en utomjordisk robot som Mars Rover skulle kunna ha ett autonomt, inbyggt körsystem.



C++ är utan tvekan det mest inflytelserika språket de senaste 25 åren; många av systemen och applikationerna från persondator- och internetepoken skrevs i den, inklusive Googles sökmotor och de elektroniska kopplingssystemen som ligger till grund för våra telekommunikationsnätverk. Men trots allt det är C++ notoriskt svårt att lära sig och använda. Delvis beror detta på svårigheten att behärska språkets paradigmatiska metod, så kallad objektorienterad programmering. Men främst beror det på att mjukvaruutvecklare är fria att uttrycka sina idéer i C++ i en förvirrande mängd olika former.

I Designen och utvecklingen av C++ , förklarar språkets uppfinnare, Bjarne Stroustrup (som vi intervjuar i detta specialnummer om mjukvara; se Problemet med programmering ), att han utformade språket på detta sätt av kvasifilosofiska skäl: Jag tycker att Kierkegaards nästan fanatiska omsorg om individen är mycket mer. tilltalande än Hegels och Marx' storslagna planer för mänskligheten. … Ofta, när jag var frestad att förbjuda ett inslag som jag ogillade, avstod jag från att göra det eftersom jag inte ansåg att jag hade rätt att tvinga mina åsikter på andra.

Stroustrups återhållsamhet har inte tillfredsställt generationer av programmerare som har kämpat med C++:s egenheter av syntax och funktioner överbelastning (för att använda kodarens jargong). När en version av vår intervju med Stroustrup lades ut på Slashdot, en aggregatorwebbplats som erbjuder nyheter för nördar, lockade den 605 kommentarer. JCR frågade: Varför introducerar C++ så mycket komplexitet för så liten nytta? Reglerna för C++ är komplicerade men slappa.



Programmeringsspråk påverkar fler människor än professionella kodare. Även om vår tekniska civilisation körs på programvara, fungerar inte programvaran särskilt bra. Som vår omslagsberättelse av Scott Rosenberg uttrycker det, vart du än ser är programvara över budget, efter schemat, osäker, opålitlig och svår att använda (se Allt du kan göra, jag kan göra Meta) . Alltför komplicerade programmeringsspråk, varav C++ är ett exempel, är en viktig orsak till programvarans förvirring. Detta beror på att ett användbart programmeringsspråk borde vara vad datavetare kallar en abstraktion av den underliggande komplexiteten hos kontrollflöden och datastrukturer. C++ bevarar för programmerare största möjliga yttrandefrihet; men som JLeslie (en annan Slashdot-kommentator) medgav, kostnaden var att det inte var mycket av en abstraktion.

Det kan finnas ett annat sätt. Charles Simonyi, tidigare chefsarkitekt för Microsoft, som nu är chef för Intentional Software, vill störta programmeringsspråk för något han kallar avsiktlig programmering. Rosenbergs profil av Simonyi förklarar hur avsiktlig programmering kan ge utvecklare en högre abstraktionsordning. Istället för att skriva programvarukod på programmeringsspråk skulle programmerare tacksamt avstå från produktionen av kod till en generator som skulle svälja deras design, som representerar datoranvändarnas avsikter, och spotta ut arbetskod på ett språk som datorer kan förstå, kompilera och köra .

Det bästa uttrycket av idéer sker i former som är strikta och enkla. Kan Charles Simonyi erbjuda programmerare en ny form som på en gång är enklare och mer rigorös än något de har haft tidigare? Skriv och berätta för mig på [email protected]



Dölj