2007-10-15

Print

10 PRINT "Hello, world"

printf("Hello, world");

System.out.println("Hello, world");

Ovanstående kodsnuttar i olika programmeringsspråk skriver ut det ståtliga meddelandet "Hello, world" på skärmen (ev. med hjälp av lite kompletterande kod). Att identifiera språken får bli en tävling bland läsarna, poängen här är att de inte bara är olika språk utan även kommer från olika decennier, datavärldens geologiska perioder. Mycket skiljer, men en gemensam faktor är kommandot print för att visa texten på skärmen.

Vad betyder själva ordet print? Att trycka på papper, "utskrift" som vi säger idag. (Det är samma ord som latinets premere, "pressa", en form av detta är pressus, "pressad", som ligger bakom ord som impression och vårt eget press.)

Hur kommer det sig då att ett ord för utskrift på papper används om utskrift på skärmen? I så många olika språk? - Därför att utskrift på papper en gång i tiden var det vanliga sättet för datorer att meddela sig med omvärlden. Det var långt tydligare än att tända och släcka dioder, som var det andra huvudalternativet, och tekniskt långt enklare än att rita bokstäver på en TV. Skrivarna var s.k. teleprinters, i princip elektriska skrivmaskiner med fasta typer. Inte matriser, och lasern var knappt uppfunnen.

Jag vet inte riktigt när skärmarna definitivt tog över - 70-talet? - men det historiska arvet är såpass starkt, att även programmeringsspråk som togs fram långt senare använder print för att skriva på skärmen.

Ännu ett minne av teleprinter-eran finns kvar i Unix-termen tty. Ännu ett finns kvar i det rasslande ljud som ibland inleder nyhetsrapporteringen på TV. Ännu ett i På Hårets Lelle Printer. Och så vidare.

4 kommentarer:

Anonym sa...

Enkelt: BASIC, C (och en mängd andra språk för den delen med) samt Java.

Hexmaster sa...

Just.

Sen finns det ju en del språk som inte använder print, åtminstone inte i de "Hello, world"-exempel jag hittar just nu. (Vet inte alls hur tillkrånglade exemplen är. Ibland undrar man om någon sitter och skojar...)

Ada: Text_IO.Put_Line
Algol: OUTPUT
Cobol: DISPLAY
PL/1: put skip list

Annars är write det vanligaste alternativet. I Pascal, Javascript med många fler.

Johan Andersson sa...

OUTPUT och DISPLAY har ju precis som PRINT med en skärm eller utskrift på papper att göra. Write och WriteLine (eller Put_Line i Ada) har ju med (byte-)strömmar att göra. Att det heter print och inte Write i Java beror på att man använder en ström (PrintStream) som är ämnad just för att skriva ut data på skärmen på ett enkelt sätt.

-= Steamboat Willie =- sa...

Ett motsvarande program i COBOL skulle väl se ut så här:

DISPLAY 'Hello, world' WITH NO ADVANCING.