SF Scala: Bill Venners Interview
Recording: SF Scala: Bill Venners Interview
[Music] hello everybody i'm alexi Calabro for the organizer of SF scholar and here we are back on location at trade shift it's a great startup using akka and Scala and Java and we have a great talk today by Bill winners the creator of Scala tests and last time we'll give a talk it was about scholastic ah all right so I think it's been a while hmm so um so maybe bill will welcome you and ask you for an update what happened since then well this talk I'll have a little scholastic in there too but this talk will be about property based testing in general but we are adding a generator to skullossus through that one so I'm gonna talk about Scala check and our generator that's coming and how they're different mostly oh this is really cool yeah that's really cool so maybe you can talk a little bit what you've been doing generally since then all right so well we do mostly consulting and and we did this g i-- r actually wrote the generator over two years ago about 95 percent mm-hmm but it was not documented yet and i always document everything before I release it I have this rule I think that helps me find places that aren't simple enough is like if I go to document and I can't figure out how to explain it that I'm like okay maybe that's just too complicated so I help Smee actually to have that rule to keep things simpler just because I forces me to explain it before I release it and there's you know now that I'm going through and even prepping for this talk I'm like oh that doesn't work yet so I actually implemented something just for the demo and then we'll have to fill that in before we release it but that's basically two years ago we got a contract that I was working full-time and that just took all the time away and that we just never really got around to it again until now mm-hmm so that's we do our team is my company we do a consulting and training and you know publish a few scholar books and open source we do is call a test yes galactic yeah yes and I'm wondering with Scoville 3 yes he's a real or new addition in the offing of spell test of Scala book that's got a book yes so for a Scala book there's this fourth edition coming soon I don't wanna do another printing of the third so that's how I you know it spins on how fast those so why shouldn't said then I just I just what's that called Osborne to myself yeah yeah fourth edition the images for two thirteen so working on that and someone helped us with basically the the collections library is what's the big change into thirteen mm-hmm and so well we had like four collections chapter so that was like a major surgery well and so Dottie is Martin or dare ski his compiler that he's been working on for four years his group at EPFL and it's open source so the community's working on it with him that's where he's tried a lot of ideas that he has in mind for a potential future scholar which they decided is Scala three yes not everything that's getting merged into dotty will necessarily get into Scala three because that all those things have to go through the SIP process and you know it's but like the two thirteen collections revamp is Dottie's collections library so when they when you go from skull two to Scala three if you so choose to do that the collection shouldn't change that should be the same right so you're gonna have to go through that pain to the extent it's pain from 212 to 213 so then we want to do a whole new like you know like all these additions were just okay let's tweak it for the next release of Scala this is a big change right I think it's a good time to wait you know change the book and really kind of its a whole rewrite then is what we have in mind for skull a3 right but that's we haven't started that yet other than like having deciding that's what we want to do the books been around for ten years it's it's kind of a you know it's sort of it's it's sort of established so you can't change it too much it's already kind of a a classic I'm sorry some extent so so but but three you can change it you know that's what I was thinking interesting yeah you know I just realized basically that Scala through will be real where there is a bill banners book on it because we can't know for like you know Scala for me which he realized through the staircase okay right so I guess and I think like there is a pattern that things kind of exist commonly the community when they get into Scala test right it's kind of yes right it's like you kind of take kind of the the for all things and you kind of ground them right and then right and I think that can be a heuristic I believe stories mainstream when there is a scour book edition yeah on it and Scala tests were porting it to Dottie so we are into thirteen three one we're gonna drop support four to ten finally and we're just drop support for Java six in 211 so two twelve requires Java 8 mm-hmm to 11 does not but we're only gonna if you really want to use two eleven on Java six you can still use the 3.0 series will still update that if need be mm-hmm but that's where we're kind of moving on so we're dropping some our test makers is really big because we have JavaScript and some native and and you know all these versions 210 211 212 and 213 miles and releases so we're gonna drop 210 Java 6 to 11 and then we're gonna add dot e so we love JavaScript and some Scala native to the extent that works and and the Dottie so the main problem with Dottie was the macros because we have lots of macros and those are completely different in in Scala three-year and Dottie so we're currently working on that so let's make a wild guess when do you think the definition will muscala test scope I was color book oh I don't know but what I would do is start it and once I started is make a preprint early on probably so the people can kind of help it and we can all kind of figure it out together like we did for the original Scala mm-hmm that book was out in pre print form which is like it's not finished but you can you can buy the e-book and you can actually you know maybe some app you know yeah and these little happy make a comment it was all kinds of great suggestions for people so that's what I'd liked it that really helped us make it good and it's a different book than the Scala to a book essentially so so I don't I don't know I've finished the the fourth edition any yeah first and then I've been I want to start on the the Datuk book cuz that's gonna take a few years and it'll take a few no no I think it'd be nice that it comes out like I'd like the fourth edition to come out when 213 comes out a fifth edition to come out when 214 comes out hmm maybe there's not gonna be a 215 maybe I'll be Scala 3 that's when I'd like the the other one to come out okay which would be nice just so it's not it keeps up to date we actually did get the third edition out one to twelve slightly before 2/12 release mm-hmm well that's great yeah I mean like it's still my recommendation to everybody learn Scala know I get this and I like to read it and I have the PDF as well right the PDF is beautifully cross-linked yeah so cool so and kind of so I'm in schooltas is a major project like what else is kind of tickling your interest I remember you were doing genomics at some point before right right yeah well ago also like is there any kind of interesting application you seen in the wild scholar like you're working on well actually you know what I what comes to mind is I'm also the community rep one of them on the advisory board of the Scala Center people don't complain so I started doing what did I call them no I forget what I call the thing but basically going in to companies and just kind of talking about what's coming in Dottie and then asking for their feedback so basically I want to hear them complain what are your pain points right so it's like a brown bag lunch right and that actually works and I feel a little bit like a scholar psychologist right or psychiatrist you get on the couch and I say so what what is your pain point so what how do you how does that syntax make you feel and you can go it's kind of useful because they can see what's coming and they can give input this is interesting that's that they don't like that or that's not worth the trouble or whatever I think that was that's working really nicely getting input now accept new patients yeah that's something I mean I just do that for it's like volunteer well all this open source is kind of like volunteer work can the company invite you yeah Bromberg on yeah take the boss yep well I would take so the thing I try to do to make it worth their while is talk about what's coming and then they can kind of see all the features that are coming in yeah that's interesting for a brown-bag lunch right because you don't have to have lunch anyway that's right but what I try to do is like and sometimes like extracting teeth you know it's like well do you care I mean for what you do here right is that feature added to a programming language that you're using for whatever using for it does it matter right I mean really that's what I asked and then they keep an eye interesting what comes back for me that I couldn't bring that back to the Scala Center well I am mm-hmm I am because I I don't you know I saw what happened with Python I used to have people in the software community have blogs on our team uh they're still sitting there yes so guido van rossum was talking about he's like you know gonna just not worry about breaking things in Python 3 in his blog and then he came out it was nicer but yeah but I think he you know it was hard for people to upgrade for many many for like a decade if you're like difficult I think Scala has an advantage because we have types yes so that's like you'll get a type here at compile time right but man if you don't get a type here that's just if it's not you know if it's not safe to upgrade or like worried oh they put set resolution change so what does that mean my production code is gonna be something different right there love address very scary right now so I'm really worried about that so I always that's might been my main I'm I'm like a broken record if the five straight board meeting is it's like but that's the thing I usually talk about is I gotta hear about how you migrate in them right you know but it was a member or that from Nitro that's right that's right well in the phony group and I remember the temperate yeah to ever improvement proposal he was kind of don't yeah and say let's make sure the migration that I go smooth the if changing the way if work looks you know like if open prints expression else expression there was a proposal as if to say if don't need prints mm-hmm then mm-hmm expression else expression it's just cosmetic yes but it I think it's a it makes the language more regular as Martin would say and I like it but it's like is that worth it he was quite down on that he didn't like that one and and then you got did rejected by the SIP I mean I wasn't I don't remember that happening but I saw it's like rejected mmm-hmm so then somehow it was in doggy so it actually isn't doggy so again it's one of the things that may not get into Scala that was already rejected um but Dottie has the that form of then you can if then yeah but I think the major kind of focus then in terms of pragmatic effort was like let's instead of beautifying skull of a spark which was out of like requests let's make it better right like let's focus on the fact that there is so much investment in Scala - yeah right now there are all these companies like Verizon we have enormous called bases yeah right then people kind of run production goals so I think the idea was like let's make sure that that's not being disrupted and all these companies are represented on Scala center they have this investment so do you think they will kind of put the brakes and make sure like in my mind that's kind of sufficient group of people who have enough investment and the whole basis like millions of lines of skull probably among all of that I think it's inevitable there I mean Martin cares about - yeah everybody cares about it it's not just a I mean there's a lot of people using this stuff so you can't you know you have to you just have to you know like Ascot for example Scala tests the way I feel now is I just I got to keep it stable I want to fix you know add a few things but it's already big enough mm-hmm too big maybe but it's it maybe it's just right if I add too much more than it'll be like oh now it's way too much and it just needs to you know there's ways I can if it's like a modest improvement it takes a lot of user changes then it's just not worth it just keep it stable it's like a like a utility right and it just happened that's what I'm gonna try to with Scala testing I think skull is becoming utility and you can't just like change it right so you have to what I like about what the communities that does is we care about making things better mm-hmm but we also have to make sure we care about how you get people you know in in to that new better place carefully yes so that's I hope the cops you know like I like their way it's called hard work so I look so very glad you are like a major representative so please hold office hours okay we'd like to feel we can do it officer sure we can lost them you can receive visitors and check the scallop all something happen actually I you said that you do you maintain this matrix and you have scholarship support yeah and you can score native support yeah so I'm curious but if is it indicative scale lessons in the way then can be married like a measure how much adoption of these things is happening yeah how do you see how much traction do you have ecology essence color native from the skull of this side so skull test wasn't the first framework on scholar J yeah right and so that for there's always first mover advantage right so I think that it probably has less market share in Scala Jo there's a small test from work from yeah you you yeah the micro test yeah but he sees its he spells it with a you but he was just like I'm Mike moon yeah any crew yeah alright so so I don't know I mean what what I think is one of the main ways people use Scala Jay yes is they can share code between the server side and the client side in a browser and that's sort of I can do that that's sort of a claim to know jsy you can have JavaScript on both sides so here you have skull on both sides and then if you have shared code like classes you serialize back and forth or something if you have test for though is this nice if you share those on both sides so I think it's just kind of depends on what you're using but it's a small I mean the main way Scala is used as the JVM still yes jas makes sense for people using the JVM who also have a you know they're using skull in the JVM they also have a web claim mostly and a native isn't really ready yet and neither is dotty I mean like every night it's something else doesn't work and so we have to get that fixed in mm-hmm so it's not you know it's it's still under development for sure and they're even figuring things out you know they're still deciding how to do things the other thing I mean you asked me of the things I'm interested in I'm doing a lot of reading about types system theory type theory and you know trying to understand independent types and how people do proofs and those languages like that because I like what I'll show tonight the property the way you express a property based test is with a statement of logic mm-hmm predicate logic and that's also the same way you would make a claim about something that you would then prove like the mathematical way with mathematical proof so they're really that it's the same input from a property based test to prove so that's that's the other thing I'm kind of trying to understand better you're saying lately when they understand that give a talk about it okay and I noticed that you know I very happy are back with training so you know doing and it sounds very exciting it sounds like a scholar retreat yeah so I hadn't done public workshops in a long time and many years I decided to try it again we decided to make it more fun and more effective maybe because just just do it in a beautiful place essentially it's just a scholar workshop it's some fundamentals you learn Scala without knowing it before or advance you've been using Scala for a while and you want to polish you know and learn more not the advanced stuff and then we have an effective Scala course also so there's just our main you know our usual Scala course that we do in-house but public instead of just like finding a you know these training centers that are fine we go where we can go hiking and then have conversations on the hikes and so if I haven't haven't gone venture too far out we have two over coming in March in the south in East Bay and one in Southern California mm-hmm but you know there's some other parts of the world that are actually quite quite nice yeah we'll see but that's kind of there was a guy that did cruises like conferences on cruises you ever hear those that worked for him for a while until he I don't know either it didn't work or he showed or something I haven't heard in a long time yeah you got thrown overboard I don't know what happened I just so I just thought well why not you know it's it's education it's our normal course but it's in a nice place let me on the what what is it like there I love you there you say so it's something me although yes anyway ah no is a retreat center it's called and it's it's a Franciscan I mean it's a like a Catholic it's like a part of the Catholic Church or something yes I'm not sure what it is but there's a monks there okay and so it's very peaceful I'm just saying and it's just you know like it's in the hills up there it's required and beautiful and you go hiking it's right right you can go up the hill - what's the name of it I'm blanking um last romp less open space preserve and hike up there so that's what we we do when we were there so how are you starting out the board do you like oh we walk after after lunch we'll take a hike after lunch okay if it's like the one time we did one there was during the smoke remember that campfire yeah yeah yeah so they it was dangerous to be outside so we do it too much hiking now that one skill by the bay yeah yeah so yeah that was a tough time yeah that was tough yeah but it's nice now and I think inducing Marsh we're ready to March and it shouldn't be raining him but it might be like so so you are you in the front of the group and you're solid you know we do usually classroom style where people sitting there and and for fundamentals um it's not really more projects people work on their own but like if you only walk you just randomly walk yeah so you talk to each other basically no not on the talk a rock people talk to each other and they learn from each other and come from different companies that's the other thing is like that's different between an in-house training you get and your company mm-hmm and going to a public event is you'll you'll meet people for other places and get different inputs you know this electrode rental all of those folks because you know I read history yeah and so there was this Greek school of peripatetic s' so peripatetic sexually believed in learning on wild walk while walking and so thank you so the philosophers actually I would actually lecture yeah during so it was about philosophical concepts right so there's a lot of philosophical concept is about software right so right it there's a lot of interesting conversations that happen on the hikes and I think the exercise and the views that stimulate that was part of what I I wanted to you know mix into the education so like you know I hope to check it out oh yeah you should come on a hike at least yes you're welcome to come good yeah so you look up the information of the myth up yeah right so you know if you guys are interested in joining we have it all in Bill's talk announcement and checkouts Arthur mouths calm yep cool well there feel very grateful for you to coming down and giving us the news and looking forward to your talk all right thanks Lexi you