Let's get back to the time when languages could be defined with just 6 reserved keywords or none at all, and learn how the ideas that John McCarthy and Alan Key envisioned in Lisp and Smalltalk are still alive and kicking in our serverless and message-driven world. No matter the language you are using now, and how much you are an OOP or functional guy, you'll learn how to develop better serverless applications and build extensible and decoupled workflows.
The future will be Serverless (FrontConf Munich 2017)Luciano Mammino
Similar to Alessandro Confetti - Oop vs functional: stop the fight and start building message driven serverless applications - Codemotion Berlin 2018 (20)
Unraveling Multimodality with Large Language Models.pdf
Alessandro Confetti - Oop vs functional: stop the fight and start building message driven serverless applications - Codemotion Berlin 2018
1. OOP VS FUNCTIONAL:
STOP THE FIGHT AND START BUILDING
MESSAGE DRIVEN
SERVELESS APPLICATIONS
November 20th 2018 – Codemotion, Berlin
A l e s s a n d r o C o n f e t t i
8. LISP was the first homoiconic
programming language
8
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
9. 9
XKCD - Permanent link to this comic
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
10. …LISP has jokingly been described as “the most
intelligent way to misuse a computer”. I think that
description a great compliment because it transmits
the full flavour of liberation: it has assisted a
number of our most gifted fellow humans in thinking
previously impossible thoughts…
10
Edsger W. Dijkstra,1972 Turing Award Lecture
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
11. 11
Alan Kay [1940-present]
(image by Marcin Wichary from San Francisco, U.S.A. - Alan Kay, CC BY 2.0)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
13. The problem with object-oriented languages
is they've got all this implicit environment that
they carry around with them. You wanted a
banana but what you got was a gorilla
holding the banana and the entire jungle.
13
Joe Amstrong, Coders at Work (ISBN 978-1430219484)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
14. Transcript show: 'Hello, world!'.
14
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
15. I'm sorry that I long ago coined
the term "objects" for this topic
because it gets many people
to focus on the lesser idea.
The big idea is "messaging"
15
Alan Kay, 1998 Squeak-dev mailing list
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
19. 19
LISP SMALLTALK
Focus on data structures Focus on messaging
Functions are used to organise and compose
transformation of data structures
Classes are used to organise behaviour and
object to persist data
Reflection through homoiconicity Reflection through meta-models
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
20. SERVERLESS COMPUTING…
…the most intelligent way to misuse
a bunch of computers
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
21. “The Internet would not have happened nearly as
soon as it did except for the fact that John initiated
the development of time-sharing systems. We keep
inventing new names for time-sharing. It came to be
called servers.... Now we call it cloud computing.
That is still just time-sharing. John started it."
21
Lester Earnest, October 28, 2011 Los Anagels Times
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
22. I HAVE A LONG STORY OF COMPUTER MISUSE…
22
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
CPU 6502 @ 1.023MHz
Memory 64 KB RAM (up to 1 MB)
NATURAL LANGUAGE PARSER
80s
CPU 68LC040 @ 25 MHz
Memory 4 MB RAM (up to 36 MB)
CODING IN SMALLTALK
90s
CPU Core i7 @ 2,7 GHz
Memory 16 GB RAM)
RUNNING A FULL K8S
00s
23. AWS LAMBDA SERVERLESS COMPUTING
23
Image from AWS Lambda official page
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
24. Nitro (custom kvm on top of custom asisc)
DO YOU STILL THINK OPTIMISATION IS THE KEY?
24
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
Node
Pod
JVM
Node
YOUR CODE IS HERE!!!
Fabio Tiriticco Akka Cluster versus Kubernetes: Clustering Solutions Showdown
26. 26
SERVERLESS
Send
meaningful data structure
to topics & queues
Use namespaces to group
your data and functions
Move from monitoring to observability
(notify what’s going on
or what you expect to happen next
with meaningful messages)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
LISP SMALLTALK
Focus on data structures Focus on messaging
Functions are used to organise
and compose transformation of
data structures
Classes are used to organise
behaviour and object to persist
data
Reflection through
homoiconicity
Reflection through meta-
models
27. “The key in making great and growable systems is much
more to design how its modules communicate rather
than what their internal properties and behaviors should be.
Think of the internet -- to live, it (a) has to allow many
different kinds of ideas and realizations that are beyond
any single standard and (b) to allow varying degrees of
safe interoperability between these ideas.”
27
Alan Kay, 1998 Squeak-dev mailing list
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
29. WE ARE HIRING IN ITALY!
i n f o - i t @ t h o u g h t w o r k s . c o m
TECNOLOGY RADAR VOL19
https://info.thoughtworks.com/technology-radar-subscription.html