$30 off During Our Annual Pro Sale. View Details »

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

More Decks by Ben Nuttall

Other Decks in Programming


  1. Hello world A brief history of programming @ben_nuttall

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

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

    programming @ben_nuttall
  4. Programming language A formal definition of a set of rules

    for providing instructions to a computer. ~ Ben Nuttall, 2018
  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
  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
  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
  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
  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
  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”
  11. "Hello world" programs • The first program you write outputs

    the text "Hello world"
  12. 10 Hello world programs for your Raspberry Pi

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

  14. 2. Scratch

  15. 3. Ruby puts "Hello world"

  16. 3.5 Sonic Pi puts "Hello world"

  17. 4. Bash echo "Hello world"

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

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

  20. 7. Java public class Hello { public static void main(String[]

    args) { System.out.println("Hello world"); } }
  21. 8. C #include <stdio.h> int main() { printf("Hello world\n"); }

  22. 9. C++ #include <iostream> int main() { std::cout << "Hello

    world\n"; }
  23. 10. Minecraft (Python) from mcpi.minecraft import Minecraft mc = Minecraft.create()

    mc.postToChat("Hello world")
  24. 10. Minecraft (Python)

  25. 10.5 Sense HAT Emulator (Python) from sense_emu import SenseHat sense

    = SenseHat() sense.show_message("Hello world")
  26. 10.5 Sense HAT Emulator (Python)

  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++
  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!
  29. print("Goodbye world") Thank you @ben_nuttall