Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hello world: a brief history of programming

Hello world: a brief history of programming

A brief, selective and somewhat opinionated history of programming

Talk given at "An evening of unnecessary detail" at the Cambridge Science Festival 2018

Ben Nuttall

March 17, 2018
Tweet

More Decks by Ben Nuttall

Other Decks in Programming

Transcript

  1. Hello world
    A brief
    history of
    programming
    @ben_nuttall

    View Slide

  2. Hello world
    A brief and selective
    history of
    programming
    @ben_nuttall

    View Slide

  3. Hello world
    A brief, selective and somewhat opinionated
    history of
    programming
    @ben_nuttall

    View Slide

  4. Programming language
    A formal definition of a set of rules for providing
    instructions to a computer.
    ~ Ben Nuttall, 2018

    View Slide

  5. History of programming languages
    Time Programming languages Notable people /
    organisations
    1840s – 1930s Machine language
    (mechanical instructions)
    Ada Lovelace
    Charles Babbage
    Alonzo Church
    1940s Assembly language John Mauchly
    1950s FORTRAN, LISP, COBOL Alick Glennie
    University of Manchester
    IBM
    Grace Hopper
    1960s B, APL, BASIC Bell Labs

    View Slide

  6. History of programming languages
    Time Programming languages Notable people /
    organisations
    1970s C, LOGO, Smalltalk, Prolog,
    SQL
    Dennis Ritchie, Seymour
    Papert
    1980s C++, MATLAB, Mathematica,
    Perl
    Bjarne Stroustrup, Larry Wall
    1990s Python, Ruby, Java,
    JavaScript, PHP
    Guido van Rossum, Yukihiro
    Matsumoto, Sun
    Microsystems, Brendan Eich,
    Rasmus Lerdorf
    2000s C#, Rust, Julia, Swift Microsoft, Apple, Mozilla, Viral
    Shah

    View Slide

  7. High-level programming languages
    High-level interpreted
    language
    Python Usually implemented in a low-
    level language
    Code executed directly
    High-level compiled
    language
    Java Usually implemented in a low-
    level language
    Code compiled into bytecode
    Low-level language C, C++, FORTRAN Compilers implemented in a
    low-level language (often the
    language itself)
    Assembly language Per specific computer architecture, e.g. Arm, Intel
    Machine language
    Hardware

    View Slide

  8. Raspberry Pi

    Series of single board
    computers designed for
    education and making

    Various models:
    – Cost $5 to $35

    Manufactured in Pencoed,
    Wales

    19M units sold to date

    View Slide

  9. Raspberry Pi Foundation

    Educational charity founded
    in 2009

    Based in Cambridge

    Aims to democratise
    computing

    Owns Raspberry Pi Trading
    Ltd, who make the
    Raspberry Pi computer

    View Slide

  10. Raspbian operating system

    Free Linux-based OS for
    Raspberry Pi

    Comes bundled with
    programming and
    educational tools

    Also available for your
    PC/Mac as “Raspberry Pi
    Desktop x86”

    View Slide

  11. "Hello world" programs

    The first program you write outputs the text "Hello world"

    View Slide

  12. 10 Hello world programs for your Raspberry Pi

    View Slide

  13. 1. Python
    print(“Hello world”)

    View Slide

  14. 2. Scratch

    View Slide

  15. 3. Ruby
    puts "Hello world"

    View Slide

  16. 3.5 Sonic Pi
    puts "Hello world"

    View Slide

  17. 4. Bash
    echo "Hello world"

    View Slide

  18. 5. Perl
    print "Hello world\n";

    View Slide

  19. 6. JavaScript
    console.log("Hello world")

    View Slide

  20. 7. Java
    public class Hello {
    public static void main(String[] args) {
    System.out.println("Hello world");
    }
    }

    View Slide

  21. 8. C
    #include
    int main() {
    printf("Hello world\n");
    }

    View Slide

  22. 9. C++
    #include
    int main() {
    std::cout << "Hello world\n";
    }

    View Slide

  23. 10. Minecraft (Python)
    from mcpi.minecraft import Minecraft
    mc = Minecraft.create()
    mc.postToChat("Hello world")

    View Slide

  24. 10. Minecraft (Python)

    View Slide

  25. 10.5 Sense HAT Emulator (Python)
    from sense_emu import SenseHat
    sense = SenseHat()
    sense.show_message("Hello world")

    View Slide

  26. 10.5 Sense HAT Emulator (Python)

    View Slide

  27. Langauge Print command Compiled? Implementation
    Scratch say Interpreted Smalltalk (V1) /
    ActionScript (V2)
    Python print Interpreted C (and others, including
    Python)
    Ruby puts Interpreted C
    JavaScript console.log Interpreted C++
    Bash echo Interpreted C
    Perl print Interpreted C
    Java System.out.println Compiled C++ (JVM)
    C printf Compiled C / C++
    C++ cout Compiled C / C++

    View Slide

  28. Say "Hello world" back

    Find my article "10 Hello world programs for your Raspberry
    Pi" on opensource.com

    Find my GitHub repository of these programs and more at
    github.com/bennuttall/hello-world-raspberry-pi

    Contribute your own programs and suggestions!

    View Slide

  29. print("Goodbye world")
    Thank you
    @ben_nuttall

    View Slide