Slide 1

Slide 1 text

Hello world A brief history of programming @ben_nuttall

Slide 2

Slide 2 text

Hello world A brief and selective history of programming @ben_nuttall

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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”

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

10 Hello world programs for your Raspberry Pi

Slide 13

Slide 13 text

1. Python print(“Hello world”)

Slide 14

Slide 14 text

2. Scratch

Slide 15

Slide 15 text

3. Ruby puts "Hello world"

Slide 16

Slide 16 text

3.5 Sonic Pi puts "Hello world"

Slide 17

Slide 17 text

4. Bash echo "Hello world"

Slide 18

Slide 18 text

5. Perl print "Hello world\n";

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

10. Minecraft (Python)

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

10.5 Sense HAT Emulator (Python)

Slide 27

Slide 27 text

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++

Slide 28

Slide 28 text

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!

Slide 29

Slide 29 text

print("Goodbye world") Thank you @ben_nuttall