SlideShare a Scribd company logo
1 of 29
Download to read offline
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
Datalake Pipeline
Amazon

Athena
S3
Lambda
Batch
data_lake
EMR
data_lake
Amazon ES
SNS
email
AWS
Lambda
Lambda
load_data
SNS
load_data
Lambda
load_athena
Batch
data_lake
SNS

load_athena
S3
01_raw_data
S3
02_type_data
03_entities
SNS
info
SNS

error
metadata sql tableparquet files
S3

03_entities
html report
Upload
event
csv file
upload
S3
01_raw_data
csv files
S3
01_raw_data
metadata
+
csv files S3
02_type_data
03_entities
parquet files
S3
01_raw_data
metadata
ECR
data_lake
S3
artefacts
scripts
docker image
docker image docker image
S3
03_entities
Tableau
Redash
Metadata
validation/fix
(optional)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
3
John McCharty [1927-2011]

(image by "null0" CC BY-SA 2.0)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
LISP
4
(image By Lisp CC BY-SA 4.0)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
5
XKCD - Permanent link to this comic
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
(print "Hello world")
6
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
LIS(t) P(rocessor)
7
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
LISP was the first homoiconic
programming language
8
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
9
XKCD - Permanent link to this comic
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
…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
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
SMALLTALK
12
(Byte Magazine Vol. 6 No. 8 cover, August 1981)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
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
Transcript show: 'Hello, world!'.
14
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
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
Smalltalk
is about making
small talk in a kind way
16
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
17
XKCD - Permanent link to this comic
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
Smalltalk #doesNotUnderstand 

is sent first to the receiver
18
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
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
SERVERLESS COMPUTING…
…the most intelligent way to misuse 

a bunch of computers
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
“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
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
AWS LAMBDA SERVERLESS COMPUTING
23
Image from AWS Lambda official page
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
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
Datalake Pipeline
Amazon

Athena
S3
Lambda
Batch
data_lake
EMR
data_lake
Amazon ES
SNS
email
AWS
Lambda
Lambda
load_data
SNS
load_data
Lambda
load_athena
Batch
data_lake
SNS
S3
01_raw_data
S3
02_type_data
03_entities
SNS
info
SNS

error
metadata sql tableparquet files
S3

03_entities
html report
Upload
event
csv file
upload
S3
01_raw_data
csv files
S3
01_raw_data
metadata
+
csv files S3
02_type_data
03_entities
parquet files
S3
01_raw_data
metadata
ECR
data_lake
S3
artefacts
scripts
docker image
docker image docker image
S3
03_entities
Tableau
Redash
Metadata
validation/fix
(optional)
Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
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
“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
$ tail -f questions
28
Alessandro Confetti
aconfet@thoughtworks.com
twitter @zigolab 

blog http://blog.zigolab.it
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

More Related Content

Similar to Alessandro Confetti - Oop vs functional: stop the fight and start building message driven serverless applications - Codemotion Berlin 2018

20141021 AWS Cloud Taekwon - Big Data on AWS
20141021 AWS Cloud Taekwon - Big Data on AWS20141021 AWS Cloud Taekwon - Big Data on AWS
20141021 AWS Cloud Taekwon - Big Data on AWSAmazon Web Services Korea
 
LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話LINE Corporation
 
Implementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social GamesImplementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social GamesSocial Point
 
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...Codemotion
 
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)Amazon Web Services
 
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...Codemotion Tel Aviv
 
Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...Alessandro Confetti
 
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...Codemotion
 
OpenChain Automation Case Study - September to December 2021
OpenChain Automation Case Study - September to December 2021OpenChain Automation Case Study - September to December 2021
OpenChain Automation Case Study - September to December 2021Shane Coughlan
 
Flutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and Flutter
Flutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and FlutterFlutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and Flutter
Flutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and FlutterChris Swan
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateMatthew Farina
 
Making it easy to work with data
Making it easy to work with dataMaking it easy to work with data
Making it easy to work with dataCharles Smith
 
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호Amazon Web Services Korea
 
A Semantic Multimedia Web (Part 3)
A Semantic Multimedia Web (Part 3)A Semantic Multimedia Web (Part 3)
A Semantic Multimedia Web (Part 3)Raphael Troncy
 
Serverless Applications on AWS
Serverless Applications on AWSServerless Applications on AWS
Serverless Applications on AWSDean Bryen
 
Spark Streaming Intro @KTech
Spark Streaming Intro @KTechSpark Streaming Intro @KTech
Spark Streaming Intro @KTechOleg Korolenko
 
Linked Data applications for BIM
Linked Data applications for BIMLinked Data applications for BIM
Linked Data applications for BIMAna Roxin
 
The future will be Serverless (FrontConf Munich 2017)
The future will be Serverless (FrontConf Munich 2017)The future will be Serverless (FrontConf Munich 2017)
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)

20141021 AWS Cloud Taekwon - Big Data on AWS
20141021 AWS Cloud Taekwon - Big Data on AWS20141021 AWS Cloud Taekwon - Big Data on AWS
20141021 AWS Cloud Taekwon - Big Data on AWS
 
LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話
 
Encode Club Hackathon
Encode Club Hackathon  Encode Club Hackathon
Encode Club Hackathon
 
Implementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social GamesImplementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social Games
 
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
 
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
AWS re:Invent 2016: Big Data Mini Con State of the Union (BDM205)
 
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
 
Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...
 
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...
 
OpenChain Automation Case Study - September to December 2021
OpenChain Automation Case Study - September to December 2021OpenChain Automation Case Study - September to December 2021
OpenChain Automation Case Study - September to December 2021
 
Flutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and Flutter
Flutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and FlutterFlutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and Flutter
Flutter SV Meetup Oct 2022 - End to end encrypted IoT with Dart and Flutter
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 Update
 
Making it easy to work with data
Making it easy to work with dataMaking it easy to work with data
Making it easy to work with data
 
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
AWS re:Invent re:Cap - 데이터 분석: Amazon EC2 C4 Instance + Amazon EBS - 김일호
 
A Semantic Multimedia Web (Part 3)
A Semantic Multimedia Web (Part 3)A Semantic Multimedia Web (Part 3)
A Semantic Multimedia Web (Part 3)
 
Serverless Apps on AWS
Serverless Apps on AWS Serverless Apps on AWS
Serverless Apps on AWS
 
Serverless Applications on AWS
Serverless Applications on AWSServerless Applications on AWS
Serverless Applications on AWS
 
Spark Streaming Intro @KTech
Spark Streaming Intro @KTechSpark Streaming Intro @KTech
Spark Streaming Intro @KTech
 
Linked Data applications for BIM
Linked Data applications for BIMLinked Data applications for BIM
Linked Data applications for BIM
 
The future will be Serverless (FrontConf Munich 2017)
The future will be Serverless (FrontConf Munich 2017)The future will be Serverless (FrontConf Munich 2017)
The future will be Serverless (FrontConf Munich 2017)
 

More from Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Recently uploaded

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
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
  • 2. Datalake Pipeline Amazon
 Athena S3 Lambda Batch data_lake EMR data_lake Amazon ES SNS email AWS Lambda Lambda load_data SNS load_data Lambda load_athena Batch data_lake SNS
 load_athena S3 01_raw_data S3 02_type_data 03_entities SNS info SNS
 error metadata sql tableparquet files S3
 03_entities html report Upload event csv file upload S3 01_raw_data csv files S3 01_raw_data metadata + csv files S3 02_type_data 03_entities parquet files S3 01_raw_data metadata ECR data_lake S3 artefacts scripts docker image docker image docker image S3 03_entities Tableau Redash Metadata validation/fix (optional) Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 3. 3 John McCharty [1927-2011]
 (image by "null0" CC BY-SA 2.0) Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 4. LISP 4 (image By Lisp CC BY-SA 4.0) Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 5. 5 XKCD - Permanent link to this comic Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 6. (print "Hello world") 6 Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 7. LIS(t) P(rocessor) 7 Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 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
  • 12. SMALLTALK 12 (Byte Magazine Vol. 6 No. 8 cover, August 1981) 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
  • 16. Smalltalk is about making small talk in a kind way 16 Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 17. 17 XKCD - Permanent link to this comic Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 18. Smalltalk #doesNotUnderstand 
 is sent first to the receiver 18 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
  • 25. Datalake Pipeline Amazon
 Athena S3 Lambda Batch data_lake EMR data_lake Amazon ES SNS email AWS Lambda Lambda load_data SNS load_data Lambda load_athena Batch data_lake SNS S3 01_raw_data S3 02_type_data 03_entities SNS info SNS
 error metadata sql tableparquet files S3
 03_entities html report Upload event csv file upload S3 01_raw_data csv files S3 01_raw_data metadata + csv files S3 02_type_data 03_entities parquet files S3 01_raw_data metadata ECR data_lake S3 artefacts scripts docker image docker image docker image S3 03_entities Tableau Redash Metadata validation/fix (optional) Alessandro Confetti - November 20th 2018 – Codemotion, Berlin
  • 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
  • 28. $ tail -f questions 28 Alessandro Confetti aconfet@thoughtworks.com twitter @zigolab 
 blog http://blog.zigolab.it
  • 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