.NET Rocks Live with Jon Skeet and Bill Wagner – Two Nice C# People

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
you ready hey London its darknet rocks [Applause] the miming of beating people with chairs is very effective it works well get some all around e yeah Londoners don't need encouragement though pretty rowdy bunch absolutely you guys are awesome rowdy yeah okay little late we've said man city rocks what would happen so welcome to dotnet rocks I'm Carl Franklin says Richard Campbell our guest bill Wagner and John skeet you probably know who they are so I don't need to introduce them but we do have this thing that we do at the beginning of the show it's called better Noah framework so roll that music everybody want to sing it yeah we'll pretend we're listening to that stupid man yeah and of course you're seeing the sausage being made right now every time we talk about how goofy that music sounds that's a lie we don't I don't hear it added later now you know and all this gets fixed in post-production we have editors they're so good they even make us sound smart I love editors everybody should have editors so I'm gonna say again go ahead alright buddy what do you got well earlier in the week as in yesterday when I'm talking about for the listener there's probably a couple of weeks ago yep we were talking about blockchain and Bitcoin and all of these different word elahh was talking about wanting to to buy some Bitcoin processors right and there seems to be a consensus that nobody really needs blockchain developers you don't need any blockchain in your application that would be a bad idea however Business Insider seems to think that there's a growing list of applications and use cases of blockchain technology in business and life and I'll read what they you know you can read on the details this link here sure so in banking and finance international payments capital markets a trade finance regulatory compliance and audit because of the secure nature of blockchain be rather useful for accounting and audit money laundering protection not one that really sees you work out well right seems to be the opposite that the money laundering but so I'm not really sure how they're coming up with these things but insurance peer-to-peer transactions in business supply chain management healthcare real estate media energy in government record management record management in government you mean they manage records talk about the United States and that said yeah I mean I can only speak for my big country hey hey hey hey hey easy ID Identity Management voting taxes nonprofit agencies legislation compliance regulatory oversight and in other industries financial management and accounting shareholder voting record management cybersecurity big data data storage Internet of Things voting did I say voting yes voting yes so they really think that that this stuff is going to explode and apparently there's a bit of been a lot of hiring of quote unquote blockchain developers people that can actually write code against blockchain not necessarily for Bitcoin but just to to you know do the computation driven of publicly visible if anonymized transactional records that's right all right yeah so you know it's interesting read well I certainly on my radar for doing shows around but I really want to wake you filled with some better dev kits Emes the keys and stuff around it so we I really have some place for people to help pretty smart that's what I'm thinking so who's talking to us buddy I grabbed a Commodore show 1479 the one we did with mister skeet back in September of 2017 we were talking about dotnet Diagnostics I think that was at the skills matter show yeah had a lot of fun in that conversation but John being John we ended up talking actually a lot about inclusion yeah and diversity and that's why I read better than I feel I'm gonna make funny later first I'm gonna see something nice to you get you off your guard then I'm gonna beat you like there's a pattern here but this comment comes from kudos and I don't know that I'm pronouncing her name correctly but she's from Pakistan and she says as always great episode and loved listening to John Skeet in the mid 90s in Pakistan I was trying to figure out what to do with my life and somehow totally coincidentally I ended up in the computer science degree program I had never owned a computer or a gaming computer before that I was anything but a geek huh somehow I still fell in love with programming and the field as a whole today I still spend most of my time coding that last bit about empathy and respect and inclusiveness this is your words my friend really hit home with me on a totally different angle everywhere I went this is I think after she's involved in software development everywhere I went geeks loves Star Wars Star Trek and Lego look you can't love Star Wars and Star Trek at the same time there's basic rules actually you can I think all the references seemed like inside jokes to me I understood tech but I felt like an outsider until only a few years ago I felt very insecure about this and would not write a comment like I am writing here today now which I'm flattered by that you would write on our website did she use the force or teleport don't think she did either one actually okay the point raised by skeet about women in tech is much bigger than what I have experienced but it's all the little things that we do the little assumptions that we make that can push others away and that we all need do a better job of observing thank you for being vocal about it mr. ski cool on that Star Wars and Star Trek front I know there are studies around workplace and what you do in your workplace and if if your workplace is covered in posters or models and things that you think are just kind of fun and all about Star Trek for example great and if someone comes in and they're not a Star Trek fan they don't think oh this person like Star Trek they think this isn't a space where I'm welcome right exactly yeah so it's all unconscious it's not it's not that someone saying we only want Star Trek fans in our team right it's just that's the message that is unconsciously and you entirely accidentally you no one wants to give that I doubt that anyone hands up if you want your team to only be Star Trek fans or what if you're actually that kind of we're a Star Trek the row of issues I'm saying now I'm coming at this from a team management perspective and I would never suppress anybody's desire to decorate their workspace the way they want to but I think what you're describing also is at a point where we simply say this is the room that I would argue I want each person's space to be decorated a little bit differently so that it showed a diversity rather than a homogeny right which is good if you've got a diversity if you have a team that all like the same thing then you end up with don't be surprised that you have a hard time finding anything else yeah and this is one of the good things about working from home you can decorate your home office however you like and no one will ever know this what you wear hey no inside jokes over here so yeah I have I work from home in my shed and my shed has a surround sound system an ice-cream maker a Miro print and these are probably not things that you get in the everyday when you say shared exactly are you talking about like a tin shed so it's it's a garden building yeah is separated into two halves there's one thing half has like the lawnmower and stuff in the corner is really a home office it's a tiny house so me let me close this up by saying kudos thank you so much for your comment it was a pleasure to read it and I'd love to say you dot that rock smug and if you'd like it dot that rocks mug right accompany me say it again see these you'll never sign it you'll never hear now you know the bet it's gonna be perfect on the show yeah let me do it again and if you'd like it on that rock smug right a comment on the website at rocks caller via any of our social media cuz we public treasure show to Google+ and Facebook and if you comment there we redoing the show we'll send you a much and definitely follow us on Twitter I'm at Carl Franklin he's at rich Campbell sent us a tweet we power our work drives with him nice they look like crystal sorry very sorry alright guys should we have a talk about something do you need to introduce these two I don't think we don't really think of is anybody not know who either of these guys are bill why did I title the current session correctly two nice C sharp people yeah we'll find so often when you have a two-person panel it's supposed to be confrontational but I can't imagine squeezing a confrontation out of you unless you put John in the front row I mean I suppose we should just say John works for Google and in the C sharp on the Google cloud platform area he's been a c-sharp fan he's probably the number one contributor to stack over not probably he's the first person in the history of man to exceed one me reputation points and the next one downs not even close like you now have the billionaires problem you're gonna make money faster than anybody can L speak money there's nothing you do not sure we can kill you now so I I do hit the rep cap so I now answer only one or two questions a day generally I spent much more of my time I spend loads of time on Stack Overflow but mostly adding comments saying could you clarify your question and you know here's the ways to do it right but in fact just before coming up to this level I was on metal Stack Overflow where someone had said who's who's the person who in the blog post graph that psych over flow posted it showed someone else Gordon enough has a very small question why yeah yeah well very linear yeah no still basically answering the same number of questions every day as he did a few years ago mostly on sequel I think yeah and the question was when will they overtake John and the answer is they're about three hundred thousand three hundred fifty thousand behind at the moment amir and they're gaining at about fifty thousand a year which is very significant because basically we both hit the red cap every day or I'm not sure that Gordon actually hits the red cut from votes every day but gets loads of accepted answers okay right whereas I hit the rep cap I've hit cup every day since June 2010 okay you know as you do they put the ramp to the rep cattle inside the documentation was for John skeet well it really isn't the state if you we had I asked a question on the met Stack Overflow saying it isn't a bit coincidental that before we knew what rep would be like you know in the first months of Stack Overflow the rep cap was set to 200 a day you know sounds a nice round number what are the chances that we got that right yeah and that all the rules were right shouldn't we have a look at various tweaks maybe you should stop getting rep after a certain number of votes or after a certain amount of time and various people played with various ways of tweaking the rep cap and pretty much whatever you did helped me and hurt everybody else oh yeah Jeff AdWords called it the John skeet tax okay let's talk about Bill Wagner for a minute Bill's been a C sharp author and developer for many many years effective C sharp consultancy best-selling book I was a regional director and then joined the Borg I'm sorry did I'd make another Star Trek reference so he now works on the.net core content team right yeah doing the best documentation ever done in the history of software I think we try no it's you succeed yeah it's amazing yeah it's amazing so we thought we'd kick out on a little C sharp he says C sharp done yeah get it can can I lead off there with after Raza and where do you go yeah okay so no it's not otherwise you're out of a job oh you have no idea how big the backlog so a lot of the things that we're seeing that we're putting into c-sharp and the team is looking at come from a couple of different places and you've had Madison here talking about language design and looking at absolutely and if you look at C sharp it was first being designed late 90s or mm first shipped in 2002 we built programs using objects you know that that was the way it was have a choice the things objects all the way down yeah yeah so its objects all the way down there that object orientation is in its DNA and that's not really how we build programs I don't disagree and I think it's a really interesting point that and kind of stepped away from these different rules of object or still a lot of areas where object orientation makes sense but there are a lot of places where it doesn't so with a lot of the features that we're adding in c-sharp its how does C C sharp stay really relevant in this world where now we're separating data and the functions that act on that data instead of putting them together in an object and yet still it has that object-oriented DNA we can't just get rid of it and throw it away right so how do we we live in this world where things are now very different you know data stored over here we manipulate it over there we send it to another machine we hydrated send it off rest calls and so on and we work with different languages in different parts of the program which also I don't find particularly anonymous yeah nama lists no he says we've always had sequel in the backend right and some other front-end lines so we're looking at a lot of features into how does it stay relevant and stay a first-class language in in today's world yeah in my deck and in in Mads we have these two slides that show most popular technologies most love technologies and c-sharp is one of three things that are on both slides right the other two are type script in Python mm-hmm you know and how do we stay on both slides I really want to do that the other thing you're seeing a lot of good ideas come from is the C sharp team now in a post Roselyn world they're now working in c-sharp every day you know in the pre Rozlyn world they're writing c++ in their day jobs coming up with what would be cool for c-sharp but they weren't using it every day all day or at a time now the c-sharp team is writing in c-sharp they're using it all the time they go wouldn't it be cool if yeah and then they just make it happen and we start prototyping and looking at it going through common it's currents that you're you guys are sitting around you know looking through the backlog and just some random comment and github or something about a suggestion that nobody had thought of like nobody or the good ideas typically popular by the time you get around to I've usually blogged a request ages ago [Laughter] anything like that you oh wow I didn't think of that I mean being John skeet and you would not considered something so one of my great experiences but a nd seals though many years ago Eric Lippert was there Neil CAFTA was there relatively new to the C sharp team at the time and Matt saw Gerson was there and Mads did a talk on c-sharp 4 followed by me during a talk on if I ruled the world c-sharp 5 according to John in front of the actual c-sharp team is like wow followed by a panel discussion like this with you know the three of them and me feeling sort of out of my depth mm-hmm by a long way and none of what I asked for was in c-sharp 5 when I saw C sharp 5 it's like thank goodness they did that instead because I would never afford I think it's sort of paradox yeah you don't see your own restrictions and it takes real genius to see ah there is this thing that no-one's done before I know async kind of things have been done in a shop before but other other aspects that no-one's done before someone's got to think of it first yeah and I'm definitely not nowhere near there but I can think of little ideas so yeah I have one feature request which is we have various things that end in a question mark now why can't we have returned question mark so a binary operator or statement so return quest remark condition : expression which means if this condition is true return the value of that expression otherwise just go on to the next line so that we don't have one of the most common forms of if statement is if this condition return a value yes this condition return of yeah and just like I've always idolized joked that it would be nice to have an as if expression if X as int I and now of course we have that with pattern matching yeah so I'm hoping that you know maybe the return question mark you know maybe return will get some traction who knows interesting you could implement it I mean the whole thing's open-source now you could just stop answering all those Stack Overflow questions John and would you actually get that one of the ones in c-sharp seven I think is when it came out is was implemented entirely by the community and implemented by the community in c-sharp CIPS six we had expression bodied members but there were some places they weren't allowed like constructors I think was one property centered any property that had both get sunset you hadn't have liked and that people in the community said why not and then went and implemented it mm-hmm expression body members finalized errs constructors property getters and setters proposed by the community approved by the language design team PR written boom nice that's gonna be a day that that the team opened a bottle of champagne or something to when it would a significant feature gets implemented by yes right somebody's not on the team yeah but in terms of how far see shop can still go this is a question that worries me quite a bit for us to stop you much as I enjoy writing about c-sharp I would quite like to have the final edition of c-sharp in depth and then maybe get around to writing something else moment every couple of years I'm gonna have to spend a year writing and at the moment I can't even know what I'm gonna be done with the current edition because I'm trying to cover all of seven point star and they keep bringing out new versions sure yeah you'll only know for sure when you start working on eight but they're working on eight but they're not gonna release eight for quite a while right yeah and in the meantime just just seven point three but I have serious concerns around how large the language language can grow right because if you are starting c-sharp today you've got a big big Hill tonight shirt right it will only get bigger and at what point what interest me as much as what would the team like to go back and change is if you were starting from a blank slate now yeah well both with language and you know if you really had magic dust and could say and we'll have a new VM at this point as well right that could do we blank slate I'm how different would it be and how much will that perfect language well you know as perfect as we could imagine now diverge from where C shop goes anything cause illiteracy some would say you'd end up at F sharp will there ever be a C sharp light like a core that would be hard there's billions of lines of c-sharp code in the world right yeah I'm sorry it's broke now no ii but i might say for example of something that the team decided not to break is effectively a bug in the c shop compiler in that it violates the spec that you can have constable zero equals zero point zero and then you can have enum foo with some enum values and then you can do foo x equals and then your double constant you know we made a promise on the show we would never read code on the air that was 14 years ago guys hold that thought just for a minute while we pause for this very important message and we're back you're listening in.net rocks we're live in london carl franklin richard campbell a bill wagner and john skeet we're talking is is it possible that let's see sharp could ever get too big yes so here's one of the things that i do so my job is basically explaining what the team comes up with writing all the docs for that and one of the things that do with new features and i sit down with the team it's usually julienne cove air and we go over the features and one of the things that i want to be able to say about any new feature is okay so here's what it does and it works pretty much the way you'd think it would and then I can go into all the details about how that works and then at the end I can go see it's pretty much what you think it would yeah and the more those details are something different than pretty much how you think it would you know those those are warning signs that you know now we're getting complicated but who is that you that you think it would and is it someone with decades of experience right and of other languages and stuff or is it someone who's learning c-sharp maybe as their first language a little bit of both right because you're seeing these tokens you're seeing these things that look like symbols you know it's no surprise that the symbols we use in any programming language are somewhat similar or now it is two mathematical symbols because people are familiar with those so we have this this thing that's already there and you kind of squint and it looks about right and a couple of the ones that are really interesting that our historical if when we added discards to tuples so you can declare an underscore where tuple goes and we throw that away and we don't even assign it to anything and it's not a variable you can't look at it and you have to discard some of the schools where come assign thousands to the same other sweethearts then you should have folded so effectively what it means is this routine returns three or four things and I only want one or two of them minutes are on the rest away and when designing the feature and getting feedback there were people who were who were saying that underscores too small I can't see it I I want something bigger and more expressive more obvious and Neil CAFTA had this absolutely perfect answer to this he goes you want that right now because of what you're thinking it's a new feature and you want it to stand out right a year from now after you use it for a week or two you don't want to see it yeah so it's this it's this trick with amateur language of getting something that looks different enough that you see it differently but then right into the vocabulary that you already and that's a sign of Neil's experience he's been there just a few times yes another great example of that about how things change when I wrote the I think first edition of c-sharp in depth um I was saying about var here use it really carefully and be very deliberate about where you use var I hardly ever use var apart from for rare expressions or whatever there's anyone else in that you were really tentative about using far I use it everywhere have you just got reckless in your old age now so it is it there's a million rep points make you crazy it's also reminds me of Java and checked exceptions I felt very nervous when I came to C sharp sir there are no checked exceptions my code is gonna be awful everywhere and break everywhere what a checked exception John so checks exception is where the compiler there are some exceptions in Java that checked and some that are unchecked and if you've got to declare that your method might throw a checked exception otherwise you can't throw it and if someone is calling your method then they've got to either catch that exception or declare that they might throw it as well so otherwise it won't compile yeah so it's it's not just a comment saying this method can through these exceptions yeah it's enforced by the compiler it's an assertion essentially but anyway I I felt safe in this the seatbelt lies told to children [Laughter] fun and profit and it's still a raging argument in in the java community whether it was a mistake or not right and various certainly last time I used hibernate which must have been ten years or more ago most hibernate exceptions were unchecked ones so they extended runtime exception and that was deemed fine and it turned out that worked okay but I was really nervous to start with and now it feels like not having checked exceptions not having checked exceptions in the java style was fine and i think we need better error handling but i don't know what it is rain tomorrow docs again yeah but i feel very much the same way about VAR i felt uncomfortable so I was quite nervous about using it and it turns out that the things I was nervous about on problems yeah yeah I'm still somewhat cautious if I think it aids the readability particularly if I've got a method that's longer than I would like it to be yeah or an expression that's not as obvious as I'd like it to be then sure you use an explicit type but yeah I don't know the time yeah yeah what do you guys think of poly for handling transient airs I like it there's there are a lot of really really good patterns for handling errors especially in distributed systems implemented in poly so Polly's a open source project no Carl's companies involved into Eisenberger and a number of people there it's got circuit breakers yeah circuit breakers that reset that's right try and wait wait and retry wait retry forever with it I think it's it implements a lot of really good patterns especially for distributed micro service systems I think it's awesome yeah it's good there's a rumor that it the guys in the dinette core team are thinking of rolling it in somehow I I don't talking about it yeah I know that yeah and I don't think I'm breaking any rules by saying I think they're talking about it we'll find out there's probably a github issue that would track it so it's a sort of interesting reality that doesn't seem like is actually any secrets left because in reality if you go three-d-- through the notes yeah on github every idea every conversation every debate it's actually public it's just that most people don't read them this that's been fun and and there's some really interesting things there is that Mads is officially keeper of the language design meeting notes and it's very careful to put those out publicly but without any names attached interesting so so all the opinions are there but it doesn't say who said what I just the room great than the opinion or several opinions of the room the discussions more in person more important than the identities yes yeah and it's not all the discussion either so we have the same sort of how public do we want to be for the ACMA standardization you will use github issues for that we have hundreds of issues and currently that's private even though the Sun that is public and we have talked about well we could open it up we could open it up read only etc and we thought that to avoid chilling effects of someone I've written a bunch of stupid things in there it's like well why doesn't this work oh because of its usually Neil Neil is fantastic I will say something stupid and Neil will come back very Pilate I think it's like well here is the the counter example to your suggestion Jory so we don't want a chilling effect and Mads taking a time he doesn't publish the notes immediately I don't it's not like he drafts them during the meeting anonymously and then immediately publishes them takes a little while so that they can so that the important things race the surface of his mind right right apologies Mads if I miss misrepresenting you here but I think this is what I remember him saying when we discussed this yeah for a little while because I found it very interesting process to get all the good things of public debate and public awareness of reasons behind the decisions that are made without any stifling of discussion debate yeah that's great yeah sort of avoiding the political pressures around that yep in certain names and weights and things cause it's very powerful yeah it's much of course very thoughtful yeah yeah well uh Richard yeah buddy it gets what time it is now I must be that happy time again yeah it's time to suggest a new language a dumbed down version of c-sharp as we were talking about with all just the the features that John skeet wants it's called C dull C flat now C dull either way it's not funny oh my god never spurred crickets like that my life you die better than anybody it's actually time to give away a D experience subscription from our friends at DevExpress are you guys here we've gone back there no nope again missed out job raised your hand on a radio show we're gonna be away ad experience subscription to one lucky member of the dotnet Rox fan club become a UI superhero with DevExpress UI controls and libraries and deliver elegant net solutions that address customer needs today and leverage your existing knowledge to build next generation touch enabled solutions for tomorrow whether it's an office inspired application or a data centric analytics dashboard DevExpress universal ships with everything you'll need to build your best without limits or compromise and check out their dev Xtreme react grid built from the ground up to fully support all the cool features that come with react like the virtual DOM and state controllers like redux it supports master detail sorting grouping paging and editing you can check it out and test it for free on github but learn more and download your free 30-day trial of DevExpress Universal at DevExpress comm slash superhero all right buddy who's our winner today's winner Richard is mark Broadhurst relations Bart you're never a round of applause golf black mark just won the dxperience subscription that's a big pile awesome for my friends over at EV Express just for being a member of the dotnet rocks fan club and if you want to know what that is go to dotnet rocks com click on the big free button yeah nice click on the big get free stuff button answer a few questions and join the fan club we have thousands of members all over the world and every show we'd like to give away stuff from our sponsors and every December we give away a $5,000 technology shopping spree to one lucky member picked at random but you got to sign up to win all right guys it's been a while since we asked you this at least a month September I think yeah so if you had $5,000 to spend on technology what would you buy after you bill oh gee thanks about the same time nice you know I really want to get a drone to like kind of fly oh yeah I fan him yes on a river water far from you know this is about a quarter-mile we don't have sight lines there so getting out to the ocean would be hard no you get the toggles so you got five grand to spend we can get the full remote Rico yeah I'll tell you I've been flying I've got the coast place now I've been flying my Mavic Pro and looking down on the sea life is dramatically different you can see a lot more information and if you screw up you get to buy a new drone that's right be enough the man you could torture the tourists with something like a how about you John so I didn't get to go to Scott Huntsman's talk this morning about building a kubernetes cluster of raspberry PI's but we were talking afterwards about you know that sounds quite fun but I quite like a slightly bigger kubernetes cluster of Intel looks I have a couple of Intel knocks at home for benchmarking no design because at the moment I'm not quite convinced that I need to actually test this I'm sort of paranoid at the moment if I do benchmarking in the cloud will that provide stable results or will there be noisy neighbor issues and oh we've upgraded all the CPUs Oh none of your benchmarks are worth in Israel right um it must be hard if you have a bunch of nooks to test no to time that you actually have to fly them to different time zones I mean it but next run I mean 500 to 700 bucks of shots right bill kubernetes cluster of sort of six or seven of them yeah yes I can start sucking up things well it's quite handy that my shed being a shed yeah I have a couple of nooks and Mac Mini and old laptops that aren't actually on but certainly you can notice um I'm sure it doesn't get as cold as it would if those weren't running yes and definitely if I've got two laptops so work laptop and personal laptop running all day I'm pretty sure that pumps out a sequin if it's never if it's not warm enough you get around some SETI at home work units yeah if the CPUs pin for 15-20 minutes warm that place right up yeah or just pull up [Laughter] that's not right so let's talk c-sharp s'more what do you guys at Google doing with c-sharp it's so we're still making Google cloud platform Roxie sharp developers mhm so at the moment focusing on asp.net core applications making them run beautifully on App Engine flexible environment and the kubernetes engine yeah what used to be called container engine yeah and I work on the API client libraries so we have a vision API s and speech api's and there's firestore coming and all kinds of things and I try try to make that as pleasant an experience as it possibly can be the idea is to give the illusion that I have hand written all the libraries for all the api's in reality there's a lot of generated code behind the scenes that we thought very carefully about yeah how we can generate things and then we've designed it so that we can tweak things only additively you know partial classes are fantastic for this but if we've got so if I've got a protocol buffer class generator class for an image for the vision API I can just add some static methods to that say Oh create me an image that represents this URI or fetch it from a URI and get the actual bytes yeah and it can be just much much nicer to the use than if we only have the generated code right yeah well it's good stuff I've used it myself and loved it I mean you guys are doing great things with it yeah what is the underlying language are a lot of those api is it more very it's protobuf is described as a protobuf G RPC service right so we then it goes through an extra level of configuration saying hey this this RPC over here even though it's just an RPC and it has a request and a response is actually listing resources and it's got page tokens and you can get the first ten and then ask for the next ten etc and we say okay well now that you've told us that's a list of resources will just generate so that you can iterate over it transparently or you can get a page at a time with a certain size or whatever you want to do with with that but the idea is it should be easier to use than if you're using the R or R PCs sure and and friendly to the C sharp type said and yeah well I was like I said I was blown away when I got this chrome plug-in app or a chrome app I guess called voice note voice memo something like that and it's essentially you just turn on start talking to it and it did the best job of recognizing speech without any training that of any technology that ever used that's really great you know I did get results yeah okay clap I did get similar results after with Microsoft speech recognition just on the client you know because you're sending stuff up to the cloud using the power of Google to translate that stuff in real time but but I had to train it you know I had to Train Microsoft's thing and after I trained it for a while and did went you know through the speaking exercises the accuracy really improved but it was just great to just pull this thing up right out of the box of writing me a battlestar galactica which the first time I ever saw you know commander adama talking to the thing and it was typing away and I thought oh my god that's so cool right wouldn't it be great that's the old battle story yeah the first one when Dirk Benedict had hair that's right have you seen the Starbuck and Starbuck in Starbucks it's awesome I have it but I know what it is now makes me happy they're more inside jokes sorry for not being inclusive Katee Sackhoff is awesome well that brought the conversation and I ran with it I blame myself all right what are the thoughts I've had around c-sharp being open sources that we could get to a place where the bulk of the community just doesn't want anymore features that we could declare done something I felt like Microsoft would never do as long as it was closed source internal if you didn't ship a new version the product is dead but if you put it out in the wild you put it out in in world and we agree that this is where we want it to be then it's not dead it's right hmm that's that's an interesting question interesting encouraging and scary all at the same time so I'm not sure whether being open source is necessary for that is it just like a logically I think it's completely psychological so there's two or three different points that really want to address there mm-hmm the first one is with any of the projects that go into the dotnet foundation you know from inside Microsoft or from community that wants to put it into the dotnet Foundation sure it goes through the Advisory Council on the board and we talk about it and we decide you were involved in I am on the Advisory Council mm-hmm along with Sean Walker is colita that John Galloway and it's flow director you know you can read the whole bylaws but it's split between community members and Microsoft people and so I had to sit on the other side of the table when I joined Microsoft but one of the one of the things that we are very adamant about both from inside and outside Microsoft is anything that goes into the foundation that's not a way to make abandonware right right oh we prototyped this it was kind of cool but we're not supporting it open source there you go yeah that will not happen yeah so some of our gates are you know Karl knows this working through every next who's leading this who are your active maintainer yes what is your plan in your roadmap and so on it has to have a life right now but it can have a life without C shop could continue to have a life even if everybody agreed right it's done now yeah and people can continue to write great apps in c-sharp sure even it could be done as a language and there can still be improvements to Rosslyn major making it faster oh yeah security constraints I mean that the idea that there wouldn't be a flow of new writers right so there's that first part that says that how do we contend with that issue around the foundation feeling that it's healthy even if we don't have a huge backlog of you know that's actually one of the other things we talked about there are things that are you know what new features do you add so there are so we thought about this pretty carefully and that one of the things that was originally in the list of well are you going to take this in was well there's active pr's over the last six months that some some rate will come up with and we decided that was a really bad idea because some projects just armature you'll get a few bug fixes and so on right there's no need to go if you're not turning out 12 of these a quarter right we might you don't City but they should be spikes of activity I never notice for him which is you largely just me not entirely but largely just me there will be spikes of activity when I'm not writing suit up in depth right with your work schedule anything else where I could also see on other projects is when when a major security build comes out there is a flurry of the work to make sure you're protected from those teeny little problems yeah and their spikes to react to other things we've been really happy with people adding dotnet core support moving your dotnet standard and so and so forth but you know and that's so we want things alive enough that those things are gonna happen maybe there could be other platforms blood that kind of thing so that's the first part now the second part then is we want c-sharp to stay relevant so does that mean no and it is a balance yeah I think it's very interesting I think Matz is often said you know every new feature starts with minus a thousand points because it's work it's changing the language additional potential future complexity okay one of the things one of the points I wanted to make in my talk yesterday I'm ran out of time with in terms of designing your understanding the impact of decisions is when you're designing a language you need to understand that every new feature you are is potentially going to conflict or interact with every feature you haven't yet imagined right so you know designing a language to start with is playing two dimensional chess and then adding another feature is three dimensional chess and then adding another feature is four dimensional chess and if you look at overload resolution I've mentioned before that that the spec is currently inaccurate the standard is differently inaccurate and we have tried to fix it it's around that there are bits of the spec says if the number of arguments you've passed isn't the same as the number of parameters then overload resolution fails well optional parameters yeah yeah oh yeah okay looks like we forgot to fix that up okay this should be a oh no but then but then but then yeah and it's really over low resolution seems to be the nexus of all possible problems this stuff exists oh yeah you just need to do a bunch of empirical research to actually figure out how it functions we have their own way of extracting Erik lipids Commons there's a search there if you look for I think it's spec it's either spec deviation there's there's something like that where every time he implemented something that was in rosslyn that had to be compatible with the pre Rosalind compiler but right match the spec you put a comment there right so they are findable I can't do this isn't quite right no explaining is that you might get open source trying to be really thorough and all those things just aware of those aspects yeah I just sort of recognized I said you know my concern always if somebody's been involved in software for several decades it's like you keep adding features because that's how you made money right until you run out of good ideas and the bad ideas cuz bad ideas give you two versions well noted in and when will you take it out that's actually very profitable but we're now in an open-source world I'm talking about people who've been around for a long time and we know that we need to keep learning so you're keeping the language relevant how about keeping people relevant we know that people will have to keep learning all kinds of other things maybe we could take the burden off learning new language features right and there's other places to go right we certainly could be going across more platforms we certainly could be building better test harnesses we certainly could be building abstractions for simplification like there's there's many possibilities there if the underpinning pieces weren't shifting don't do the bar is ready and and I think I just questioned the ongoing value proposition well so let's put the features in a couple different buckets okay and so the the point releases now are getting these small little fixes to things which they have a few interesting nice properties in general and ref ref stuff is a little bit different in general they're they're pretty small in scope they don't affect major parts of the language like touching overload resolution or so on right you know type in you know in inferring tuple member names doesn't hit a lot of places there's only a couple different write declarations where that'll happen and it's scoped to when they are tuples and when the names are sorry that's pretty focused async main really focused there's one spot where that's gonna hit now if you look at the major number releases Anders has often said you know my team builds your productivity right that's our product so if you look at the the one feature that's been demoed for a c-sharp 8e is the idea of non nullable reference types and adding that you know there are languages that already have that feature but it was baked in from day one right adding non malleable reference types to c-sharp with all the body of code that's out there and really thinking about where is that right spot between this is so benign that you don't really see the warnings that we really want you to see or so hits you in the head yeah those are runtime errors yeah well or if let's say we just turned everything on and now every reference is not null about you're gonna get both screens full of error messages the first time you try the compiler nobody uses it so how do you design the language feature and the intelligent static analysis to look at where you were using these variables to go this is or isn't null and get it close enough that the actual warnings you get are small enough in number that you go I'm gonna turn this on because this is fixing bugs sure right and where it's telling me stuff yeah those are real they're worth looking at ha no just overwhelming yeah and that's a you know and and those Mads has put in his design notes there are billions of lines of code out there they're already tested against null we don't want to warn you about those you've got guard clauses around him yep we want to find the ones he did yeah so in big language features I think what we're gonna see is is to continue to work for something that's a really big win that really changes the way you write code everyday and I'm fairly satisfied that the team is really working hard to make sure that it is a big win and it's done right right so one of the features that might be in c-sharp eight we have seen before because it was slated to be in C sharp six and then maybe c-sharp seven of recalled types but because the team weren't happy enough it's clearly a potentially big win feature but I have to be good enough right then it's gonna cause more problems well briefly record record types this actually was one of the features that I requested in my c-sharp five talk was I love anonymous types here they give me immutability equals two string they're great but they're anonymous I want named anonymous types and the record type is basically that so you say I want a record type of person with first name last name and strings oh I see and then okay it generates all the boilerplate so the proposed syntax would you would say class person open paren string first name comma string last name closed paren semicolon and that generates the whole class with all the stuff you think is good okay okay so cool and this gets to we were talking about where these larger features touch more parts of the language now just from that description people are immediately going this is cool yeah I love it a lot of stuff that's tight alright now what happens if I derive from person yeah right right what happens if I want to make persons sealed yeah what happens if I want to derive a type with behavior from person whatever the fund suddenly now have a lot of behavior I want to add how do i how do i personally right into a class so i can add new methods in it so all of these things get into a very hard question of is this the right syntax what if person should implement an interface what if it's derived from something else what if you just don't let people do that and you can't kind of write well and then it gets to is justice well now that's a nice feature except it's really not that useful so if we're gonna do it make it so it's really as big I don't want to leave tonight without talking about the humanitarian tool box because we have you know two big guys who actually are very involved in it Richard and Bill some of us are bigger than others some bigger than I used to be huge bill tell us Tulsa briefly what tell really what it is and then what you guys are doing alright so humanitarian tool box is a charity registered in the United States that enlists developers to help us build software to support disaster relief and disaster preparedness organizations Steve Gordon one of the people who really helps us with already projects in the front row thank you Steve for all your hard work on already along with James chambers who's in Canada probably you know doing his Canadian things now and other continents Canadian things okay but curling and behold yes so we're doing a lot of things there the application that's had the most work is already which helps any charity prepare run a preparedness campaign so find everybody in a certain zip code make sure they have smoke detectors or make sure they're prepared for a power outage or whatever it may be and the Red Cross in Chicago has used it and piloted it a couple times we're gonna be adding other charities we're actively looking for other charities that run those kind of campaigns so instead of just asking developers in the audience do you want to help write code if there's a charity that you are really passionate about that runs campaigns where you need to know geography and you need to know to reach people in a certain area to make something happen shoot us an email and we'll try to link up the charity with the software and make them more efficient that's really what we want to do yeah and what was your role mr. camel in getting this thing off the ground well you were there my friend when we were planning the 2012 road trip in the summer of 2012 the organizer group we were working with asked us to make sure there was a charitable component to her tour right and if I had had any sense at all I would have said hey matches dollar for dollar for Hulme out United Way ha ha but instead I rant on a rant as I am prone to doing a ton of time about how difficult it was for software developers to contribute their skills to charity and I knew great developers that had picked a charity that mattered a lot to them and had committed dozens if not hundreds of hours of time to building things because we all know that that software it's not just writing software that it's it's collecting requirements and it's figuring out what people actually needed testing things and maintaining it and doing tech support and all of the complexities therein and I think most volunteer developers don't they're responsible enough to not do it because they know the scope of the of the commitments actually necessary and could we build an organization that would take that piece off the table they would say if you've got an hour that you could spend on our software or a day you could spend on our software that's a valuable a useful contribution you can you can make a meaningful difference there and don't worry about the rest we'll do the rest yeah and so that was really sort of the vision around that particular piece was that there was a great untapped need I think people want not every piece of software you write for your job delights you can be particularly meaningful and and so the opportunity writing software that saves lives yeah that has that impact that you can choose on your own time in your own way and be part of a larger piece of action you know the our experience working on the podcast of talking to people all over the world often the only developer in the room only developer they get to see today that the podcast is their contact with the rest of the world whether that we've met some of those developers contributed our projects that have been parts of literally hundreds of developers contributing to a project so they are part of a larger hole that they might not be able to get other ways and these developers are all over the world and they they're check-in things you can go to github and what is the HD box network and just one thing we're doing now the show probably come out early enough to at least still get people driving toward that is we're working with Microsoft's MVP program they've been very very supportive of us over the years myself as a former MVP NRD Richard as well is we're driving toward trying to get people from as many different regions in the MVP program helping us out with the software so it's great if you're an MVP listening contact your manager your community manager and we've got volunteers who are helping in different regions you know one thing we hope to get from this since we started in North America reaching places all around the world I am almost certain our software isn't localized very well no I think that would be a reader that we want to be able to help people all around the world we can't do that if it's only in English so we'd love to get help from people in other parts of the world that can help us International is the software you guys doing a hackathon while you're here you are so we were able to organize it here but through the graces of Steve Gordon and and mag debts we are actually doing something on Saturday so I staying over for the weekend will will take off on Friday night and get down there to Brighton which I've never been to so I'm excited to see it I think it's spent a day with a I think it's sold out it's a group of developers very excited to contribute and so we'll have some fun and write some code we got a good stack of work I don't see there again you know you talk about the the plumbing part of running a good project yes getting it organized so there's work items that people can pick up and contribute so you could get to delivering a useful pill across wooded area and that's what I love so I haven't contributed to humanitarian no but I pulled you in off things yeah I've been involved in but what I love about it in concept is that it's not delivering a product it's delivering a tool box yeah and that it has to be sustainable because there's nothing worse than hey someone's built this awesome product and then they have either lost interest in it yeah or they just can't do it with other commitments yeah um generated but all that value is gradually lost that's still if I can tell that story just to embarrass you a little oh what am I gonna say we're doing this thing and one of the developers is gonna implement note of time because we're having time zone issues and know the time works and it just does that nice guess part we're done and he's stuck and I think you can buddy this conversation going on in the slack Channel about the complexities did note of time and they were trying to work it out and I said would it help if we could ask mr. skeet about it all of a sudden there was this thing bottom of the channel cuz not everybody's in the same room John skeet just entered the room he just starts answering he's been a good hour with them that John yeah and then and then he put his feet back on see that was really key yes that's a failure if I knew you thought that way then it then that's clearly a failure in notice names documentation well it was a conversation I had after the fact where that number the developers are like well how how is this possible said you know the service you did to John to show him the challenges of this tool that he loves that a developer pick it up from scratch hit this wall so he learned today as much as he talked today so you know it's all mutually beneficial and it absolutely kind of helps it I have your phone number well yeah it was great it was it was very funny but let's give these guys a big hand for the humanitarian toolbox and let's also thank John skeet and Phil Oh Wagner for being our guest tonight and we'll see you next time on top Ned rocks [Applause]
Info
Channel: NDC Conferences
Views: 1,744
Rating: undefined out of 5
Keywords:
Id: LCj7h7ZoHA8
Channel Id: undefined
Length: 59min 35sec (3575 seconds)
Published: Fri Feb 16 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.