SlideShare ist ein Scribd-Unternehmen logo
1 von 33
0b101000 years of computing: a
personal timeline
1980’s – decade 0
Paul Brebner
Instaclustr Technology Evangelist
https://www.instaclustr.com/paul-brebner/
1980’s
1980’s
1980’s
1980’s
1980’s
“Mr. Gorbachev, Tear Down This Wall!”
1980’s
“Mr. Gorbachev, Tear Down This Wall!”
1980’s computers
• 1979
• Mini-scamp microprocessor, $200
• 256 Bytes RAM, 1MHz, Switches/LEDs
• Programmed for simple music synthesis
1980’s computers
1980’s computers
• DEC VAX 11/780, TTL (lots of chips and
boards)
• 1MB RAM, 5MHz
• $500,000
• VAX VMS Operating System
• “Mailboxes” for inter-process
communication
• Naturally we wrote a multiplayer game
• Linux Pipes are still around!
• https://opensource.com/article/19/4/inte
rprocess-communication-linux-channels
1980’s software
• Fortran? No thanks, skipped 1st year computing
and learnt Pascal instead, successor to Algol
• Strongly typed, multiple built in data types,
functions and procedures
• Using a time-shared VAX 11/780 was painful
during the day
• Had to book ½ hour slots on limited number of
terminals
• Typing and program execution was sluggish
• Debugging typically done with paper printouts
• Real computer scientists worked from 11pm until
breakfast
1980’s software - LISP
• Artificial Intelligence looked promising and possible
• 1980’s AI Bubble, followed by the 1990s AI Winter
• LISP AI programming language
• Dynamic typing, garbage collection, functions are first-class objects, lists and
s-expressions
• LISP = Lost in the Sea of Parenthesis/Lots of Insidious Superfluous
Parentheses
1980’s cold war
•KGB Agent: The American’s are
programming Star Wars in LISP!
•KGB General: How do you know?
•KGB Agent: I stole the final page of a
printout - See for yourself!
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1980’s software - Prolog
• Infinitely better AI Language
• Declarative Logic Programming language
• First order logic (mostly)
• Just state facts, write some rules, and ask a question (a goal)
• Prolog uses magic - theorem proving (resolution, unification) and
backtracking - to find solution(s).
Luke Skywalker, Princess Leia, and Han Solo
are all linked – but do you remember how?
Prolog example
fatherOf(anakin, luke).
motherOf(padme, luke).
fatherOf(anakin, leia).
motherOf(padme, leia).
fatherOf(han, ben).
motherOf(leia, ben).
siblingOf(X, Y) :- fatherOf(F, X), fatherOf(F, Y).
siblingOf(X, Y) :- motherOf(M, X), motherOf(M, Y).
Query
siblingOf(X, Y)?
X = Y, Y = luke
X = luke, Y = leia
X = Y, Y = ben
X = leia, Y = luke
Whoops, someone can’t be their own sibling!
Prolog example, correct
fatherOf(anakin, luke).
motherOf(padme, luke).
fatherOf(anakin, leia).
motherOf(padme, leia).
fatherOf(han, ben).
motherOf(leia, ben).
siblingOf(X, Y) :- fatherOf(F, X), fatherOf(F, Y), X = Y.
siblingOf(X, Y) :- motherOf(M, X), motherOf(M, Y), X = Y.
Query
siblingOf(X, Y)?
X = luke, Y = leia
X = leia, Y = luke
Lots of online prolog interpreters and examples to try.
Parallels between Prolog and Graph Databases.
First order machine learning
• Autonomous learning in a robot blocks
world
• What I actually spent the 80’s doing
(Waikato and then UNSW)
• Can a machine learn
• Prolog programs (blocks world theories)?
• From positive and negative examples?
• Autonomously? Choosing what it wants to
learn and what actions to perform next?
• Yes, but need sophisticated algorithms,
lots of examples, and lots of
CPU/memory
Drawn with
MacDraw
Induction, opposite of Deduction
• Given (lots of) Positive Examples (things that are true):
siblingOf(luke, leia). siblingOf(leia, luke).
• And (lots of) Negative Examples (things that are false):
siblingOf(luke, luke). siblingOf(leia, leia), siblingOf(ben, ben). siblingOf(luke, ben).
etc
• And the background facts:
fatherOf(anakin, luke). motherOf(padme, luke).
fatherOf(anakin, leia). motherOf(padme, leia).
fatherOf(han, ben). motherOf(leia, ben).
• Learn the rules:
siblingOf(X, Y) :- fatherOf(F, X), fatherOf(F, Y), X = Y.
siblingOf(X, Y) :- motherOf(M, X), motherOf(M, Y), X = Y.
Prolog beyond the 1980’s?
• Did Prolog die out? Not entirely…
• I used declarative programming techniques for:
• Optus Mailbox system protocol
• specification and automatic generation of executable code
• Automated testing for UNIX resource management system
• declarative specification of correct behavior
• machine learning techniques to generate optimal test cases
• Declarative programming ideas ended up as Model Driven Development
(MDD)
• E.g. Automated performance modelling from APM data
• https://www.researchgate.net/publication/221554803_Performance_modeling_for_
service_oriented_architectures
• https://dl.acm.org/doi/10.1145/2851553.2851560
1980’s computers
• 2nd homemade and designed computer
• 1984, $2,000 64KB RAM, Motorola 6809 (8MHz) microprocessor, 2 x 8” floppy
disk drives
• Shared-memory multi-processor architecture (2KB shared fast memory)
But we had a problem
• In the 1980’s software wasn’t portable
• Locked in with Hardware, Operating Systems, and Programming Languages.
• And we needed drivers, file system, operating system, compilers, interpreters,
utilities, applications, etc, for our 6809 computer
• We wrote everything in BPCL “Basic Combined Programming Language”
• Very portable, 2 part compiler with an intermediate O-code language (Sound familiar? Java)
• BCPL influenced C and Java
• James Gosling new some BCPL ”jokes at ApacheCon!
• Some BCPL jokes:
• “Because BCPL led to B which led to C, the successor of C should have been P and not C++”
• “BPCL was useful for only one thing, to write the BCPL compiler”
• “BCPL is typesafe (there’s only one type)”
• We used the 6809 machine as a prototype digital music synthesizer
• but the main “benefit” was the bootstrapping experience (once is enough)
1980’s computers - continued
1980’s computers – Apple Mac (128k), IBM
PC
Guess which one had to be booked and
almost melted?!
1980’s computers – Commodore Amiga
(1987)
• 512KB RAM
• $1,000
• 880KB Floppy disks
(programs came on dozens
of them)
• Colour graphics, hardware
sprites, high quality audio
chip
• AmigaDOS - written in
BCPL!
What else? Late 80’s
• The Internet
• in the 1980’s NZ&Oz were only connected by
intermittent store and forward dial-up connections
• 1st permanent TCP/IP connection in 1989
• Email, file transfer etc (24-48 hour turn around)
• brebs©cheops@munnari.oz
• My email from 2nd ½ of 1980s, “oz” was the original
domain for Australian store and forward internet
messaging system
• Usenet (distributed peer to peer newsgroups),
originally worked with dial-up bulletin boards
before widespread internet connectivity
What else? UNIX
• brebs©cheops@munnari.oz
• ”cheops” was a Pyramid Technology
supermini computer at UNSW
• New RISC architecture
• 100 instructions c.f. 300 for VAX
• Less clock cycles per instruction
• 64 registers, 48 were top of program stack
• 4 CPUS, 25MIPS cf VAX 0.5MIPS
• UNIX (UNIX Wars)
• Pyramid ran both UNIXes: BSD and System V!
• Eventual portability, POSIX -> Linux
The End (of the 80’s)

Weitere ähnliche Inhalte

Mehr von Paul Brebner

Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...Paul Brebner
 
Grid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and PotentialGrid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and PotentialPaul Brebner
 
Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...Paul Brebner
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Paul Brebner
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Paul Brebner
 
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...Paul Brebner
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Paul Brebner
 
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...Paul Brebner
 
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...Paul Brebner
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...Paul Brebner
 
How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...Paul Brebner
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache KafkaPaul Brebner
 
Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...Paul Brebner
 
Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Paul Brebner
 
Introduction to programming class 13
Introduction to programming   class 13Introduction to programming   class 13
Introduction to programming class 13Paul Brebner
 
Introduction to programming class 12
Introduction to programming   class 12Introduction to programming   class 12
Introduction to programming class 12Paul Brebner
 
Introduction to programming class 11 exercises
Introduction to programming   class 11 exercisesIntroduction to programming   class 11 exercises
Introduction to programming class 11 exercisesPaul Brebner
 
Introduction to programming - class 11
Introduction to programming - class 11Introduction to programming - class 11
Introduction to programming - class 11Paul Brebner
 
Introduction to programming - class 10
Introduction to programming - class 10Introduction to programming - class 10
Introduction to programming - class 10Paul Brebner
 
Introduction to programming - class 8
Introduction to programming - class 8Introduction to programming - class 8
Introduction to programming - class 8Paul Brebner
 

Mehr von Paul Brebner (20)

Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
Building a real-time data processing pipeline using Apache Kafka, Kafka Conne...
 
Grid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and PotentialGrid Middleware – Principles, Practice and Potential
Grid Middleware – Principles, Practice and Potential
 
Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...Grid middleware is easy to install, configure, secure, debug and manage acros...
Grid middleware is easy to install, configure, secure, debug and manage acros...
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
 
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
Melbourne Big Data Meetup Talk: Scaling a Real-Time Anomaly Detection Applica...
 
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
Massively Scalable Real-time Geospatial Data Processing with Apache Kafka and...
 
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
ApacheCon Berlin 2019: Kongo:Building a Scalable Streaming IoT Application us...
 
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...ApacheCon2019 Talk: Kafka, Cassandra and Kubernetesat Scale – Real-time Ano...
ApacheCon2019 Talk: Kafka, Cassandra and Kubernetes at Scale – Real-time Ano...
 
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
 
How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...How to Improve the Observability of Apache Cassandra and Kafka applications...
How to Improve the Observability of Apache Cassandra and Kafka applications...
 
A visual introduction to Apache Kafka
A visual introduction to Apache KafkaA visual introduction to Apache Kafka
A visual introduction to Apache Kafka
 
Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...Automatic Performance Modelling from Application Performance Management (APM)...
Automatic Performance Modelling from Application Performance Management (APM)...
 
Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...
 
Introduction to programming class 13
Introduction to programming   class 13Introduction to programming   class 13
Introduction to programming class 13
 
Introduction to programming class 12
Introduction to programming   class 12Introduction to programming   class 12
Introduction to programming class 12
 
Introduction to programming class 11 exercises
Introduction to programming   class 11 exercisesIntroduction to programming   class 11 exercises
Introduction to programming class 11 exercises
 
Introduction to programming - class 11
Introduction to programming - class 11Introduction to programming - class 11
Introduction to programming - class 11
 
Introduction to programming - class 10
Introduction to programming - class 10Introduction to programming - class 10
Introduction to programming - class 10
 
Introduction to programming - class 8
Introduction to programming - class 8Introduction to programming - class 8
Introduction to programming - class 8
 

0b101000 years of computing: a personal timeline - decade "0", the 1980's