Press "Enter" to skip to content

GOTO 2015 • One Hacker Way • Erik Meijer

00:00:14what a no didn’t want to say is that

00:00:18programming languages are my substitute

00:00:20girlfriends yeah it’s easier to get a

00:00:23relationship with the programming

00:00:25language then with a yeah but you have

00:00:28to take her kind of your dating course

00:00:30alright since I’m going to maybe insult

00:00:35some people and you know maybe I step on

00:00:38some toes I just want to say Kelly oh

00:00:41and this is just my personal opinion

00:00:44and also I want you to you know to think

00:00:46about this and then make your own

00:00:49decisions okay

00:00:50all I want to do is make you think and

00:00:53ultimately you decide for yourself all


00:01:00of course you expect a doc where I’m

00:01:05going to Cali or go and scream and curse

00:01:09and talk about that agile and scrum are

00:01:12cancer that needs to be eliminated from

00:01:14this industry right that’s what you all

00:01:16signed up for you’re all kind of have

00:01:18your beers your snacks ready and I have

00:01:23to say this dork is not going to be like

00:01:26that and and what I want to do is I want

00:01:30to take you back to a little bit of some

00:01:33recent history and in 2013 I left

00:01:39Microsoft this was when Ballmer was

00:01:42still kind of er in charge now he’s

00:01:45doing some basketball team like that’s

00:01:47way better for him

00:01:52but I left Microsoft with the goal to

00:01:56make the world a synchronous and

00:01:58reactive so I found it this small

00:02:02company applied to allottee and that was

00:02:04trying to do that and then in June and

00:02:07the first customer one of the first

00:02:11customers I had was Facebook where I

00:02:14worked with them on a language called

00:02:16hack hack is a version of PHP that looks

00:02:20like PHP but under the covers it’s

00:02:22really Oh camel okay Facebook is all

00:02:25written in hack but really it’s written

00:02:29in Okemah with hex index with PHP syntax

00:02:32so functional programming if you’re not

00:02:34doing functional programming yet you are

00:02:36already behind so who here is not doing

00:02:39functional programming okay you can go

00:02:41home now and and maybe you know you can

00:02:45do some MOOC or start some course but

00:02:47you know in few years you will be

00:02:49obsolete and and then in slightly later

00:02:55that year I started to work with Netflix

00:02:58on Eric’s Java and I guess that they’re

00:03:03sick this thing has been run a runaway

00:03:07success I think a lot of people are

00:03:09using it that has gone beyond my wildest


00:03:13and let’s look at 24 13 14 well at

00:03:20Microsoft I did programming languages as

00:03:22a hobby but turned out there with my

00:03:25startup you know it became you know like

00:03:28a way to make money so in in April 2014

00:03:31I worked with Google on dart and there I

00:03:36helped dart to get also support for

00:03:39asynchronous programming async await and

00:03:43dart already had support for streams and

00:03:47now we put our the API in API for

00:03:49streams and now we put that in the

00:03:51language as well so dart is one of the

00:03:54few languages that has kind of you know

00:03:56complete support for synchronous

00:03:59iterators async await and streams all

00:04:03built and the language

00:04:04if you haven’t looked at dart yet I

00:04:06would really say give it a try

00:04:09just like you should get a give heck a


00:04:12and then in September 2014 I gave the

00:04:16heck I’ll talk that you are all

00:04:19expecting to see but that you don’t get

00:04:22but that talk was my interpretation of

00:04:26what I saw and Silicon Valley I moved

00:04:29from the Pacific Northwest to Silicon

00:04:32Valley and I worked with a lot of the

00:04:35internet companies there and I was

00:04:37really impressed by the way they develop

00:04:41software I was really impressed by the

00:04:43way that they look at software and

00:04:46that’s what I wrote down and and I will

00:04:49talk a lot more about this in the rest

00:04:51of the talk and and then in October last

00:04:55year I added the FP 101 X MOOC where I

00:05:00tried to teach the world about

00:05:02functional programming the MOOC starts

00:05:05again October 15 the second edition so

00:05:07and don’t despair if you put up your

00:05:11hand and not doing functional

00:05:14programming and because there’s your

00:05:17chance to learn functional programming

00:05:20all right and then this astir struck on

00:05:25christmas eve 2014 i my leg was swollen

00:05:30my left leg was swollen and when I put

00:05:33on my PJs so I told my wife I said I

00:05:35don’t trust this you know my leg is all

00:05:37swollen so we went to the Stanford

00:05:39emergency room and and of course you

00:05:44know it’s Christmas Eve so you wait for

00:05:47a few hours and then the doctors can

00:05:50talk to me I said ok it’s ok you know

00:05:53probably you

00:05:54you ate curry or some salt foods you can

00:05:57go home and so I went home and I went to

00:06:02bed it’s like around 4 a.m. in the

00:06:04morning and then at 6 a.m. I got a phone

00:06:08call and I still have that phone call

00:06:10and right here on my saved messages in

00:06:15my voicemail box

00:06:17and the doctor said sir when we did your

00:06:22blood tests the white blood cell counts

00:06:25were a little bit out of whack and then

00:06:28I asked him you know what does that mean

00:06:30and you said well sir if you want to

00:06:33have Christmas with your family then

00:06:35it’s okay you can come in tomorrow so I

00:06:38did a quick google search high white

00:06:41blood cell count and that’s not good I

00:06:44can tell you it’s not good okay so what

00:06:48I did we took the car went back to

00:06:51Stanford and at 8:00 a.m. I was in the

00:06:55oncology section and I was diagnosed

00:06:57with this thing called CML chronic

00:07:00myeloid leukemia it sounds crazy but

00:07:05actually if you want to have some form

00:07:08of cancer this is what you want to pick

00:07:11it’s really what you want to pick so

00:07:13what happens and this is the Cliff Notes

00:07:15version and what happens is that you

00:07:18know you’re all our DNA kind of

00:07:21constantly gets kind of damaged and then

00:07:23your body tries to repair it and

00:07:26sometimes that repair can go wrong and

00:07:28in this case two parts of a chromosome

00:07:32kind of switch and make sure they get

00:07:34glued back together in the wrong place

00:07:36and again this is cliff notes I’m not a

00:07:39medical person so if there’s somebody

00:07:41here with medical background they will

00:07:44probably laugh but you know just trying

00:07:46to explain this in computer science

00:07:48terms so what happens it’s it’s like you

00:07:52know first thing first thing of your DNA

00:07:54and what happens you know the DNA makes

00:07:58proteins and now that this program is

00:08:01wrong so they just switch to statements

00:08:04around and it creates a protein that

00:08:07your body doesn’t recognize and that’s

00:08:09going to focus everything up well the

00:08:13nice thing about science is that they

00:08:16came up with a medication that binds to

00:08:18this particular protein it’s like an

00:08:21exception handler it catches the

00:08:23exception and that’s it so every day I

00:08:27take this pill and if I would have to

00:08:30pay it without

00:08:30insurance I would be broke so my life I

00:08:33can now can count how expensive my life

00:08:37is and it’s like a few hundred dollars a

00:08:39day for this bill but I’m happy that it

00:08:42exists and so as I said that was that

00:08:45but if that was the only story and life

00:08:49would be good right it’s just okay you

00:08:52know my DNA got messed up I pop a pill

00:08:55every day life goes on but of course

00:08:58being Eric Meyer things are never simple

00:09:00in my life and instead a couple of

00:09:06things went wrong so this was me around

00:09:09New Year’s Eve and you know I was close

00:09:14to dying because what happened is that I

00:09:17got some internal bleeding’s and and one

00:09:21of the effects of leukemia is that your

00:09:24spleen this is the thing when you’re

00:09:26running you know you feel pain in your

00:09:28left side that’s your spleen your spleen

00:09:31gets enlarged and when your spleen gets

00:09:33enlarged it takes up all the space in

00:09:35your abdominal section and so I got some

00:09:40bleeding’s for for whatever reason and

00:09:43and since there was less space the blood

00:09:48could not go anywhere so my kidneys were

00:09:50kind of pushed out I don’t know like 50

00:09:53centimeters from where they were

00:09:55supposed to be so I got like you know I

00:09:58don’t know what the doctors call it I

00:10:00could get any injury and then they’d

00:10:04have to open me up and if you’re curious

00:10:06I can show you I have like a big yo

00:10:12wound here that everything that’s soft

00:10:16in the belly they kind of opened up to

00:10:17kind of go in there I spent five days in

00:10:20intensive care

00:10:22I was nearly dead I could if I have

00:10:25wanted I could have just floated away

00:10:27and got you know just given up but I was

00:10:30fighting because you know my my journey

00:10:34wasn’t over I had to kind of you know

00:10:36still eliminate scrum and agile from

00:10:39this world so how

00:10:40I mean

00:10:47how could I die all right but anyway it

00:10:50was it was pretty pretty horrible and I

00:10:53can tell you and – wrong one of the

00:10:55things that people that happens to

00:10:59people when they are in intensive care

00:11:01they literally go crazy there’s a

00:11:03medical term for that and I can

00:11:06understand that here it’s it’s it’s a

00:11:09bizarre experience I don’t know if

00:11:12anybody here has ever been in intensive

00:11:14care and they probably know what I’m

00:11:17talking about and alright so that was

00:11:20the end of 2014 and not the kind of

00:11:24Christmas vacation I was expecting but

00:11:26hey you know I’m still here

00:11:28so early January I was released from the


00:11:32because of the kidney moving around all

00:11:37the nerves that kind of traveled to my

00:11:41lack were displaced and and kind of

00:11:44you’re a little bit out of whack so I

00:11:47was I couldn’t walk anymore my whole

00:11:49right leg was you know I couldn’t move

00:11:52it so I had to learn to walk again

00:11:54because they I had a breathing tube and

00:11:56for a couple of days I lost my voice I

00:11:59couldn’t even speak I was so they kind

00:12:03of went in with the syringe and kind of

00:12:05injected kind of straight through my

00:12:06throat some stuff to kind of make it

00:12:08work so all kind of fun things you know

00:12:12the body is it’s kind of a remarkable

00:12:15machine and so that was fun and then of

00:12:20course here when something like that

00:12:21happens you start to think about what is

00:12:24the meaning of life what am i doing on

00:12:27this planet blah blah blah blah blah and

00:12:30and it took me literally six months six

00:12:35months to get back to normal and and it

00:12:39was it was quite a big journey but as I

00:12:43said you know and when something like

00:12:45this happens to you and you really start

00:12:48to think what do I want to do with my

00:12:50life and and then in July Mark


00:12:57asked me about our ex and how good that

00:13:04could help solve you know giving people

00:13:06that are on 2g a better experience a

00:13:09better Facebook experience and now you

00:13:11may have seen the kind of you know the

00:13:13the article by Mark Zuckerberg

00:13:15and Bono about giving everybody access

00:13:19to the Internet well that was that

00:13:21that’s kind of you know appealed to me

00:13:23because what I wanted to do is you know

00:13:25like after this whole event can I make

00:13:29my technology kind of do something for

00:13:32real people okay so it’s great to kind

00:13:35of talk about rx and programming

00:13:37languages for other geeks but you know

00:13:41what I wanted to do is really use what I

00:13:45do for normal people for the world to do

00:13:47good for the world that’s kind of what I

00:13:50came up with after I reflected about

00:13:52life and when Mark Zuckerberg asked me

00:13:56that I said well that sounds really good

00:14:00it sounds like a nice combination of my

00:14:03technical stuff and a real opportunity

00:14:05to help people in the real world you’ve

00:14:08seen what happened now with the refugees

00:14:10here in Europe they use Facebook to kind

00:14:13of find their way it’s kind of amazing

00:14:15how this really affects normal people

00:14:19and kind of your improves their lives

00:14:21and this is something you know I think

00:14:24fits right in with the kind of new new

00:14:27Eric so just a few weeks ago I joined

00:14:31Facebook and that’s what I’m going to do

00:14:35now so um my my startup adventure was

00:14:40short but sweet and but thanks to this

00:14:42kind of big life-changing event I think

00:14:46I can spend my the few years that I

00:14:49might have on this planet you know to

00:14:51really kind of help you know the the the

00:14:55big population of this earth by the way

00:15:00if there’s questions in the end I have a

00:15:03whole bunch of t-shirts here so for

00:15:06people that ask questions they will get

00:15:08a nice Facebook

00:15:10you see here isn’t that beautiful

00:15:17all right so as I said if you look at

00:15:23you know did why I made this decision

00:15:26and first of all when I look at this the

00:15:31the heck I’ll talk that was as I said

00:15:34that was my learnings from working with

00:15:37many companies in Silicon Valley and

00:15:41mostly that talk and that paper that I

00:15:45wrote about it so there’s an ACM a C ACM

00:15:48and an ACM queue paper about that that

00:15:50really that talk was mostly inspired by

00:15:53Facebook by the Facebook culture and and

00:15:57then of course and the whole thing with

00:16:00our X that was all done to make you know

00:16:06communication at the cloud scale better

00:16:09and then the last thing is you know what

00:16:14I call here seize the day you know given

00:16:17that I can be garbage collected every

00:16:19single second and all of you yeah you

00:16:22can be garbage collected every second

00:16:24you cross the street and you know you

00:16:27get hit by a car so never take life for


00:16:30I can tell you and so really going to

00:16:33live every single second and that was

00:16:37the third thing it’s like how can I help

00:16:40real people using my technical knowledge

00:16:43and the great thing here is that you

00:16:46know all these three things kind of just

00:16:49come together in a single spot all right

00:16:54so this is my new motto to unite the

00:16:58earth connect it and that’s what I’m

00:17:00going to be spending and you know the

00:17:03next couple of years on and hopefully I

00:17:06will be able to you know talk in like

00:17:10give keynotes and talks and many more

00:17:13times and hopefully I can escape that a

00:17:17few years more now let’s talk a little

00:17:21bit about the technical side and the

00:17:24opportunities about this and then I kind

00:17:26of relate that again to this whole I

00:17:29year of you know how we should write

00:17:33software and so why did why did I get so

00:17:40and you know induced about push based

00:17:44systems so why why did I do our X well

00:17:47the whole point is that when you want to

00:17:49stay up-to-date about the state of the

00:17:53world it’s much better to push not pull

00:17:56so here is an example

00:18:00and where there’s me and I want to come

00:18:04up you’re stay up-to-date about what LS

00:18:07Bob and Carol are doing but think about

00:18:09this you know you can you can translate

00:18:11this into you know that Eric is an app

00:18:14on your phone and Alice Bob and Carol

00:18:17are sensors on your phone right or you

00:18:20know Carol’s the UI Bob is you know at

00:18:23the GPS and you know LS is whatever all

00:18:27right so this this kind of is a metaphor

00:18:29for whatever thing that has sensors in

00:18:32it or sources of information now if you

00:18:37go and pull well I’m going to by Merrick

00:18:40so I’m going to pull that first going to


00:18:42LS your alice is there anything

00:18:45interesting that I should know and but

00:18:48you know Alice is a little bit of a

00:18:49boring type so she doesn’t answer her

00:18:53there’s nothing so I asked her in the

00:18:55second ah nothing happened and then I

00:18:57asked Bob hey Bob Bob Bob doesn’t answer

00:19:03and if I’m not careful I’m kind of

00:19:06blocked asking Bob Bob Bob until Bob

00:19:10answers right so this is why you have to

00:19:13do a synchrony right this is why you

00:19:15should never do a blocking call because

00:19:17Bob might not be there or boat might be

00:19:20slow but might be gonna be uh grabbing a

00:19:24beer and he doesn’t answer and then of

00:19:27course you know while I was kind of busy

00:19:30leaking to be a pulling information from

00:19:31Alice and Bob Carol had all kind of

00:19:35exciting things going on but I never had

00:19:39the chance to ask her so when I finally

00:19:41asked her she says

00:19:43you missed already missed all the action

00:19:45is now all stuff alright so when you

00:19:49want to stay up to date with the world

00:19:51you have to push you cannot pull and

00:19:56another way to look at this it’s a very

00:20:00simple and naive implementation of pool

00:20:04so if you’re building a web page and you

00:20:06want to refresh the webpage but a lot of

00:20:09people do is they you set interval and

00:20:12then they kind of pull the server at

00:20:14some rate right that’s the way you do

00:20:17pool well of course there’s the question

00:20:20marks here because how often do you need

00:20:23to pull you don’t know if we’ve seen

00:20:26with Alice if you pull too fast you

00:20:30waste resources because there’s nothing

00:20:31interesting going on and with Bob we

00:20:35have seen that if you pull at the wrong

00:20:37moment you get blocked and you know and

00:20:40then you don’t know so you have to so

00:20:42this this code here will never work you

00:20:45have to always have to deal with the

00:20:47fact that you can get blocked so you

00:20:49have to come to another layer of

00:20:51callbacks but fortunately now JavaScript

00:20:56also has a sink weight or gets


00:21:00I think Microsoft edge is the first

00:21:02JavaScript thing that has a sink weight

00:21:04but of course if you use dart you will

00:21:07get it also but you cannot write code

00:21:09like this right because otherwise you

00:21:11get blocked or if you pull too slow you

00:21:14might lose all the action you might not

00:21:16go fast enough okay so you can basically

00:21:18when you pull you never get it right and

00:21:22so here it’s the same example and but

00:21:27now where the sources push alright so

00:21:31think again these sources can be sensors

00:21:34or they can be your friends or they can

00:21:36be stock ticks whatever sources of

00:21:39information you can imagine so in this

00:21:41case LS it’s kind of relaxed you know

00:21:46slowly every once in a while something

00:21:48interesting happens but not that often

00:21:51Bob you know he is offline but then


00:21:56hey I’m back from vacation okay so you

00:21:59don’t block because Bob will tell you

00:22:01and he’s back from vacation I don’t have

00:22:03to kind of check whether he’s offline or

00:22:05online Bob will tell me and then of

00:22:08course now I’ve I hear all the

00:22:11interesting stuff that carol has to say

00:22:13and you know she goes and that she

00:22:17pushes really fast and that’s all fine

00:22:19and then if Carol goes too quick I can

00:22:23always put some coat kind of right after

00:22:27her that kind of drops all her messages

00:22:30or can you know just kind of like comes

00:22:33down the stream and that’s much easier

00:22:35than going the other way around

00:22:37so again this is why I think things like

00:22:41reactive are so important because in

00:22:44these cases push works and pull does not

00:22:49work now let’s talk about scale okay

00:22:54because here I have a very simple

00:22:55example of it with three sources and if

00:22:58you look at your phone I think the

00:23:01average phone has maybe six to ten

00:23:03sensors and so there’s you know there’s

00:23:06you know like a accelerometer there’s

00:23:10like a compass there’s GPS you know

00:23:12there’s a couple of sensors in the phone

00:23:16but that’s um that’s kind of a little

00:23:21bit now if you look at things where you

00:23:23know when we worked on Eric’s Java there

00:23:25the skill we looked at was about you

00:23:28know I don’t know tens of millions of

00:23:31event sources that scanner wherever rx

00:23:36Java I was optimized for but now if you

00:23:39look at Facebook recently there were 1

00:23:42billion people communicating over

00:23:45Facebook in a single day okay that’s

00:23:49going to 1 billion what is that this is

00:23:51one with nine zeros okay so that’s kind

00:23:54of quite different than you know dealing

00:23:57with push based systems on your phone

00:23:59and and this is also quite different

00:24:02than kind of you’re dealing with like a

00:24:05few million and the

00:24:07other thing to notice is that you know

00:24:10this is just one out of seven people on

00:24:13the earth right so this can be more or

00:24:16less an order of magnitude more and so

00:24:19if you want to build a system that works

00:24:22at that scale it just blows my mind then

00:24:25the other thing that I just want to

00:24:27emphasize is that it’s really the

00:24:33mission of Facebook is really to convey

00:24:36or connect people and so that’s again it

00:24:41fits into my kind of year my new mission

00:24:45in life but this thing is kind of what’s

00:24:47scaring me that’s keeping me awake at

00:24:50night is how you know how is it possible

00:24:54to build software that can work at this

00:24:58scale and just for the numbers here and

00:25:04if you look at rx mobile that was the

00:25:06thing that I was building with my with

00:25:11my startup yeah that only has to deal

00:25:14with you know like ten of you know about

00:25:18ten sensors that pushed up at you 4x

00:25:21Java we kind of assumed it would be you

00:25:24know 10 15 50 million and now we have to

00:25:29go to 1 billion and and I’m kind of

00:25:34sweating when I think about that

00:25:36and anyway then the other thing is if

00:25:40you look at at building software at that

00:25:42scale and again this is not only at

00:25:44Facebook with all the companies I worked

00:25:47with in Silicon Valley and also at

00:25:50Microsoft is the amount of moving parts

00:25:54is enormous and this is one thing that I

00:25:58am Not sure that if you’re in a small

00:26:01company that you can appreciate but this

00:26:05is like numbers these are kind of old

00:26:06numbers but like the Facebook has open

00:26:10source about over 200 projects okay so

00:26:16these are 200 things that you need to

00:26:18know more

00:26:19less in order to plug everything

00:26:21together and and yeah so and this is one

00:26:27thing is like I’m also part time

00:26:28professor and one thing that’s really

00:26:31hard to teach the students when you can

00:26:33when you teach them to program it’s like

00:26:35okay let’s do Java right we teach them

00:26:37do Java so you open up IntelliJ and you

00:26:40can public static void main and you

00:26:43start coding that’s not the way you code

00:26:46in the real world right in the real

00:26:48world you have you get like you know

00:26:50whatever 200 different kind of

00:26:52technologies and there’s some bug and

00:26:55then you go fix it and you have to see

00:26:58how you can kind of your hook everything

00:27:02together and I have no honestly I have

00:27:05no clue how we can teach this to

00:27:07students I have no clue how I can even

00:27:11teach this to myself and I don’t know

00:27:13how you guys deal with it but I think

00:27:16this is something that’s yeah I really

00:27:19would like to solve as well so how can

00:27:20we kind of you know prepare students

00:27:23better for for this kind of work and the

00:27:27traditional way of teaching programming

00:27:29is not helping here and I think the only

00:27:33way that I know it’s Bertrand Meyer has

00:27:35a book where they try together they have

00:27:38like a simulation or something of the

00:27:39Paris metro system and they’re they kind

00:27:42of dump you in the middle of the ocean

00:27:44and you have to kind of find your way

00:27:45back to the shore but most text books

00:27:51about programming I think are completely

00:27:54outdated to have nothing to do with

00:27:56reality and so again this is one of

00:28:00those things where you know I want to

00:28:01kind of you apply my my time on this

00:28:04planet to solve real problems and that

00:28:07is I think you know teaching how to

00:28:09build software at this scale is one of

00:28:13those things and now here are a couple

00:28:17of of these projects and and why am I

00:28:21talking about this well probably you

00:28:23heard about react and react native so

00:28:25that second front-end stuff then there’s

00:28:28flow which is a kind of you know it’s

00:28:30something like typescript like it’s the


00:28:33system for JavaScript then there’s a

00:28:36virtual machine then infer it’s a way to

00:28:39do static analysis

00:28:41there’s hexyl so they even do kind of

00:28:44your different languages including

00:28:45Haskell presto if that’s the database

00:28:48stuff and then there’s many programming

00:28:50languages okay so these are all examples

00:28:54of technologies that are used now the

00:28:57thing is when you’re building a push

00:29:00based system and that’s the one of the

00:29:02lessons that we learned at Netflix when

00:29:04we were applying our X Java there is

00:29:07that you cannot block anywhere so if you

00:29:10look if you remember that picture I had

00:29:13where you know we’re where Alice Bob and

00:29:16Carol were pushing information at at

00:29:20some point if anywhere if you make a

00:29:22kind of larger pipe line like this and

00:29:24if any where things are blocking or not

00:29:27really push based then you might as well

00:29:30just go and then everything collapses

00:29:33because then it’s the same as just doing

00:29:35traditional synchronous calls or pool

00:29:38based calls so really to make things

00:29:41work to make get one flow you have to

00:29:44make everything push based you cannot

00:29:47kind of just have pull somewhere and and

00:29:51the thing is that most current languages

00:29:55and tools and api’s are all optimized

00:29:58for synchronous programming okay and

00:30:01that’s why we need things like async

00:30:04await and so on to do async programming

00:30:06but that’s in the language but now it

00:30:09also means that your api’s have to

00:30:11change because everything that can be

00:30:13blocking should be eliminated from the

00:30:15api’s and Microsoft I think did a good

00:30:18job when they they introduced async

00:30:22await they went through all of their API

00:30:24s and everything that you know took

00:30:27longer than X millisecond or could block

00:30:29they made it async but it’s so it’s not

00:30:32just the language it’s also the api’s

00:30:33but then the tools if you’re if you’re

00:30:36doing callbacks because basically that

00:30:38just async is doing now all your

00:30:42debuggers don’t work anymore because

00:30:45there is no sequential

00:30:47there’s no call stack so your debuggers

00:30:50are all messed up so it’s just it keeps

00:30:52on going and going so to make the world

00:30:54a synchronous it’s not just you know

00:30:57adding a few keywords to the programming

00:30:59language it’s really means changing the

00:31:01complete stack from you know the UI all

00:31:05the way down to the database and the

00:31:09nice thing is that you know for me is

00:31:12that Facebook they control the whole

00:31:15stack which means that you know that

00:31:18there’s at least a chance to get it

00:31:21right and I’m sure that you’ve seen this

00:31:25diagram before so these are what I call

00:31:30the four effects of programming so if

00:31:32you look at the top left so that’s a

00:31:34synchronous call that returns a single

00:31:36result that’s what’s current programming

00:31:39languages have been optimized for since

00:31:41their inception so over the last 50

00:31:44years but what we need to go async and

00:31:48push based is we need to go down here so

00:31:51we need to kind of have an asynchronous

00:31:53call that returns one result and that’s

00:31:56kind of getting you know more accepted

00:31:58now with async await in several

00:32:01languages except Java where’s Brian

00:32:02goods okay Brian

00:32:05Java is running behind okay that’s what

00:32:09the only language even JavaScript has

00:32:11async await Python has a sink with

00:32:13artists a security sharpest a sink with

00:32:16even PHP si Saket

00:32:18but Java no we Java programmers week are

00:32:23going to stay in the old world of

00:32:25synchronous calls or no we have love –

00:32:28we can do callbacks now no no no no

00:32:30callbacks are not good and long – don’t

00:32:33help you so Java really need async await

00:32:36above anything else I think you know you

00:32:39should drop everything for Java 9 and

00:32:41put in async await and everybody would

00:32:44be happy

00:32:46and and if you know how to do that Java

00:32:48people you can read this paper here

00:32:51where we can explain how to do this we

00:32:56did in dart and it comes with a nice

00:32:58denotational semantics and to do that

00:33:01but again it’s consumer important to

00:33:04change that we have to shake up the way

00:33:07we do programming to make this work

00:33:10alright so now let’s go and talk a

00:33:14little bit about agile and let’s talk a

00:33:16bit a little bit about programming

00:33:17methodologies and so one of the things

00:33:23that I saw when I came to Silicon Valley

00:33:27that was completely different from what

00:33:30I see at conferences like like this and

00:33:34what I see in Europe I think Europe is

00:33:36much more into a of first whatever

00:33:39reason fell for scrum and an agile and

00:33:45and the thing is that you know if you if

00:33:48you look at scrum and agile the way I

00:33:52kind of you can can phrase it is that if

00:33:55you look at McDonald’s alright

00:33:57McDonald’s at McDonald’s every employee

00:34:01is a teenager right and and in order to

00:34:05make a product that’s kind of still of

00:34:07average quality with like low educated

00:34:12employees you need a lot of process you

00:34:14need a lot of steps to can make sure

00:34:17that what comes out in the end

00:34:19is presentable to the customer that is

00:34:22to me what scrum is about so if you are

00:34:24like an average guy whatever developer

00:34:27you need a lot of process you know to

00:34:31kind of make something that’s kind of

00:34:33okay but that’s not what we want to be

00:34:35right we are better than that

00:34:38we are hackers we we are you know we

00:34:41know how to build this stuff we don’t

00:34:43need this process so compare that with a

00:34:46michelin-star chef if you’re in a really

00:34:49good restaurant the menu is different

00:34:51every day the chef goes and sees oh they

00:34:54go to the market and say oh the fish

00:34:56looks really nice today this coat I will

00:34:58take that

00:34:59and there’s Garrett’s they look really

00:35:00good and they just make the exam on the

00:35:03fly okay there’s no process but the food

00:35:06is definitely much better I’d rather go

00:35:08to a Michelin star restaurant than to

00:35:11McDonald’s and I think it’s the same

00:35:13with software I rather have software

00:35:15that’s built by hackers by really good

00:35:18programmers then some whatever ever it’s

00:35:20staying that’s kind of you has been

00:35:22built by doing stand-ups and you know

00:35:24scrum masters and whatever okay so think

00:35:28about that um but I think the real thing

00:35:32about this is that it’s scary for the

00:35:35managers the managers feel that they are

00:35:40in control with scrum and that’s why

00:35:42your boss space you to go to a scrum

00:35:45course and your boss doesn’t pay you to

00:35:48kind of yo spend some time and try

00:35:51something out new and kind of you know

00:35:52just just got to build stuff okay um so

00:35:58um that is the kind of the real thing I

00:36:02think the essence of the the hacking

00:36:05culture is here is goto wins arguments

00:36:08the person that writes ago because in

00:36:11the end that’s all what we’re doing

00:36:13right we’re building software software

00:36:16is code software is not words software

00:36:18is not UML diagrams software is not

00:36:21yellow stickies on the wall that you can

00:36:24you can move around so the person that

00:36:27can move stickies around on the on the

00:36:29board it’s completely useless the person

00:36:32that writes the code that’s the person

00:36:35that’s useful okay so every minute that

00:36:38you spent in a stand up every minute

00:36:41that you talk about code instead of

00:36:44writing code is lost okay and that is

00:36:48the thing that you know I don’t

00:36:50understand about scrum and agile and it

00:36:52just it it kind of you know makes you

00:36:55less than what you’re capable of because

00:36:57it treats you like a teenager and

00:36:59McDonald’s so don’t fall for that

00:37:03okay so um and and just to compare this

00:37:09a little bit more let me kind of show

00:37:11you the kind of the Facebook values so

00:37:14these are kind of axioms

00:37:15these are axioms that you as a developer

00:37:19use to kind of structure your day okay

00:37:23so I want to write software how do I

00:37:25kind of you know because there’s so many

00:37:27things you can do that’s the day I think

00:37:29that’s also one of the things with

00:37:31software ever it’s so soft that you can

00:37:33do everything with it

00:37:35so you need some structure to make sure

00:37:37that you kind of stay on the right track

00:37:39so let’s go through these things here

00:37:43and then I will compare that to scrum

00:37:45and then hopefully you will see the

00:37:48difference okay

00:37:49so here’s the number one thing it’s you

00:37:52focus on impact so this is what I said –

00:37:55it’s like after this kind of tragic

00:37:57thing happens with my health I thought

00:38:00am I really focusing on impact

00:38:03am I really spending every single minute

00:38:06of my life achieving the most impact and

00:38:09that’s kind of you know I think what you

00:38:11do to when you write code you should

00:38:13always kind of you know think about do I

00:38:16solve the most important problems so you

00:38:19look at this like am I just gonna be

00:38:21messing around or am I really trying to

00:38:23solve the right problems and I think

00:38:27most people don’t do this and then you

00:38:30waste your time okay so you as a

00:38:33developer it’s your responsibility to

00:38:36always find and solve the most important

00:38:40problem for your company and when you do

00:38:43that I bet you nobody will complain that

00:38:46you didn’t show up for that stand up

00:38:48because you fixed a real problem instead

00:38:50of talking about whatever imaginary


00:38:55okay here’s the other thing you have to

00:39:02move fast and with move fast assists the

00:39:05things that you you need to learn you

00:39:07cannot cut it the only way you can learn

00:39:09about something is and again this is my

00:39:12personal opinion you cannot learn about

00:39:16something by not writing code by

00:39:19thinking about it the only way you can

00:39:21really understand the problem you’re

00:39:23working on is by actually writing code

00:39:25for example in language design you can

00:39:28come up with the most beautiful design

00:39:32but then it turns out that it’s

00:39:34impossible to implement the type checker

00:39:36or that is impossible

00:39:38to kind of get good error messages or

00:39:40that it’s impossible to integrate this

00:39:42in the IDE okay and the only way you can

00:39:46discover that is by trying things out so

00:39:48you always have to be writing code and

00:39:51then you know when when you figure out

00:39:55that it doesn’t work then you kind of

00:39:57know you can do it differently but this

00:39:59is the most important thing and people I

00:40:01think a lot of people are afraid of

00:40:03writing code and then they go and kind

00:40:05of talk about it this phone oh I first

00:40:07have to write my UML diagrams wrong just

00:40:11open the freaking editor and start


00:40:20okay and that that’s related so if you

00:40:24don’t take any risks you know you’re not

00:40:27going to get it you know you’re going to

00:40:28guarantee to fail so um you know you

00:40:31have to try it and and sometimes it will

00:40:34fail which is good and now of course for

00:40:39most managers the traditional managers

00:40:41that’s the thing they most scare about

00:40:43risk everything they do is to avoid risk

00:40:46and and I think that’s also one of the

00:40:50big things in in scrum and agile it’s

00:40:53all about managing risk but I think this

00:40:56is the completely the wrong way you have

00:40:59to embrace risk because if you don’t do

00:41:02it you know well it says here the

00:41:05riskiest thing is to take no risks but

00:41:08we have to not not be afraid of that

00:41:11okay then the other thing is openness so

00:41:16this is I think one of the great things

00:41:18that that the companies in Silicon

00:41:20Valley do it’s like Google has it

00:41:23Facebook has it like once a week you

00:41:26know the founders come and they have a

00:41:29meeting that you can ask them anything

00:41:31okay they treat you as adults instead of

00:41:34kind of you know keeping everything

00:41:35that’s kind of important for you kind of

00:41:39hidden from you so you have to be kind

00:41:42of the information access to information

00:41:45is what you need and that’s not only for

00:41:47us developers but it’s for everybody

00:41:50all right and I talked already talked

00:41:53about this so I’m given the time I were

00:41:55going to speed up a little bit but you

00:41:58know again think about yourself you know

00:42:01look at this you know and see if this is

00:42:04something that you recognize yourself in

00:42:06okay so you know you see rules and you

00:42:12know you think what happens if I twist

00:42:14the rules a little bit you you have an

00:42:17API or you have a programming language

00:42:18and can I kind of bend the rules to make

00:42:21the impossible happen this is kind of

00:42:24you and I know I am British

00:42:26sure that every one of you here when you

00:42:29do that at work you kind of think that

00:42:31somebody told you this cannot be done in

00:42:33Java but you know you found a way to do

00:42:36it you feel absolutely proud okay

00:42:38that’s the hacker spirit okay so you

00:42:41have to get your challenge yourself

00:42:43intellectually and and this is what you

00:42:47don’t like right

00:42:48you don’t like stupid people you know

00:42:52people with ties I don’t fortunately I

00:42:54don’t see a lot of people with ties here

00:42:56okay you don’t like boredom but now look

00:43:01at this

00:43:01okay so now I’ve kind of briefly showed

00:43:05you all the kind of critics now look at

00:43:07this scrum the art of doing twice to

00:43:11work and half the time okay what does

00:43:19that mean twice the work in half the

00:43:20time that means that you can do

00:43:22everything four times as fast okay you

00:43:25believe that it means that college

00:43:27instead of four years we can do it in

00:43:29one here right yes we believe that

00:43:32okay let’s kind of all do college in one

00:43:35year Oh elementary school okay well this

00:43:39is it’s like 10 high school that’s 12

00:43:41years we can do that now divided by 4

00:43:44and 3 years so we can kind of compress

00:43:47high school and elementary school into

00:43:49in three years and university and one so

00:43:53in four years we can take a

00:43:54kindergartner up to our level

00:43:56with scrum let’s do that let’s introduce

00:43:59scrum and education and there are crazy

00:44:02people that are proposing to do scrum

00:44:04and education because they believe that

00:44:06stuff and then look at this look at this

00:44:09other stuff here certified scrum coach

00:44:13scrum master strainers whatever this is

00:44:17like a pyramid scheme

00:44:18okay this has

00:44:20this has nothing to do with writing


00:44:27so talking about duality ok scrum is the

00:44:31dual of hacking that is I think it

00:44:35cannot be more different than the way

00:44:38you should so you look at scrum and do

00:44:40everything completely the opposite then

00:44:42you have the right methodology and so

00:44:45again I’ve shown you this kind of the

00:44:47rules here the five rules of Afghan


00:44:53now look at this the scrum is the

00:44:56opposite I wasn’t joking because scrum

00:44:59is all about prescription okay it’s it

00:45:02reached like a law okay the product

00:45:04owner is the sole person responsible hoe

00:45:07there cannot be two person responsible

00:45:09there’s only one person responsible if

00:45:12you don’t do it oh the scrum police will

00:45:14come after you okay let’s print a sprint

00:45:18has to be like this and if it’s not like

00:45:21that it’s not a sprint and what else do

00:45:25we have

00:45:25Oh sprint planning you can only do eight

00:45:28hours of sprint planning if you go like

00:45:30one minute over you’re not doing scrum

00:45:32if you’re going one minute less oh no it

00:45:34says here it’s books to eight hours so

00:45:37be careful okay and the daily scrum is

00:45:4115 minutes not more not less this is

00:45:45crazy guys okay this is like a boring is

00:45:51you need like a police and you need the

00:45:53judges and you like and what happens in

00:45:56practice I’m pretty sure when I gave the

00:45:58stop before people say well but you know

00:46:00for us it works because we have our own

00:46:03version of scrum of course because it

00:46:07doesn’t work that that is a proof that

00:46:09it doesn’t work

00:46:16but if you already have your own version

00:46:19of scrum why don’t you throw it away

00:46:21altogether okay and go to heck all right

00:46:25all right

00:46:26as I said don’t be McDonald’s employee

00:46:29and be a hacker now for managers you

00:46:34know maybe you’re scared but what I tell

00:46:36you is that hackers are the ultimate

00:46:38employees okay so don’t be scared this

00:46:41is this is these are the people that you

00:46:43want if your manager listen carefully

00:46:45hackers are the people that you want

00:46:47okay and this this is the interesting I

00:46:51think it was meant as a joke this link

00:46:54here but it compares developers to B’s

00:46:58and managers to beekeepers okay but if

00:47:01you look at scrum managers are like

00:47:04sheep herders okay but what managers

00:47:06should be is they should be like

00:47:09beekeepers and bees are can’t you they

00:47:14are scary they kind of goes around you

00:47:16have to kinda have your pipe and smoke

00:47:18to keep them away from not kind of

00:47:20biting you but the great thing is they

00:47:24make honey and you kind of you take away

00:47:26the honey and they don’t care because

00:47:28they make more honey and that’s what

00:47:32developers do they write code you ship

00:47:36the code and they will write more code

00:47:38you’d never have to be afraid that

00:47:41developers don’t write code the trick is

00:47:44that you have to kind of you know keep

00:47:46them honest and focus on where is the

00:47:49most impact and that’s what as a manager

00:47:52that’s your role you have to be a big

00:47:54keeper and make sure that they are

00:47:56producing the right honey and create all

00:47:59the right circumstances that they can be

00:48:01efficient in creating honey and one of

00:48:04the things to do is that you know you

00:48:07have to pay them a lot

00:48:11and and and of course there’s another

00:48:22way kind of you know like a one-shot

00:48:24bite in which you can say that is that

00:48:26you cannot hurt racehorses but you

00:48:28cannot raise sheep and so that’s and

00:48:31again like scrum is a way to try to make

00:48:34sheep kind of go into racehorses okay so

00:48:37now I’m going to can appeal

00:48:39you should do a couple of more things

00:48:41here is that software is kind of a

00:48:46there’s a lot of things that we can

00:48:47learn from the military here and you

00:48:49know if you drop the last e from

00:48:52software you get soft war now there’s

00:48:55this very interesting document out on

00:48:59the internet it’s the Fleet Marine Force

00:49:01manual one about war fighting okay now

00:49:06I’m not the military person but I think

00:49:08and there’s a lot we can learn from the

00:49:13way they kind of manage things and do

00:49:14things they operate at incredible scale

00:49:16they have been doing this for hundreds

00:49:19or thousands of years so there’s a lot

00:49:20of experience there so it’s always good

00:49:23to kind of look at that and if you take

00:49:25this manual and you replace war by

00:49:28software this thing is still true it’s

00:49:32amazing it’s amazing right because here

00:49:35look so first complex it’s shaped by the

00:49:38human world schedule by friction

00:49:40uncertainty fluidity this is we all see

00:49:43this right that’s when you when you

00:49:45write software this is you know how

00:49:47things go okay and you know it’s not an

00:49:52art it’s not the science it’s some

00:49:54something that humans built now if you

00:49:57then go and read further in the document

00:50:00it also says is the same thing but the

00:50:03other guy says about beekeeping command

00:50:06must be decentralized okay

00:50:10so each the older people on the floor

00:50:12should know what their mission is but

00:50:14then in a situation of war there’s no

00:50:17way you can tell them you know take five

00:50:19steps to the right but only for 15


00:50:21because otherwise you’re not doing it

00:50:23right that’s not working okay so I think

00:50:26this is a is a really good way to kind

00:50:29of look at this if you want to manage

00:50:31software developers you look at the

00:50:34military and then the last thing here is

00:50:38that one of the things that hackers

00:50:43dislike is hierarchy or people in suits

00:50:46telling them what to do because they

00:50:49have an impressive title or they can

00:50:51talk a little bit smoother and yeah but

00:50:55that’s that’s something that you should

00:50:57fight against okay it’s only the code

00:51:00that speaks so if somebody comes with

00:51:02some gut feeling or Seconal I’m the CEO

00:51:06so you have to listen to me

00:51:08don’t do that okay

00:51:11so vote with your feet you can always

00:51:13take your laptop and leave okay and I

00:51:16don’t think that we do this enough as

00:51:18developers and we should take our

00:51:21laptops and leave if you’re forced to go

00:51:24and take you know scrum training yeah

00:51:27you say good I’m going out for the day

00:51:29I’m not coming back okay and then the

00:51:33thing is I say you know either come to

00:51:35Silicon Valley and I I might be able to

00:51:39help you there or you know we should

00:51:42have more companies like the companies

00:51:44in Silicon Valley in Europe and I think

00:51:47we really and I don’t know what it is in

00:51:49Europe that this that this hacker way is

00:51:52not embraced so much but yeah I’m here

00:51:56to help you and and hopefully talks like

00:51:59this you know will inspire a few people

00:52:01and and you know make the world a better


00:52:05on the other hand you can also say think

00:52:07all this guy was he was talking

00:52:11yeah I don’t believe it

00:52:12I love scrum that’s great too but make

00:52:15up your mind for yourself think about it

00:52:17don’t take anything for granted now

00:52:20don’t just believe it because you have

00:52:22somebody told you so always be critical

00:52:25and always be hacking thank you very


00:52:44right we don’t actually have time I know

00:52:47the food won’t be served until 8:00 so

00:52:49in your opinion what is missing for the

00:52:53functional paradigm to revolutionize the

00:52:55industry ah well I think it already has

00:52:59so there’s nothing missing if you look

00:53:02at javascript javascript is really

00:53:04schemed with curly braces

00:53:06so really the web is already powered by

00:53:08the lambda calculus even like I was

00:53:11joking about Java not having async/await

00:53:13but it has slammed us so the world’s

00:53:19most widely used language which

00:53:21according to whatever the indexes that

00:53:23we have is Java it has loved us C++ has

00:53:28lambda so I think functional programming

00:53:30is there now there’s one thing and maybe

00:53:33this is what the the person that asked

00:53:36the question is thinking about a lot of

00:53:38people think wrong about functional

00:53:40programming they think functional

00:53:42programming means not using mutable

00:53:44state I I don’t subscribe to that idea

00:53:48at all because I cannot use mutable

00:53:51state in C but then I’m not using

00:53:54functional programming functional

00:53:56programming is all about using higher

00:53:58order things using functions okay and

00:54:02mutable state yeah that’s that’s not

00:54:06that important but it has nothing to do

00:54:09with functional programming per se and I

00:54:12wrote a paper about this it’s like you

00:54:14know the curse of the excluded middle

00:54:15because mutable state is just one of

00:54:17many effects exceptions strats

00:54:21reflection there’s so many effects and

00:54:24you can simulate one effect in terms of

00:54:27the other if I have threats and no

00:54:30mutable state I can simulate mutable

00:54:32States because I can make an object

00:54:33where I can send you know get and set

00:54:37messages and that object has no mutable

00:54:40space it’s like an airline kind of an

00:54:43actor that that maintains it immutable

00:54:45thing but it’s still now at the next

00:54:47level it’s mutable

00:54:49so being immutable has nothing to do

00:54:52with functional programming that’s

00:54:53people that say that don’t really get


00:54:56programming so I think functional

00:54:57programming that’s already wrong and

00:55:00this is this idea of using higher-order

00:55:03concepts and good are there any more

00:55:07questions there are a lot of questions

00:55:09and I’ll send them to them and we don’t

00:55:10have time to take them in public so you

00:55:12can come up to Eric and get a t-shirt

00:55:14you can get a t-shirt and then we can if

00:55:17you have more questions I can and I’m

00:55:19happy to talk to you can appear and

00:55:21thank you again thank you very much