Table of Contents

A Survey of Programming Languages   slide

?   slide

pic of Grace Hopper

Grace Hopper   slide

pic of Grace Hopper

FLOW-MATIC   slide

  • 1952 A-0
  • 1955 B-0 (Business Language Version 0)
  • 1955 FLOW-MATIC
  • 1960 COBOL

COBOL   slide

cover of COBOL 60 Manual

COBOL   slide

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLOWORLD.
PROCEDURE DIVISION.
MAIN.
  DISPLAY 'Hello, World!'.
  STOP RUN.

?   slide

pic of John Backus

John Backus   slide

pic of John Backus

Fortran   slide

  • 1957 externally available
  • 1956 available at IBM
  • 1954 first program run

Fortran   slide

print *,"Hello, World!"
end

John Backus also gave us   notes

  • ALGOL
  • Backus-Naur form (BNF)
  • Function-level programming

?   slide

pic of John McCarthy

John McCarthy   slide

pic of John McCarthy

Lisp   slide

  • 1958 designed
  • 1960 "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I"
  • 1962 first complete compiler written in Lisp

Lisp   slide

(print "Hello, World!")

?   slide

pic of Nygaard and Dahl

Kristen Nygaard, Ole-Johan Dahl   slide

pic of Nygaard and Dahl

Simula   slide

  • 1965 first released
  • 1967 Simula-67 added objects, classes, inheritance, subclasses, …

Simula   slide

Begin
   OutText ("Hello World!");
   Outimage;
End;

?   slide

pic of Niklaus Wirth

Niklaus Wirth   slide

pic of Niklaus Wirth

Pascal   slide

  • 1966 Algol W
  • 1970 Pascal
  • 1978 Modula 2
  • 1986 Oberon

Pascal   slide

Begin
  Write('Hello, World!')
End.

?   slide

pic of Dennis Ritchie

Dennis Ritchie   slide

pic of Dennis Ritchie

C   slide

  • 1969 started design
  • 1972 appeared in Version 2 Unix
  • 1978 K & R, The C Programming Language

C   slide

#include <stdio.h>

int main()
{
    printf("Hello, World!\n");

    return 0;
}

?   slide

pic of Ken Thompson

Ken Thompson   slide

pic of Ken Thompson

sh   slide

  • 1971 appeared
  • just called the shell then
  • now called the Unix shell or Thompson shell

sh   slide

echo "Hello, World!"

?   slide

pic of Kay, Goldberg, and Ingalls

Alan Kay, Adele Goldberg, Dan Ingalls   slide

pic of Kay, Goldberg, and Ingalls

Smalltalk   slide

  • 1971 first released
  • 1980 Smalltalk-80
  • 1983 Smalltalk-80 version 2
  • 1996 Squeak
  • 1998 ANSI Smalltalk

Smalltalk   slide

Object subclass: Hello [
    greet [
            'Hello, World' displayNl
    ]
].
greeting := Hello new.
greeting greet.

?   slide

pic of Lee McMahon

Lee McMahon   slide

pic of Lee McMahon

sed   slide

  • 1973 developed
  • 1979 appeared in Version 7 Unix

sed   slide

s/.*/Hello, World!/
q

?   slide

pic of Aho, Weinberger, and Kernighan

Alfred Aho, Peter Weinberger, and Brian Kernighan   slide

pic of Aho, Weinberger, and Kernighan

Aho Weinberger Kernighan   slide

pic of Aho, Weinberger, and Kernighan

AWK   slide

pic of Aho, Weinberger, and Kernighan

Awk   slide

  • 1977 appeared
  • 1985 New Awk
  • 1988 Aho, Weinberger, and Kernighan, The AWK Programming Language

Awk   slide

BEGIN { print "Hello, world!" }

?   slide

pic of Stephen Bourne

Stephen Bourne   slide

pic of Stephen Bourne

sh   slide

  • 1977 appeared
  • called the Bourne shell to distinguish it from regular Unix shell
  • 1984 K & P, The Unix Programming Environment

sh   slide

echo "Hello, World!"

?   slide

pic of Bill Joy

Bill Joy   slide

pic of Bill Joy

csh   slide

  • 1978 appeared
  • 1981 tcsh, csh with TENEX-style completion

csh   slide

echo "Hello, World!"

?   slide

pic of Bjarne Stroustrup

Bjarne Stroustrup   slide

pic of Bjarne Stroustrup

C++   slide

  • 1979 C with Classes
  • 1983 C++
  • 1985 Stroustrup, The C++ Programming Language
  • 1998 C++98
  • 2011 C++11
  • "Modern C++" (C++11, C++14, C++17, &c.)

C++   slide

#include <iostream>

int main()
{
   std::cout << "Hello, world!\n";
}

?   slide

pic of David Korn

David Korn   slide

pic of David Korn

ksh   slide

  • 1983 appeared
  • 1988 ksh88 POSIX.2
  • 1993 ksh93
  • 2000 open sourced

ksh   slide

echo "Hello, World!"

?   slide

pic of Armstrong, Verding, and Williams

Joe Armstrong, Robert Verding, and Mike Williams   slide

pic of Armstrong, Verding, and Williams

Erlang   slide

  • 1986 designed
  • 1990 "Erlang: The Movie"
  • 1998 open-sourced

Erlang   slide

-module(hello).
-export([hello/0]).

hello() -> io:fwrite("Hello, World!\n").

?   slide

pic of Larry Wall

Larry Wall   slide

pic of Larry Wall

Perl   slide

  • 1987 designed, version 1 released
  • 1991 Programming Perl (pink camel)
  • 1994 version 5 released
  • 1996 Programming Perl, 2e (blue camel)
  • 2007 Perl 5.10 released
  • "Modern Perl" (Perl 5.10, 5.12, &c.)
  • 2015 version 6 released

Perl   slide

say 'Hello, World!';

?   slide

pic of John Ousterhout

John Ousterhout   slide

pic of John Ousterhout

Tcl   slide

  • 1988 designed
  • 1990 released outside of Berkeley
  • 1990 Expect
  • 1991 Tk

Tcl   slide

puts "Hello, World!"

?   slide

pic of Brian J. Fox

Brian Fox   slide

pic of Brian J. Fox

Bash   slide

  • 1988 started coding
  • 1989 released
  • Bourne-Again SHell

Bash   slide

echo "Hello, World!"

?   slide

pic of Celes, Ierusamlischy, and Henrique de Figueiredo

Waldemar Celes, Roberto Ierusamlimschy, & Luiz Henrique de Figueiredo   slide

pic of Celes, Ierusamlischy, and Henrique de Figueiredo

Lua   slide

  • 1993 version 1.0
  • 1994 version 1.1 (first public release)
  • 2003 version 5.0
  • 2015 version 5.3
  • 2017 version 5.3.4

Lua   slide

print("Hello, World!")

?   slide

pic of Guido van Rossum

Guido van Rossum   slide

pic of Guido van Rossum

Python   slide

  • 1989 designed
  • 1991 posted to alt.sources
  • 1994 version 1.0
  • 2008 version 3.0

Python   slide

print("Hello, World!")

?   slide

pic of Gosling, Naughton, and Sheridan

James Gosling, Patrick Naughton, and Mike Sheridan   slide

pic of Gosling, Naughton, and Sheridan

Java   slide

  • 1991 Oak
  • 1995 version 1.0
  • 2007 open-sourced
  • 2017-09-21 version 1.9 (aka, "Java 9")

Java   slide

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Java   slide

Java 9 introduced jshell!

jshell> System.out.println("Hello, World!")
Hello, World!

?   slide

pic of Yukihiro Matsumoto

Yukihiro Matsumoto   slide

pic of Yukihiro Matsumoto

Matz   slide

pic of Yukihiro Matsumoto

Ruby   slide

  • 1993 conceived
  • 1995 posted to Japanese newsgroups
  • 1996 version 1 released
  • 2001 Programming Ruby (pickaxe)
  • 2013 version 2 released

Ruby   slide

puts "Hello, World!"

?   slide

pic of Rasmus Lerdorf

Rasmus Lerdorf   slide

pic of Rasmus Lerdorf

PHP   slide

  • 1994 "Personal Home Page/Forms Interpreter" or PHP/FI
  • 1995 "Personal Home Page Tools (PHP Tools) version 1.0"
  • 1997 version 3, Zeev Suraski and Andi Gutmans
  • 2000 version 4, Zend Engine 1.0
  • 2004 version 5, Zend Engine II

PHP   slide

<?php 
echo "Hello, World!";
?> 

?   slide

pic of Brendan Eich

Brendan Eich   slide

pic of Brendan Eich

JavaScript   slide

  • 1995 Mocha
  • 1995 LiveScript in Netscape Navigator 2.0
  • 1995 JavaScript in Netscape Navigator 2.0B3
  • 1996 EcmaScript
  • 2009 Node.js
  • 2015 ES6 -> EcmaScript2015

JavaScript   slide

console.log("Hello World!");

?   slide

pic of Anders Hejlsberg

Anders Hejlsberg   slide

pic of Anders Hejlsberg

C#   slide

  • 1999 Cool ("C-like Object Oriented Language")
  • 2000 C# (and .NET)

C#   slide

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello, World!");
    }
}

?   slide

pic of Martin Odersky

Martin Odersky   slide

pic of Martin Odersky

Scala   slide

  • 2001 started designing (derived from Funnel)
  • 2003 released internally at EPFL
  • 2004 version 1.0
  • 2006 version 2.0
  • 2016 version 2.12 (requires Java 8)

Scala   slide

object HelloWorld extends App {
   println("Hello, World!")
 }

?   slide

pic of Don Syme

Don Syme   slide

pic of Don Syme

F#   slide

  • 2005 version 1.0
  • 2015 version 4.0
  • 2017 version 4.1

F#   slide

printfn "Hello, World!"

?   slide

pic of Rich Hickey

Rich Hickey   slide

pic of Rich Hickey

Clojure   slide

  • 2005 started designing
  • 2007 initial release
  • 2009 version 1.0
  • 2017 version 1.9?

Clojure   slide

(println "Hello, World!")

?   slide

pic of Griesemer, Pike, and Thompson

Robert Griesemer, Rob Pike, and Ken Thompson   slide

pic of Griesemer, Pike, and Thompson

Go   slide

  • 2007 started development
  • 2009 announced
  • 2012 version 1
  • 2015 D & K, The Go Programming Language

Go   slide

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

?   slide

pic of Chris Lattner

Chris Lattner   slide

pic of Chris Lattner

Swift   slide

  • 2010 developed
  • 2014 version 1
  • 2015-12-03 open sourced
  • 2017 version 4

Swift   slide

print("Hello, World!")

?   slide

pic of José Valim

José Valim   slide

pic of José Valim

Elixir   slide

  • 2012 developed
  • 2014 version 1
  • 2015 version 1.1
  • 2016 version 1.2, 1.3
  • 2017 version 1.4

Elixir   slide

IO.puts "Hello, World!"

?   slide

pic of Graydon Hoare

Graydon Hoare   slide

pic of Graydon Hoare

Rust   slide

  • 2009 started by Graydon Hoare in OCaml
  • 2010 developed by Mozilla in Rust
  • 2012 first pre-alpha release
  • 2015 version 1.0

Rust   slide

fn main() {
    println!("Hello, World!");
}

?   slide

pic of Evan Czaplicki

Evan Czaplicki   slide

pic of Evan Czaplicki

Elm   slide

  • 2011 designed (as his thesis)
  • 2012 version 0.1
  • 2016 version 0.18

Elm   slide

import Html exposing (span, text)
import Html.Attributes exposing (class)

main = span
 [class "welcome-message"]
 [text "Hello, World!"]

?   slide

pic of Sylvan Clebsch

Sylvan Clebsch   slide

pic of Sylvan Clebsch

Pony   slide

  • 2014 first Pony program compiled and run
  • 2015 ponylang on github
  • 2017 version 0.19

Pony   slide

actor Main
  new create(env: Env) =>
  env.out.print("Hello, World!")

Thanks!   slide

oylenshpeegul icon

  • @oylenshpeegul
  • oylenshpeegul@gmail.com

Author: tim

Created: 2017-11-12 Sun 09:32

Validate