title: Hello world (programma)
text: Een Hello world-programma is een eenvoudig computerprogramma dat niets anders doet dan de tekst "Hello world" op het scherm tonen.
  
  Een dergelijk programma wordt meestal als eerste voorbeeld gebruikt in een cursus programmeren in een bepaalde programmeertaal of -omgeving. Het wordt tevens gebruikt om na te gaan of de nodige basisprogrammeeromgeving aanwezig is en functioneert. Dit basisvoorbeeld wordt vervolgens in de cursus gebruikt als opstapje naar het schrijven van geavanceerdere programma's. In het verlengde hiervan gebruiken ook verschillende cursussen en boeken van computertalen een Hello world-variant als eerste kennismaking en startvoorbeeld.
  
  Voor zover bekend werd de eerste versie van Hello world gebruikt door de makers van de programmeertaal C om hun programmeertaal te laten zien. Het toont de basale geschiktheid van een programmeertaal aan om via een uitvoerapparaat met een gebruiker te communiceren.
  
  In 1974 kwam het voor in een intern memorandum van Bell Labs door Brian Kernighan: Programming in C: A Tutorial (Programmeren in C: Een leertekst). Hierin werd het aangeduid als "een eenvoudig C-programma".
  main( ) {
          printf("hello, world");
  }
  
  De taal C was in die tijd nog volop in ontwikkeling, en toen het programma in 1978 voor het eerst gepubliceerd werd, in The C programming language (De programmeertaal C) van Kernigan & Ritchie, was het als volgt geworden:
  #include <stdio.h>
  
  int main(void)
  {
      printf("hello, world\n");
      return 0;
  }
  
  Sindsdien is het gebruikelijk een nieuwe programmeertaal zo voor eerste kennismaking te presenteren. De lijst die nu volgt, geeft ook (arbitraire) uitwerkingen in programmeertalen die al eerder dan C bestonden.
  
  'Hello world' in verschillende programmeertalen
  
  ABAP 
    REPORT HELLO.
    WRITE 'Hello world'.
  
  Active Server Pages 
  Korte notatie:
   <%="Hello world"%>
  
  Lange notatie:
   <%
   Response.Write("Hello world")
   %>
  
  Algol 68 
   BEGIN
     print (("Hello world", new line));
   END
  
  APL
  ∇ ''HELLO''
  [1] ’''HELLO WORLD''’
  ∇
  
  AutoIt3 
   Msgbox (0, "Hello world", "Hello world" )
  
  AWK 
   BEGIN { print "Hello world" }
  
  BASIC 
   10 PRINT "Hello world"
  
  Beta 
   (# do 'Hello world' -> putline #);
  
  Boo 
   print "Hello world"
  
  Brainfuck 
  ++++++++++[>+++++++>++++++++++>+++>+
  <<<<-]>++.>+.+++++++..+++.>++.<<++++
  +++++++++++.>.+++.------.--------.>+
  .>.
  
  C 
   #include <stdio.h>
   
   int main(void)
   {
     printf("Hello world\n");
     return 0;
   }
  
  C/AL 
   message('Hello world');
  
  C++ 
   #include <iostream>
   using namespace std;
   
   int main()
   {
     cout << "Hello world" << endl;
     return 0;
   }
  
  C# 
   class HelloWorld {
   	static void Main() {
   		System.Console.WriteLine("Hello world");
   	}
   }
  
  Caml 
   print_string "Hello world"; flush std_out;;
  
  Clean 
  module hello
  
  Start = "Hello world"
  
  Clipper 
   ? "Hello world"
  
  of 
   @ 3,20 SAY "Hello world"
  
  COBOL 
  Mogelijk voorbeeld volgens de standaarden COBOL '68, COBOL '74 en COBOL '85 (ANSI):
   000010 IDENTIFICATION DIVISION.
   000020 PROGRAM-ID.   HELLOWORLD.
   000030 DATE-WRITTEN. 10/08/04 00:04.
   000040 AUTHOR.       UNKNOWN AUTHOR.
   000050
   000100 ENVIRONMENT DIVISION.
   000200 CONFIGURATION SECTION.
   000210 SOURCE-COMPUTER. MAINFRAME.
   000220 OBJECT-COMPUTER. MAINFRAME.
   000230
   000300 DATA DIVISION.
   000310 WORKING-STORAGE SECTION.
   000320 01  TEXT PIC X(12)
   000330    VALUE "HELLO, WORLD".
   000410
   000500 PROCEDURE DIVISION.
   000600 MAIN-LOGIC SECTION.
   000700 MAIN-LOGIC-BEGIN.
   000710     DISPLAY TEKST.
   000600 MAIN-LOGIC-END.
   000700     STOP RUN.
  Niet al deze code hoeft in alle gevallen gebruikt te worden. In de COBOL 2002-(ISO)-standaard zijn bepaalde taalelementen zelfs afgeschaft. Onderstaand programma zal in COBOL 2002 hetzelfde resultaat hebben:
   PROGRAM-ID.     HELLOWORLD.
   DATE-WRITTEN.   10/18/12 12:50.
   AUTHOR.         UNKNOWN AUTHOR.
   
   PROCEDURE DIVISION.
     DISPLAY "Hello world"
     STOP RUN.
  
  CPS/PL1
   PUT LIST ("Hello world");
  
  D 
   import std.stdio;
   
   public int main(in char[][] args) {
       writefln("Hello world");
       return 0;
   }
  
  Expect 
   send_user "Hello world\n";
  
  F# 
   printfn "Hello World"
  
  Fortran
       PROGRAM HELLO
       WRITE (*,100)
       STOP
   100 FORMAT ('HELLO, WORLD' /)
       END
  - of -
       PROGRAM HELLO
       PRINT *,'HELLO, WORLD'
       END
  Merk op dat onderkast (kleine letters) aanvankelijk niet werd gebruikt.
  
  GML 
   draw_text(0,0,"Hello world");
  - of -
   show_message("Hello world");
  
  Haskell 
  
  main :: IO ()
  main = putStrLn "Hello world"
  
  GDScript 
  func _ready():
  	print("Hello world")
  
  Google Go 
  
   package main
    
   import "fmt"
   
   func main() {
       fmt.Println("Hello world")
   }
  
  INTERCAL
  DO ,1 <- #13
  PLEASE DO ,1 SUB #1 <- #238
  DO ,1 SUB #2 <- #108
  DO ,1 SUB #3 <- #112
  DO ,1 SUB #4 <- #0
  DO ,1 SUB #5 <- #64
  DO ,1 SUB #6 <- #194
  DO ,1 SUB #7 <- #48
  PLEASE DO ,1 SUB #8 <- #22
  DO ,1 SUB #9 <- #248
  DO ,1 SUB #10 <- #168
  DO ,1 SUB #11 <- #24
  DO ,1 SUB #12 <- #16
  DO ,1 SUB #13 <- #162
  PLEASE READ OUT ,1
  PLEASE GIVE UP
  
  Java 
   public class HelloWorld {
      public static void main(String[] args) {
         System.out.println("Hello world");
      }
   }
  
  JavaScript 
   document.write('Hello world');
  Of:
   console.log('Hello world');
  Of:
   alert('Hello world');
  Of:
   document.body.innerHTML = 'Hello world';
  
  JavaScript Bookmarklet 
   javascript:'Hello world'
  of
   javascript:alert("Hello world")
  
  Javascript Node.js HTTP-server 
  var http = require('http');
  http.createServer(
    function (request, response) {
      response.writeHead(200, {'Content-Type': 'text/plain'});
      response.end('Hello World\n');
    }
  ).listen(8000);
  console.log('Server running at http://localhost:8000/');
  
  Lisp 
   (print "Hello world\n")
  
  Liberty BASIC 
   notice "Hello world"
  
  Lua 
  print("Hello World")
  
  Malbolge 
    ('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
    `CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>
  
  Oberon 
   MODULE Hello;
   IMPORT 
    Out;
   PROCEDURE Do*;
   BEGIN
    Out.String("Hello world"); 
    Out.Ln	
   END Do;
   END Hello.
  
  Objective-C
   #include <Foundation/Foundation.h>
   int main (int argc, const char *argv[])
   {
          NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
          NSLog (@"Hello world");
          [pool drain];
          return 0;
   }
  
  Pascal 
   program helloworld(output);
   begin
    writeln('Hello world')
   end.
  
  Perl 
   print "Hello world\n";
  
  PHP: Hypertext Preprocessor
  Korte  notatie:
   <?="Hello world"?>
  
  Lange notatie:
   <?php
   echo "Hello world";
   ?>
  
  Piet
  
  PL/1 
   Hello: proc options(main);
       put list ('Hello world');
   end Hello;
  
  PL/pgSQL 
   begin
       dbms_output.put_line('Hello world');
   end;
  
  Prolog 
   write('Hello world'), nl.
  
  Python
  
  Python 2 
   print "Hello world"
  
  Python 3 
   print("Hello world")
  
  قلب 
   (قول "مرحبا يا عالم!")
  
  RPG 
   I              'HELLO WORLD'        C         HELLO
   C                     DSPLY          HELLO
   C                     RETRN
  
  Ruby 
   print "Hello world"
  
  Rust 
  fn main() {
      println!("Hello World!");
  }
  
  SAS 
  data _null_;
   put "Hello world";
  run;
  of:
  %put Hello world;
  
  Scala 
  Een versie die in een command-line-interface gestart kan worden:
  // Hello World in Scala
  
  object HelloWorld {
    def main(args: Array[String]) {
      println("Hello, world!")
    }
  }
  
  Een versie met een grafische gebruikersomgeving:
  import swing._
  
  object HelloWorld extends SimpleSwingApplication {
    def top = new MainFrame {
      title = "Hello world"
      contents = new Button {
        text = "Click Me!"
      }
    }
  }
  
  Seed7 
   $ include "seed7_05.s7i";
   
   const proc: main is func
     begin
       writeln("Hello world");
     end func;
  
  Shelltalen 
   echo Hello world
  Deze vorm werkt in (bijna) alle shelltalen: de Bourne-shell, korn-shell, Bourne again shell, POSIX-shell, C-shell en de DOS- en Windows-shells.
  In sommige shelltalen kan het volgende alternatief gebruikt worden:
   printf "Hello world\n"
  
  Swift 
   print("Hello, World!")
  
  Tcl 
   puts "Hello world"
  
  Visual Basic 
   MessageBox.show("Hello world")
  
  of
  
   MsgBox("Hello world")
  
  of
  
   Debug.print("Hello world")
  
  Visual Basic script 
   MsgBox("Hello world")
  
  Visual DialogScript 
   info Hello world
  
  WebAssembly Text Format 
  Door het importeren van "console.log" van javascript
  (module
    (import "console" "log" (func $log (param i32) (param i32)))
    (import "js" "mem" (memory 1))
    
    (data (i32.const 0) "Hello World") ;; string in global memory schrijven
    (func (export "helloWorld")
        i32.const 0
        i32.const 11
        call $log
    )
  )
  
  Het bovenstaande kan dan na compileren naar een .wasm bestand gebruikt worden in javascript:
  function consoleLogString(offset, length) {
    var bytes = new Uint8Array(memory.buffer, offset, length);
    var string = new TextDecoder('utf8').decode(bytes);
    console.log(string);
  }
  
  var memory = WebAssembly.Memory({initial: 1});
  
  var importObject = {
    console: {
      log: consoleLogString
    }, js: {
      mem: memory
    }
  };
  
  WebAssembly.instantiateStreaming(fetch("log.wasm"), importObject)
    .then(obj => {
      obj.instance.exports.helloWorld();
    });
  
  Hello world in verschillende opmaaktalen
  
  HTML 
   <html>
     <head>
       <title>
         Hello world
       </title>
     </head>
     <body>
       <p>Hello world</p>
     </body>
   </html>
  Of zonder titel:
   <html>
     <body>
       <p>Hello world</p>
     </body>
   </html>
  
  LaTeX 
   \documentclass{article}
   \begin{document}
     Hello world
   \end{document}
  
  XML 
   <?xml version="1.0"?>
   <tekst>Hello world</tekst>
  
  Externe link 
   Hello world in een paar honderd verschillende programmeertalen
  
  Geschiedenis van de informatica
  Programmeren