In diesem Artikel möchte ich anhand eines einfachen Beispiels Programmiersprachen miteinander vergleichen. Es gibt unzählige Sprachen, die für unterschiedliche Zwecke eingesetzt werden und sich mehr oder weniger stark voneinander unterscheiden.
Am Beispiel folgender Anforderung sollen die Programmiersprachen verglichen werden:
Ausgabe Textzeile 1: "Herzlich Willkommen!"
Ausgabe Textzeile 2: "Bitte Namen eingeben: "
Benutzereingabe: <NAME>
Ausgabe Textzeile 3: "Herzlich Willkommen <NAME>!"
Codebeispiele der fünf beliebtesten Programmiersprachen
Java
import java.util.Scanner;
public class Main {
public static void
main(String[] args) {
System.out.println("Herzlich Willkommen!");
System.out.print("Bitte Namen eingeben: ");
Scanner scan = new Scanner(System.in);
String name = scan.nextLine();
System.out.println("Herzlich Willkommen " + name + "!");
}
}
Python
print("Herzlich Willkommen!")name = input("Bitte Namen eingeben: ")
print("Herzlich Willkommen " + name + "!")
C++
#include <iostream>
#include <string>
int main() {
std::string name;
std::cout << "Herzlich Willkommen!" << std::endl;
std::cout << "Bitte Namen eingeben: ";
std::cin >> name;
std::cout << "Herzlich Willkommen " << name << "!" << std::endl;
return 0;
}
JavaScript
const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout});
console.log("Herzlich Willkommen!");readline.question("Bitte Namen eingeben: ", (name) => { console.log("Herzlich Willkommen " + name + "!"); readline.close();});
C#
using System;
namespace ConsoleApp {
class Program {
static void Main(string[] args) {
Console.WriteLine("Herzlich Willkommen!"); Console.Write("Bitte Namen eingeben: ");
string name = Console.ReadLine(); Console.WriteLine("Herzlich Willkommen " + name + "!"); }
}
}
Codebeispiele von fünf weniger genutzten Programmiersprachen
Lua
print("Herzlich Willkommen!")
print("Bitte Namen eingeben: ")
name = io.read()
print("Herzlich Willkommen " .. name .. "!")
Julia
println("Herzlich Willkommen!")
print("Bitte Namen eingeben: ")
name = readline()
println("Herzlich Willkommen $name!")
Haskell
main :: IO ()
main = do
putStrLn "Herzlich Willkommen!"
putStr "Bitte Namen eingeben: "
name <- getLine
putStrLn ("Herzlich Willkommen " ++ name ++ "!")
Rust
use std::io;
fn main() {
println!("Herzlich Willkommen!");
println!("Bitte Namen eingeben: ");
let mut name = String::new();
io::stdin().read_line(&mut name).unwrap();
let name = name.trim();
println!("Herzlich Willkommen {}!", name);
}
Dart
import 'dart:io';
void main() {
print("Herzlich Willkommen!");
print("Bitte Namen eingeben: ");
String name = stdin.readLineSync();
print("Herzlich Willkommen $name!");
}
Codebeispiele von fünf Programmiersprachen älter als 50 Jahre
Assembly (1949)
section .data
welcome db 'Herzlich Willkommen!', 0
prompt db 'Bitte Namen eingeben: ', 0
name_format db 'Herzlich Willkommen %s!', 0
section .bss
name resb 256
section .text
global _start
_start:
; Ausgabe Textzeile 1: "Herzlich Willkommen!"
mov edx, 14 ; Länge des Willkommens-Texts
mov ecx, welcome ; Adresse des Willkommens-Texts
mov ebx, 1 ; Dateideskriptor für stdout
mov eax, 4 ; Syscall für write
int 0x80 ; Aufruf des Betriebssystems
; Ausgabe Textzeile 2: "Bitte Namen eingeben: "
mov edx, 18 ; Länge des Prompt-Texts
mov ecx, prompt ; Adresse des Prompt-Texts
mov ebx, 1 ; Dateideskriptor für stdout
mov eax, 4 ; Syscall für write
int 0x80 ; Aufruf des Betriebssystems
; Benutzereingabe: <NAME>
mov eax, 3 ; Syscall für read
mov ebx, 0 ; Dateideskriptor für stdin
mov ecx, name ; Adresse des Puffers für den Namen
mov edx, 256 ; Maximale Länge des Namens
int 0x80 ; Aufruf des Betriebssystems
; Ausgabe Textzeile 3: "Herzlich Willkommen <NAME>!"
mov eax, 4 ; Syscall für write
mov ebx, 1 ; Dateideskriptor für stdout
mov ecx, name_format ; Adresse des Formatstrings
mov edx, name ; Adresse des Namens
int 0x80 ; Aufruf des Betriebssystems
; Beenden des Programms
mov eax, 1 ; Syscall für exit
xor ebx, ebx ; Rückgabewert 0
int 0x80 ; Aufruf des Betriebssystems
Fortran (1957)
program greeting
implicit none
character(len=20) :: name
write(*,'(A)') "Herzlich Willkommen!"
write(*,'(A)') "Bitte Namen eingeben: "
read(*,'(A)') name
write(*,'(A)') "Herzlich Willkommen ",trim(name),"!"
end program greeting
LISP (1958)
(print "Herzlich Willkommen!")
(print "Bitte Namen eingeben: ")
(setq name (read))
(print (format nil "Herzlich Willkommen ~A!" name))
COBOL (1959)
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC X(20).
01 WS-MESSAGE PIC X(20) VALUE "Herzlich Willkommen".
PROCEDURE DIVISION.
DISPLAY "Herzlich Willkommen!".
DISPLAY "Bitte Namen eingeben: ".
ACCEPT WS-NAME.
DISPLAY "Herzlich Willkommen " WS-NAME "!".
STOP RUN.
BASIC (1964)
10 PRINT "Herzlich Willkommen!"
20 PRINT "Bitte Namen eingeben: ";
30 INPUT name$
40 PRINT "Herzlich Willkommen "; name$; "!"
Codebeispiele von fünf schwer erlernbaren Programmiersprachen
Perl
#!/usr/bin/perl
use strict;
use warnings;
print "Herzlich Willkommen!\n";
print "Bitte Namen eingeben: ";
my $name = <STDIN>;
chomp $name;
print "Herzlich Willkommen $name!\n";
Erlang
-module(hello).
-export([run/0]).
run() ->
io:fwrite("Herzlich Willkommen!\n"),
io:fwrite("Bitte Namen eingeben: "),
{ok, Name} = io:read_line(),
io:fwrite("Herzlich Willkommen ~s!\n", [Name]).
Forth
." Herzlich Willkommen!\n"
." Bitte Namen eingeben: "
accept name
." Herzlich Willkommen " name . "\n"
Scheme
(display "Herzlich Willkommen!")
(display "Bitte Namen eingeben: ")
(define name (read))
(display "Herzlich Willkommen " name "!")
Prolog
welcome :-
write('Herzlich Willkommen!'), nl,
write('Bitte Namen eingeben: '),
read(Name),
format('Herzlich Willkommen ~w!', [Name]), nl.
Es ist gut zu sehen, dass es teils große Unterschiede in den Umsetzungen gibt, sich einige Bereiche aber stark ähneln. Natürlich handelt es sich hier um ein sehr einfaches Beispiel und die Unterschiede werden größer, je mehr Code geschrieben wird. Wer aber in der Lage ist, Programmcode zu lesen, wird mit vielen unterschiedlichen Sprachen klar kommen.
Als kleinen Bonus gibt es nachfolgend noch fünf Beispiele für Sprachen, die keinen traditionellen Nutzen haben sondern eher als intellektuelle Herausforderung gelten.
Codebeispiele von fünf esoterischen Programmiersprachen
Brainf***
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>--
-.+++++++..+++.
|| ".<<+. ------.--------.>>+."
Intercal
C INPUT
$1 C READ NAME
$2 C PRINT *, "Herzlich Willkommen!"
$3 C PRINT *, "Bitte Namen eingeben: "
$4 C PRINT *, "Herzlich Willkommen", NAME, "!"
C END
Chef
COME Herzlich Willkommen!DO .( COME Bitte Namen eingeben: DO ,( READ name COME Herzlich Willkommen name! ))
Befunge-93
v> : # Ausgabe "Herzlich Willkommen"
, :
, :
, :
, :
, :
, :
, :
, :
"Herzlich Willkommen!"
_ :
> : # Ausgabe "Bitte Namen eingeben: "
"Bitte Namen eingeben: "
_ :
p : # Eingabeaufforderung
v :
> : # Ausgabe "Herzlich Willkommen <NAME>!"
"Herzlich Willkommen "
< :
, :
"!" :
> :
_ :
LOLCODE
HAI 1.2
VISIBLE "Herzlich Willkommen!"
VISIBLE "Bitte Namen eingeben: "
GIMMEH NAME
VISIBLE "Herzlich Willkommen " + NAME + "!"
KTHXBYE
Hinweis zum Schluss: Die Codebeispiele wurden mithilfe von ChatGPT angefertigt.
Keine Kommentare:
Kommentar veröffentlichen