Typesafe's AMA Podcast Ep. 05 feat. Akka Actors in the Zombie Apocalypse and 2016 Predictions with Viktor Klang
When we crowdsourced questions for Viktor Klang, the response inspired one of the most comprehensive, engaging, and hilarious answers I've ever heard.
Tonya Rae Moore: Hi, and welcome to Typesafe AMA Podcast With Our Experts number five. My name is Tonya Rae Moore, and I am a product marketing specialist with Typesafe, soon to be Death Nacho. I write blogs, record our webinars, and I get to ask really, really smart people the questions that they don't get to answer during conference sessions. Speaking of, today, I'm going to have a chat with Viktor Klang, our deputy CTO. And if I tried to list everything V has been doing in the past 10 years, it would take up the entire podcast, so I'm going to get started on what Viktor does best, which is talk. Hey, V.
Viktor Klang: Hey, how's it going?
Tonya Rae Moore: It's going better for me than you. It's 5:30 on a Friday, so we're going to try and make this easy on you, okay?
Viktor Klang: It's a perfect way to wrap up the workweek, I guess.
Tonya Rae Moore: Nice. I will take that as a huge compliment. I'm going to warm you up easy. So you can just tell us a little bit about your background and what brought you to the company soon to be known as Death Nacho.
Viktor Klang: Yeah. It's actually a pretty funny story. Well, probably more funny to me than anyone else. But I had a colleague of mine back -- this was probably around 2006 or 2007 -- who introduced me to this cool language called Scala. And I was doing mainly Java at the time, so it was a nice sort of fresh new experience, learn something interesting, with new ideas for me. And along that path, I was researching what kind of technologies that we would use internally to build a new sort of ecommerce system. And I got into some Scala webframeworks, and there I got acquainted with this fellow named Jonas Bonér , who had been doing --
Tonya Rae Moore: That weirdo?
Viktor Klang: Yeah, it just happened. It's actually very coincidental. But he was Swedish, I was Swedish, so there was like a natural reason to just say hi and collaborate a bit. And somewhere down in I think it was 2009, somewhere in the summer, he announced that he had been working on this thing called Akka, and he wanted to get people's opinions on it. And I started to have a look at that. And I found that extremely fascinating. It was an interesting set of technologies and ideas that he had sort of put together. And I started contributing. And on that path, it actually is -- so down the road, he asked me if I wanted to start something around it. And we did. And then we fused with Scala Solutions and we formed Typesafe. And it's essentially all because, well, we just happened to meet a very sort of unplanned moment in our careers. So . . .
Tonya Rae Moore: That's funny. When I talk to Jonas, and I've talked to Martin a little, and it's funny how you guys just all seemed to come together, like right place, right time. You're like the Beatles.
Viktor Klang: I'm not necessarily 100 percent sure. I don't know who I would have been in the Beatles.
Tonya Rae Moore: And I'm not going to say.
Viktor Klang: Probably the janitor or something. I don't know.
Tonya Rae Moore: You're the guy they kicked out before they got Ringo Starr.
Viktor Klang: Exactly. I'm that guy probably.
Tonya Rae Moore: There's something I've been wanting to ask people, and you're a perfect example. We're going a little off-book here, but what is it, as a Java guy, when you saw Scala and you started looking at Scala, what was it about Scala that you found interesting, coming from a Java background?
Viktor Klang: That's a great question. So I think it boils down to, for me, it was a lot about the expression-oriented programming of Scala versus the more statement-driven programming of Java. So I started more serious programming with C, and C is a beautiful but also very sharp and dangerous tool. I love it to bits, but it's hurt me more than I dare to acknowledge.
Tonya Rae Moore: C sounds like a bad girlfriend.
Viktor Klang: Well, it's a situation where it sort of took me back to my C days, where I did a lot of -- I tried to do a lot of expression-oriented C programming, and it reconnected with that. And I also love the function passing paradigm, like the functional style of passing behavior into things. And that also tied me back to my C days, where I used a sensor around function pointers and stuff. So, to me, it was a bit of nostalgia as well as a fresh take on doing things on the JVM. And, of course, there was a lot of interesting technologies forming, there was a lot of early adopters of Scala coming in and sort of what can I do with this? And this is an interesting thing in the type system, what can I use that for? So it was a very sort of Cambrian explosion of ideas and libraries that I found very refreshing. I'm becoming nostalgic now. But I guess if we distill it, it was the expression-oriented way of doing programming that I really liked.
Tonya Rae Moore: Yeah, Java is not very expressive, that's for sure.
Viktor Klang: Well, now it actually is.
Tonya Rae Moore: It's getting there.
Viktor Klang: Yeah, it's actually getting a lot better, which I encourage. Do more of that.
Tonya Rae Moore: Don't look at me. But I will pass that along to the Java people I know, the ones you left behind.
Viktor Klang: Well, if somebody from the Java platform group is listening here, take some of that with you in the next sort of planning discussion. Make it a bit more expression oriented. I would love that.
Tonya Rae Moore: Awesome. I will make sure that somebody listens to that. Super solid advice from Viktor Klang, you guys. Let's move on a little bit. We had one crowd-sourced question, which I'm glad Marco Borst is at least looking out for the Typesafe podcast and interested in what you have to say. So we are going to give him a big shout out, and his question, which I am going to try and translate, says basically does a protocol exist that lets actors agree on an actor being late to respond versus going zombie?
Viktor Klang: That's an interesting question. So let's take the question apart a bit so that we know what we're replaying to here or what we're answering. So zombie, to me, implies that something was dead but is now undead. So something is coming back from the dead. But I assume the question is about agreeing on an actor being dead rather than being unresponsive. So I'm going to answer that, and if I interpreted the question wrong, then I am terribly sorry, and please let me know.
Tonya Rae Moore: Well, we'll make sure he talks to you on Twitter if you get it wrong, but go forward, my friend.
Viktor Klang: Awesome. Well, so let's simplify it to how do you sort of agree on -- that something is unresponsive versus something is dead? So I have an example I typically illustrate this with. And so imagine that you are in a zombie apocalypse and you find yourself being one of the lucky few that haven't been affected yet. But you found a merry little group of people that you try to survive together with.
Tonya Rae Moore: I have to stop you because I'm laughing so hard right now. You have to put me in a zombie apocalypse to answer this. This is awesome. Keep going!
Viktor Klang: Yes. We are in the zombie apocalypse. So you're in a situation where you have one car and it doesn’t have any gas. So somebody needs to go out and try to find some fuel for this car. Somebody needs to go out and find something to eat or something to drink. And somebody needs to go out and find more weapons because everybody needs weapons in a zombie apocalypse. And imagine that you have this group equipped with walkie-talkies because that is extremely convenient when you're in a zombie apocalypse and your cell phone isn't working. So --
Tonya Rae Moore: This is opening up so many questions. Where do I get the batteries, Viktor?
Viktor Klang: I'm sorry. Just like..it's a rabbit hole! It just keeps getting worse. But --
Tonya Rae Moore: Seriously. You're opening up a whole just vast problem here. Okay, keep going.
Viktor Klang: It wasn't a yes-or-no question! Well, you could simplify to that, but that wouldn't really be fair to the listeners, I think. So let's go with this and see if this ends up making any sense whatsoever. So imagine that you're now split up and everyone has their task, and you're coordinating using walkie-talkies. And you agreed upfront that you were going to sort of gather together back at the car in X time. And after a while, somebody goes silent. Let's say Bob goes silent. So he's not responding on his walkie-talkie. And everybody tries to reach him. Everybody gathers back at the car. And at some point, you need to decide whether you're going to get into the car and just go away. Like go someplace safe.
Tonya Rae Moore: Forget Bob. We're just going.
Viktor Klang: Exactly. At some point, you have to declare Bob dead. Right? So if he isn't dead already, then he might be dead soon. But we don't know, right? So that's the unresponsive case, right? So Bob is unresponsive. Nobody can get in touch with him. And at some point if you need to have progress within your group or your system, you need to declare something to be assumed dead, okay? So you're acting upon the assumption that Bob is dead. So you get into the car, and you leave. So that's fine, right? So you just go someplace. You go to the West Coast or something, and there is no zombie apocalypse or there is a safe place, and you live happily ever after. So that would be the case where, at some point in time, when you haven't been able to contact Bob, you have to consider Bob dead. Now, if we go into the zombie part of the question, where after waiting at the rendezvous point for a couple of hours, Bob suddenly shows up, right?
Tonya Rae Moore: Whoa, Bob -- Bob's here.
Viktor Klang: Bob. Bob's back.
Tonya Rae Moore: Hey, guys.
Viktor Klang: Yeah, why aren't you answering on your walkie-talkie, Bob? And if he isn't acting normal, how do you know if you have to shoot him or not? Perhaps he's already been bitten, right?
Tonya Rae Moore: You just don't know. Bob's a wildcard right now.
Viktor Klang: Bob's a wildcard, right? So that is how do you prevent zombies? Well, at some point, you just need to ditch Bob. Even if he got back, if you can't tell whether he's alive or undead, you're going to have to act as if he was dead. So that's the case where you need to decide do we allow zombies or not? You might be a group that is very accepting, right? So we don't care if Bob's a zombie or not.
Tonya Rae Moore: We accept everybody.
Viktor Klang: We accept everybody. We don't judge. We don't judge if you're a zombie or not.
Tonya Rae Moore: See, all of a sudden, this actor protocol depends on whether you're an American or Swedish.
Viktor Klang: Could be, right? Or, I mean, Bob could be American and the rest of the group is Swedish. We don't know.
Tonya Rae Moore: Better that than the other way around.
Viktor Klang: Yeah. So just to summarize --
Tonya Rae Moore: Yes, please.
Viktor Klang: That's a long way around getting to a simple answer, which is in order to agree on unresponsiveness, you need to have some sort of agreement on how long you wait for something to come back. And also, if it is possible to -- let's say that you agree that, after one hour, we consider something to be "dead," if we assume that and if we act on that assumption, is it possible for us to reverse that assumption later down the line? So imagine, for instance -- did you see Castaway, with Tom Hanks?
Tonya Rae Moore: I did.
Viktor Klang: And he was out there on that island, and he befriended this volleyball, right?
Tonya Rae Moore: Right.
Viktor Klang: So at some point, if I remember correctly, there was like a Mrs. Tom Hanks back in the civilized world. And at some point she needs to decide whether she's going to move on or not, right? Does she assume Tom Hanks's character to be dead or not, her husband to be dead or not? And if she acts on that assumption that he's dead and gets a new boyfriend or girlfriend or whatever and suddenly Tom Hanks's character shows up again because he's been found on this deserted island somewhere, what do you do? Can you reverse the fact that you assumed him to be dead or not? I mean, this is a real problem, right? How do you do this?
That is something that you explicitly need to deal with in your system, if you allow things to come back from the dead or not. And a lot of systems are very much against this, where if something is declared dead, it can never come back. Because you can't really deal with the inconsistencies of what happened. You can't undo the fact that you assumed it to be dead.
Tonya Rae Moore: Okay. Just too many variables?
Viktor Klang: Yeah. And you could have make decisions, like we sold all your stuff, Bob. He's not going to be happy. So in many cases, it's easier to just not let zombies exist in the system at all.
I hope that answered the question.
Tonya Rae Moore: That answered all kinds of questions. Like number one, who am I picking first during the zombie apocalypse, because it's you.
Viktor Klang: Well, and how long do you wait, right? Every single minute you wait at your rendezvous point, you're risking your own existence, right? So . . .
Tonya Rae Moore: Right. Did you watch Walking Dead?
Viktor Klang: I did.
Tonya Rae Moore: Right? Remember at the very beginning, where they all thought what's his name, the hero guy, was dead? And his wife had moved on within a minute. And then he came back. Oops. Awkward.
Viktor Klang: Yeah. How do you deal with that? Not well.
Tonya Rae Moore: I've never laughed so hard in a podcast.
Viktor Klang: This is like fundamental problems we're discussing here, so this is a really good question.
Tonya Rae Moore: Awesome. Do you have any other fundamental problems you want me to feed you as we pick this back up, or should we go right into what you see for the future?
Viktor Klang: Yeah. I don't think we have time for that. I would just sort of go off on a tangent, and we would just completely go off the rails here.
Tonya Rae Moore: Dean Wampler was talking about fast data and where the future's going with that. Oliver had his big Going Reactive survey. So just give me like a couple of the most important trends that're coming up. I'm especially interested in this question because you had a tweet the other day that made me laugh, where you were wondering what's going to supersede cell phones. So you don't have to go that broad, but . . . what do you think is coming up for 2016?
Viktor Klang: Oh, I have some ideas. And I think it actually will be fun to revisit this at the end of the year and see if I have any screws properly fastened.
Tonya Rae Moore: Done. I will send you an invite later today.
Viktor Klang: Cool. So I think, first and foremost, 2016 will be sort of the definitive year for proving microservices. There's been a lot of talk about microservices the past two years. Of course, more talk at first, but more action later. But it's, at least in my point of view or from my point of view, there's been a lot of how you make your Frankenstein's monster, where you need to pick the head that you want to have on it and then you need to pick the arms that you need to have on it. And there's been a lot of DIY involved and a lot of decisions involved in how you set a system up for this.
I think that's problematic because if you come into a mindset or an architectural style and the first thing you need to do is to make all kinds of weird decisions about technologies and competing offerings, without even having the option of doing anything yet, I just don't see that as being easy or a low barrier to entry or even a way to become successful. So I think in order to have microservices succeed as an architectural style that is viable for virtually anybody who wants to write a system, I think there needs to be a solution. Like you can't force people to make a lot of very advanced decisions before they even can get started doing anything.
That's 2016 for me. I think we'll see at least a few but hopefully some good ones that can distill this and offer something that is usable and useful and let's the adopter or the user focus on the decisions that make sense for their system rather than a system. So that's my number one.
Tonya Rae Moore: I like that.
Viktor Klang: Good. I have this sort of romantic idea about machine intelligence that I think also will be -- like 2016, I think that will be sort of a pivotal year for machine intelligence.
Tonya Rae Moore: Have we been having a lot of breakthroughs? I love machine intelligence, but since I started working at Typesafe, I have not had time to keep up with what's going on.
Viktor Klang: There are some interesting improvements in quite a lot of the different "depth" of machine intelligence, both from the application thereof and also from the power or capabilities part of you. So from the product/usability or usefulness, I think Tesla's done some pretty interesting stuff.
Tonya Rae Moore: Oh, for sure.
Viktor Klang: First and foremost, having cars that you can send software updates that actually add meaningful features. That, to me, is quite interesting. But, I mean, adding features where you can almost have the car drive itself, the car can sort of come and pick you up and stuff like that?
Tonya Rae Moore: Right, weren't we talking about that on internal chatter the other day? It just comes and picks you up whenever you're ready to go home.
Viktor Klang: Yeah. I mean, that is super interesting because technology doesn't necessarily have any value in and of itself, but in its application, the value appears, right? So if you mention features like this to people, they get excited, but if you mention machine intelligence, they might get frightened, right?
Tonya Rae Moore: Right. I think most people have a very terrified reaction to the words machine intelligence together.
Viktor Klang: Yeah. To me, I mean, I'm probably bastardizing the words here, so I prefer not to use artificial intelligence because it feels -- it's both laden with a lot of negativeness and then sort of dystopian futures and --
Tonya Rae Moore: Yeah, it's like got a lot of pop culture to AI, I think.
Viktor Klang: Exactly. It's also hard to know whether you're talking about the same thing, because it's a very broad, common definition of artificial intelligence. And I think there's also a consciousness part attached to it that I don't necessarily subscribe to. So I prefer machine intelligence because it's more sort of un-person-y. There's no consciousness clearly involved at all. But it's more sort of having an automated way of understanding things and making decisions based upon that understanding. So I hope we'll see a lot of more interesting and varied applications thereof and hopefully a couple of interesting breakthroughs in capacity or capability. But, yeah, I'm super excited. I have tons of interesting papers on my to read list that seems to grow more than it shrinks. So --
Tonya Rae Moore: I was going to say, aren't you only like six months behind at this point?
Viktor Klang: Actually, I'm probably around like two or three years behind right now, so I think I calculated if I get on top of that, I'll probably be done if I spent all my waking hours for a couple years. So if the world sort of goes into hiatus and do not produce any material for two years, I'll be fine.
Tonya Rae Moore: Awesome. So we are looking forward to the zombie apocalypse, where we can catch up on our reading.
Viktor Klang: Yeah. We could ponder the things that could've been.
Tonya Rae Moore: I do that every day. That's already where I live. All right, well, I think we're going to wrap this up because it is now your 6 o'clock, and it is time for you to go home and see your family.
Viktor Klang: Awesome.
Tonya Rae Moore: So, Viktor, this has been a real pleasure for me. I enjoy chatting with you. And I think that we're going to do this again once Death Nacho releases some really cool stuff that we've got down the pipe. We've got a lot of work to do and a lot of stuff to talk about. So I think you and I should do this again sometime soon, okay?
Viktor Klang: That sounds fantastic. So thank you for your time and for the great questions. And I hope I didn't bore anyone out there. So if I did, you'll have to tweet me and tell me that I did.
Tonya Rae Moore: And then let me know because I want to see someone tweet @viktorklang “you bored me.” I want to see that happen.
Viktor Klang: I want to see it too.
Tonya Rae Moore: All right, yeah. All right, folks. Check out Typesafe.com for more information about everything that we're doing right now. And tweet at us, please. @ViktorKlang for Viktor THE KLANG. @TonyaRaeMoore for me, and @Typesafe for Typesafe. I also check out the #Typesafepodcast for feedback and suggestions on any improvements. And we can crowdsource some more questions if you guys want to talk to us. Thanks to everyone who listened!