Keynote NDC Sydney 2016: If I knew then what I know now - Scott Hanselman

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
alright hey friends I'm amazed we got this many developers to wake up at nine o'clock on a on a Wednesday it's fantastic to be here thank you so much for having me it's so much nicer of a venue than it was at the original NDC a lot more people came but I still enjoyed speaking to that guy as Jacob said my name is Scott Hanselman I hope you check out my podcast I've got a show called Hansel minutes it's 30 minutes long and I'm up to 550 episodes I've been doing that for 10 years every Thursday giving you a 30 minute technology agnostic podcast that does not waste your time so definitely please check that out and then of course if you've been to MDC or you from familiar with in DC you're familiar with Rob Connery he and I do this developers life still got a great back catalogue and we're working on new episodes so check out this developers life as well and then most recently we did marches for makers which was a IOT and maker focused s-- site filled with podcasts and Google Hangouts and articles and all sorts of great stuff that just makes us very very happy about technology now I do oh how to apologize ahead of time of course we know that I work at Microsoft but I work remotely for on the forests on the forest moon safely outside the Redmond reality distortion field which allows me to work on open source which is really great and of course when I went to work at Microsoft people said that I was a sellout and that I was going there for the money and I have to say that it hurt my feelings it hurt my feelings a lot and I didn't know really how I was going to deal with that but somehow I dug deep and I found it in myself to deal with those feelings because we all know what I looked like before Microsoft that was me and here's me after Microsoft so even though it is as a as a pretty complicated org chart working at Microsoft is a is a constant joy now I was talking with an older gentleman at at Intel a couple of years ago and I I think he was somewhere between 80 and 120 and he was like one of the original Intel employees and he had come to a talk that I was doing on web development and he said he wanted to learn how to be a web programmer this felt really weird because well I've got 25 years experience he's got 50 so he's let means he's literally forgotten more than I would that I know right now and he said I want to be a web developer and I thought to myself I don't know how you how you missed out in the last 20 years but it turns out he was doing low-level microcode you know internal BIOS type stuff and he literally skipped the whole internet part of the last 20 years so I got to thinking what would it look like if we explained how to write applications for the Internet to someone who was a smart computer science person but missed the last 20 years he was like Rip Van Winkle except with code this is him taking a selfie just to give you a sense of the level of individual that we're talking about right here the kind of person who can like look at some Lisp and like immediately know what's going on and say oh you missed the you missed a close parenthesis there and then they know exactly how many close parentheses to add and then it's suddenly that app compiles you know we're talking about Grace Hopper type people where you know what were you doing you weren't on the internet no I was sorry I was busy inventing the compiler so I wanted to explain to him what I thought was going on in the Internet and that this was a great time to become a web developer of any kind so I wanted to juxtapose the concepts of the cloud which i think is an overused term the cloud is what hipsters call hosting and then the browser which is an underutilized tool now there was a fellow who said that they thought that there was a world market for maybe five computers this is supposed to be one of those quotes that is on the internet that you just believe I think it was Abraham Lincoln that said that you can't trust quotes on the internet and Thomas J Watson I guess was the head of IBM and had said that there's this world market for maybe five computers they were thinking like refrigerator-sized computers that like were on a continent so there'd be like the Australian computer and then you would just send batch jobs off to it right and there'd be one in Europe and then once we'd sold out of all the computers that were available that we would be done and that would be the end of it and then maybe if you know with the brexit maybe there's six computers because they're going to want their own but that's fine so I can't prove that Thomas J Watson said this but I do have this really old book so we'll just say that that's the guy because if I'm going to be making up quotes we need headshots to prove it now this really happened though those five computers actually happened except it's Microsoft and it's Google and it's the book store we call it the book store because like when the bosses at work like how are we losing to a book store this is a this is a picture of the azure cloud we are a little behind but we do get color now so that's that's pretty good and we're upgrading constantly so we're getting new brand spankin new refurbed as your equipment and this guy is whoops there we go that's maybe better he's pretty excited about that so the gentleman in Intel wanted to understand the cloud and I tried to explain to him well you know it's more than just having a computer that's not in this room because where that is the cloud right it's just an IP address that isn't in your in your subnet I said well let's back up let's talk about hardware let's talk about what are the characteristics of an operating system what do you need to have in order to call something an operating system you need to have memory management and graphics and security and all those things and then a hardware abstraction layer that sits in this operating system and then that is you know an architecture diagram but then when you give it portability that's where the magic happens and I remember the very first time that I saw a virtual machine and be able to run stuff in a window and pick a virtual machine up and take it somewhere even having virtual machines in your pocket is is a miracle like that was when it all started and in the cloud the or the naive cloud we call that lift and shift right that's when you take a virtual machine that's sitting under someone's desk and you pick it up and you move it into the cloud but it's when I say naive I mean that a lot of people say that that's their cloud strategy they just went from managing machines under their desk that ran virtual machines to manage managing machines in the cloud so what value did they get other than that they are renting as opposed to owning the the car but there are some benefits of course you can do cool things like running Linux in Azure which continually freaks me out it turns out that 25% of the workload in Azure is Linux did you know that and the bosses are like why are you allowing that to happen how is that ok and Guthrie Scott Guthrie who runs Asher says well what do you think they're running on they're running on Windows so we don't really care I think that Microsoft should change their marketing slogan to Microsoft wants your for loop because that's what that's what there is the dirty little secret about what is Microsoft selling now right before they sold Windows and then now they sell office but they sell it on iPhones and Android phones really Microsoft care what you run as long as your for-loop whatever language it's written in is running up in Azure so they have things like VM Depot where you can have thousands and thousands of Linux based VMs and I can go up here and say I want a Jenkins VM and I want to go and say as your VM create and then spin up a virtual machine I asked the guy at Intel how do you get VMs now he has to fill out a form and fax it like that's how that's the Jason I maybe he just writes Jason on a fax and then it's just really high latency sends that fax and maybe he gets back like a single fax that says 200 okay I don't know how it works you know maybe he gets a call back where it's like success but not ready I don't know but a real cloud isn't about picking up a virtual machine and sticking it off elsewhere it's about the programmability of it right it doesn't matter if it's Asher or if it's Amazon or if it's Google it's the difference between a a host which is just renting space for your virtual machines and the ability to programmatically create them so going and saying something like as your VM create goes and sends a web service call up to this endpoint and all I think about is the general region that my my VM lives in and of course I've got ASCII art which makes Microsoft less evil but it's a complete programmatic back-end more significantly it's the same back-end that the portal uses so when Microsoft goes and makes virtual machines or makes webs websites they're using the same API that we can call and that's really meaningful so it's the automation of the cloud that's interesting now he wanted to know though should I just make VMs or should I make something else I'm not a fan of virtual machines I think that virtually seasoned virtual machines are cool I was excited when they happen but you still have to maintain them right they're free like a puppy you know it's like oh hey cool puppy new virtual machine that's great oh wait I have to run Windows Update on the thing I don't want to run Windows Update on my puppy that's not good I got to call apt-get update and apt-get upgrade and I can't remember which one I'm supposed to run so I just run them over and over and over again until the Linux machine shuts up when when the heartbleed virus virus malware evil bug happened when hardly broke and then the openness they open to sell stuff I had to wake up at 2:00 in the morning and SSH or shush into these machines don't you all say that shush in so I shushed into these machines and I had to patch them but they were running like newsletter systems and expense reporting systems why am i dealing with the maintenance of that I feel that that should have happened on its own virtual machines are ok but you managed them but I think about things in terms of apps if I'm running an expense reporting system I'm going to put it up somewhere and I want it to run I don't have to wake up at 2:00 in the morning to patch it for SSL bugs that's silly it does give you power though you can do anything you want on a virtual machine and run anything you want it's like as if a you know a virtual machine is your home right it's your home or it's your first car you can treat it however you want and you can destroy it if you want to but again I don't want to have to think about it especially with things like Windows Update you know how you have to if you ever had that situation with Windows Update when you're typing and you're doing your thing and then time slows down and then you see that the Windows Update dialog is going to pop up and you just happen to be pressing enter at the same time and the dialogues coming up and your hands going down and gravity has a hold of your hand and the restart Now button is default and I don't know why that was a good idea you're like just oh I'm writing some great code it's like and the dialogue is coming up and there's there's only one way to stop that right did you know that there's only one way to stop a Windows machine is a dirty notepad if you have notepad see I can't even this is this machine is going to reboot not bad dirty notepad that that will stop Windows from right because it's like the most powerful server cloud-based operating system on the planet and it's like the system is rebooting that Oh notepad is dirty sorry not responding not responding and then everything just stops so on my server machines I renamed notepad to N so I just go windows R and I make it dirty and I just leave it there someone suggested that you just leave a dirty notepad always on a Windows machine and it'll run forever but I haven't I have not tested that theory that's a pretty good idea though that machine's been up for two years that's amazing how'd you do it dirty notepad so I don't want to think about that I want the cloud to manage that I want to uplevel things a little bit more so as I said you've got virtual machines which you like your first car you've got cloud apps that have Azure managing the updates you can still do anything they're kind of like a rental car but I'm more of a booze wah type I like the the limousine I can do a little bit less up there but it's handled completely and it makes me very very happy one of the things that's concerning about that though as an old person and I was talking to another older person was that it kind of invalidates a lot of my experience I've got a multi-page resume you know how you're supposed to make your CV only be a page I think that's like a rule mine's like three or four pages long but I realized that pages two and three are just how to scale a web farm right you know remember configuring round-robin load balancing and setting at the local director and the Cisco and all that kind of stuff remember back in the day when setting up a web farm took like a weekend and they would fly a consultant in but now you just you just do a slider bar is to think about as an old person what that feels like that two pages of my resume are gone and they've been replaced by a slider bar and I have to go to work with 22 year olds that are like oh this webform is taking like a minute sucks Oh Pokemon I go and call as your site scale and that line updating a server farm basically says you wasted the 90s it just it hurts it hits me in my soul but the thing that was great about this is that I don't need to know that anymore right in the in this older gentleman at Intel he's joining the web now he doesn't need to think about either it's a solved problem so there's some really interesting things that were big deals when I was building these things in the 90s and early 2000s like doing something that we take for granted like round robin load balancing on port 80 that was a big freaking deal that took planning and vendors and now it is a single line and I can I don't even have to go to lunch I used to go to lunch or work from home and tell my boss it was going to take a long time so now I just call a command like this make a server farm and I'll tell my boss that it took you know six to eight hours even though it takes minutes so that slider bar has destroyed my life and it makes me sad but that's fine the thing is though if you don't understand what's happening underneath then for you it's like what just happened and then all I have to say to the young people is magic so you want to understand what's happening underneath you don't want to be forced into doing things a certain way though what's nice about the cloud whether it be Amazon or azor is that it doesn't care about language choice the next question that the gentleman asked me was what language should I use to write for the for the cloud write for the web and I said you need to learn JavaScript and a systems language some back-end language that may also be JavaScript but you need to know JavaScript on the front end we'll talk about in a little bit but you should pick whatever makes you happy dotnet node PHP well not PHP basically anything but PHP you should you should you should learn because it'll work it'll work great in the cloud when I told him that he became lightheaded and thought that was great but you want to use a cloud where it's all open source and it's fun again I'm I work on Azure so I care about it but all of the SDKs are open source so for teaching someone the web if you're teaching them something where they can look at the code and that code is is somewhat self documenting is a good thing we've got piles and piles of of open source in Visual Studio and inside of of azor right now now when I talk to him about up levelling you want to understand what's happening underneath but you also want to think about what problems that you can solve because you've raised the abstraction layer if I'm not thinking about individual virtual machines now how does that change how I think about my systems I was in Norway talking or Denmark or somewhere Scandinavian I'm sorry there were cobblestones and meat pies and adrien Cockcroft was there he's the you at the time it was the chief architect of Netflix so I need you to understand that this was a big deal ok this was like an actual famous person and he looked kind of like John Malkovich and he was English which gives him you know plus two charisma just for showing up right he's got like a PhD in unsolvable numbers and he works at Netflix so he comes out and he starts talking about some of the decisions that they needed to make and Netflix what they were doing was they were switching from spinning rust right spinning rust hard drives by the way if you--if I can hear your hard drive you can't work for me I can't trust someone whose hard drive I can hear really seriously if it's 2016 if you still have a hard drive that you can hear you need to just get on board and buy it with your own money when I was working in banking they wouldn't let us have SSDs I don't know why so I just bought one and put it in myself it was like 600 bucks which is a lot of money at the time but it was too tall even if it worked for a single year that's two dollars a day and if you have an SSD I think people who have SSDs know this you just wake up happier you're taller your hair lays better I mean just every the Sun is bluer the sky is bluer the the world is better when you're on an SSD so they were moving the Netflix cloud from spinning rust to SSDs and he was explaining all of this because he's the chief architect and he was thinking about the AI ops write the input operations or put output operations per second eye ops is the term that they use in the cloud that's just a number kind of like an index of abstainer 'el speed of your i/o and it was something like it was $1.00 for 300 AI ops or it was like six dollars for like three thousand so it was like three times more money for ten times more perf I did all the math and it turns out that's a good deal so he explains that they're going to switch over there at Amazon and it was cool and he gives this presentation and it was amazing and he was British and I loved him and and then he said his thing and then one of these 19 year old Danish Norwegian Scandinavian kids comes up and he goes well I can't do that actual accent so I'll do this instead actually sir you know SSDs are extremely unreliable and the mean time before failure of an SSD is a year and I find that in --see and he basically said you're an idiot SSDs are totally unreliable and they're going to fail on you and it's going to destroy Netflix and you suck now think about what it must feel like to be that kid who's talking to the I mean you should be deferential just because Netflix not just because he's English but because he's from but he stood there and he took this this question which basically like you made a bad decision you're an idiot and he says what do you think about that how are you going to deal with what happens when all those SSDs fail and you've destroyed your company and he says that's not my problem I'm renting them I'm renting them think about that what happens if those SSDs fail is that his problem no it's Amazon's problem they have an SLA they have a service level agreement he's thinking about the numbers which is this much money that much perf it was a no-brainer they had the money they got the perf yes SSDs can have problems yes when they fail they fail spectacularly but if he has a cloud architecture that can deal with that and deal with with change then it's going to be fine you may be familiar with Amazon's attitude Netflix is chaos monkey chaos monkey right it just it's a software program that runs around an unplugged stuff at Netflix does just see what breaks it's a really great idea like if you break the database so it can't be written to you can still browse the catalog right think about that if you have a product catalog with a shopping cart if you suddenly made the database read-only with the app deal with that would it say oh sorry we having some issues with a shopping cart but feel free to browse the product site or would you just die and that would be the end of it so having a resilient system like that is really important so when he said this to this kid that's not my problem I'm renting them the kid didn't even know that he'd been cut in half it was like a samurai movie where the guy kind of goes like Shoop you know with like the superhero landing and then the head gets chopped like this and it rolls down and falls and the brain is exposed and it's just like this but you don't know if the body should fall and someone should push it over all right I don't have a gif of that but I do have this we'll do that again just to make sure you understood what actually happened there it was a maze never mess with an Englishman it works from Netflix they've got a global dashboard they really understand how these things work when you're doing something in the cloud I suspect when they move to to Europe they just pushed a button and like went to lunch and they ran some shell script and then like Netflix just went over to Europe they really think about these dashboards and that's another thing I was telling this gentleman at Intel about is how important it is to uplevel your perspective you're thinking about the applications larger health and not the individual processes on an individual box so you want to have a really nice configurable dashboard that's going to do what you want now sometimes people take it too far but you can't argue that that's okay I've seen people be like I got a dashboard that's my dashboard now I know everything that's going on I got I got that one too it's even better it's an upgrade H top you can't argue that H top is is a dashboard you can't you like they say that they argue that that is the case but it's not the case you can't argue that Mario is the superior Mario Brothers it has always been Luigi I don't care what you say about it you just you know Luigi always it's always Luigi so when people are against the cloud they're missing out on this new this the benefits that this new layer of abstraction has there is a really interesting problem that the New York Times had recently about a year and a half ago where they had a bunch of Tiff's that represented all of the scanned issues of the New York Times going back like hundreds of years okay 160 years whenever it started in the 1800s and the problem was for these interns was to take these Tiff's terabytes of them and turn them into ocr'd text-based searchable PDFs that kept the fidelity so it was one of those problems where you're probably solving it in your mind right you know it's like okay figure out the optimal size resize OCR or make sure the text is embedded in the metadata of the PDF for each issue do the thing right it's a naive parallel operation for each issue in issues do it except it was huge this is a massive problem with terabytes of stuff and they needed to do it they needed to do it in a weekend so they were told to do this in the past what would we do we would we would buy machines we would run around the office and get anyone who would give us a machine to do that kind of work or you go to the cloud and then you start getting all these machines together and then you have to think about well what am I going to do with these machines do I chop the problem up a thousand at a time suddenly the issue doesn't become an issue of the business problem which is make PDFs of the New York Times right it becomes a computer science problem where it's like well I'm going to parallelize it but am i parallelizing it across disks across processors across processes and I multi-threaded am I not and what happens is when you find yourself in situations like this is that your boss comes by and says well how's the problem going and he sees you shaving a yak if you know about yak shaving and you're shaving this yak and you're like oh hang on I'm working on it I'll be done as soon as I'm finished shaving this yak yak shaving is all the stuff that you do while you're setting up to do the thing you were originally asked to do right there's a really great gift that describes yak shaving that I'm going to spontaneously get and not go into the store it was bryan cranston yak shave could be really concerning what i get here by the way so let's just cross our fingers and hope that it's appropriate oh good i blogged about this once this is a yak shaving hey i'm coming in a light switch doesn't work i don't have to fix the light i'm going to go ahead and fix that light Oh light bulb is up with oh this this shelf is broken I want to fix the shelf before I get that oh wait a second this is a squeaky squeaky drawer man fix that squeaky drawer oh I'm out of oil all right well I'll go and I'll go to the store and get the oil the car doesn't start oh well shoot hey fix that lightbulb in the kitchen what does it look like I'm doing that is the modern cloud that is development in today's cloud right it's got to shave that yak so one of the things that you would be able to do in a cloud scenario with the right layer of abstraction if you wanted to solve that problem like the folks at The New Yorker or the New York Times rather had is to make it some kind of a function like this is just a very naive function do it reads in some content out of a reader writes in Iran this in the cloud and then adds the content back but you notice it doesn't say anything about the cloud here it just is a do it function where do it could mean you know OCR that stuff but if you could wrap that up with some attributes or some metadata that says go and get input from things that match this glob from this this storage location and then put the output over here and then just have a slider bar there's that slider bar again that says well how much money do you have that's really what you want to be able to do all right that's what things like as your functions and Amazon lambda does where you say here's the business problem you figure out the parallelism of it dotnet does this with the task parallel library right where it's like I just want to think about this I don't to think what the computer science beside behind parallelism so being able to do stuff like that changes how you do these things in fact the folks at the New York Times ended up doing that for $300 in a weekend at Amazon turns out it would have been a hundred and fifty dollars but they made a mistake on the first run and they had to do it twice but think about that I mean it would have cost three hundred dollars just to buy an SSD but they rented a bunch of machines for the weekend and did that unfortunately though things like lambda and things like as your functions didn't exist at the time so they wasted a bunch of time solving the parallelism problem which was a bunch of yak shaving that had nothing to do with the issue they didn't really use the class they rented a bunch of VMs and then did a bunch of busy work and then push the button that did the OCR so I wanted to juxtapose with the gentleman at Intel as I was explaining to him was that the idea that there are many more powerful levels of abstraction on top of virtual machines now up to the point where a single function can be virtualized and parallelized across multiple machines then I wanted to turn attention over to the browser so remember this these are the characteristics of an operating system and as memory management has API as it has storage that is a operating system there was a time when you would sit in front of a machine that looked like this but you were really talking to one of those refrigerators that lived in in Europe or lived in South America and there were five of them and you would go and you would load up a program oops you would load up a program and you would look at the user interface that was on that screen but where was it really running it was on the fridge you were remoting it and this was called a dumb terminal but we're doing that again we're sending HTML over to super-powered quad processor 3d accelerated machines and pockets supercomputers and they're waiting for more strings to come back from the refrigerators that happen to be in the cloud we we disparage these by calling them dumb terminals and here we are doing that again now Tim berners-lee comes along and makes this this is the first page of the world wide web this is in fact the original page and you can go to the original location and it's still there there is actually a sign on it originally in the lab that said don't turn this off it's a server you imagine if there was like the internet under your boss's desk and there was a sign that said don't turn off the internet apparently he was a really really cool guy and if anyone feels that they have or anyone that their work has been overstating their job title I want to encourage you to think about Tim berners-lee in his job title he could have said the but he didn't and that's really classy so we don't get until he becomes a senior then apparently I need to stop putting Microsoft certifications at the end of my time my name so when he put this together he was thinking about books he was think about hyper media and this kind of infinite series of books he never thought it would get as big as it did and he didn't think about it as an application platform it was a information sharing platform and we continue to try to add to it and change it and push the web forward and what we do is we invent stuff that the web can't do until the web can do it and then we get mad about the web doing what we originally asked it to do you know he didn't expect that we would need PDFs but the web wasn't an attractive enough document format so we invented PDFs not we evil Adobe did but we we took their evil and then they became the fifth most popular religion on the planet and no one no one expected that was going to happen and it's the PDF extremists that we need to work is when you use Acrobat the terrorists win you can take that as long as you as far as you want to take that but I love that so the internet is happening and then then this happens in the middle of the internet developing in the World Wide Web happening and how do we know that this happened because we were browsing the web and peace and that and then Java loaded and then these guys were like we can do it too and then these guys again with the Adobe they're like we've got YouTube we are still useful but what were we building what were we building we were doing that we were trying to make a plug in virtual machine a little square of computer inside the square of the web inside the square of our computer these little islands of interactivity and then trying to solve problems with them now I got this Toyota Prius it's like the hybrid d/f Priuses over here yeah where I'm from Portland Oregon we're given one on birth because we're very eco very eco friendly and when I go to the the shop the garage I always want to see their systems I think most of us are nerdy computer type people and you know how when you're talking to someone behind a kiosk whether it be at the airline check-in counter you know you're like oh I would kind of system while you're running then the next thing you know you're standing next to them is they check you in on the airplane you're like it's really so f7 upgrades me is that how that works so so the guy at the Toyota place knows that I'm always interested in what's going on right and they had a really interesting vt100 terminal-based system that was all keyboard based and then one day I show up and they've got these Dell kind of like new them the the tiny Dell workstation deals that go in the back of the monitor and I said go new system let's check it out I want to hear all about it and he's like oh it's so good let me show you what's going on so then he boots up Windows XP and I was like uh okay but I let him continue and he opens up Firefox and then he goes to an intranet site and then loads a jar file and then Java is like are you sure you want to run Java and he's like yes and it's like you know enter your national identification number and indicate that you're really sure that this is a phenomenally bad idea and then he's like yeah this is a phenomenally bad idea if to spell phenomenally bad right or Java won't run and then Java pops up and he's loading a terminal emulator in a jar file that then connects to the same as400 as before looks me in the face with a straight face and says this is way better than it used to be like you know you've you've seen these before you've worked on these systems they're a nightmare this is not the internet that we asked for we didn't want these weird things where we've got the body of a document and then a weird little virtual machine running with like physics demos it doesn't work and I don't mean to disparage Java but I mean - absolutely disparage Java by July disparaging job I'm disparaging the the applet scenario because I bought into the applets I worked at Nike in 1997 on hot Java machines and I was right once debug everywhere it's fine on the server but it was a nightmare on the client now all the while job is trying to take over the world and then this happens javascript starts up and remember the Java people don't like that so don't don't do that and if anyone ever says is what is johnny's java relate to javascript just fire them on the spot they can't they can't they can't be allowed to live just kidding javascript when that happened I started to get a sense that maybe this could be something this could be this could be powerful now it is complicated and it is frustrating this is a flow chart about what it's like to work in JavaScript do you remember the first time that you did something useful in JavaScript it may not come yet may not have happened yet but it the first time something useful having a JavaScript for me I think we've all had this moment is that you're filling out a form and you get your phone number wrong and you hit tab and then the field goes to a different color and you went it's like squirrel then you go back and you type it again because you can't believe what just happened and you hit tab and you go I don't think it posted back to the server I think it did the validation on the form on the client-side view source see a bunch of stuff you can't possibly understand and you go it did and I grabbed my computer and I ripped it out I started running like this because I'm a nerd and I can't run and I show my wife I'm like hit validated when the client she's like I don't care so then I run to my boss and she doesn't care nobody cares but it meant that JavaScript was more than just saying alert pwned you know as your first name right or you know little Bobby tables as your last name it means that JavaScript can really do useful stuff and then people started doing things like this there's a complete Commodore 64 emulator written entirely in JavaScript like that's a thing someone did that and they did that because it's the Internet and they could do that and that's insane then I saw this this is a complete implementation by the way is is it I didn't know that the you all as a country had just the two megabits a second do you share that pipe there's so many interesting UI decisions that were made at Microsoft products that you don't realize how badly they suck until you come to Oz or New Zealand and you go wow if we just assume 40 megabits a second then we you know that's that will design the UI this way but if you only have Australia bandwidth you might want to pop a dialog box and say go to lunch so when you see something amazing in a browser like an entire Linux emulator written in JavaScript what you do is you select the text and you have to select over the border to make sure that it's not flash because oftentimes people will show you cool stuff in the browser and you'll right click on it and it says about Flash and you go R'lyeh but this is real this is real I can actually go in here and I can say run TCC and compile that and one time I was doing this particular demo at an open source conference and I was compiling a C application in a JavaScript Linux VM in a browser on Windows and one of the neckbeards yelled out why aren't you using GCC I'm sorry sir you're questioning my choice of C compiler in the JavaScript implementation of the virtual machine that's running in the browser that's running on Windows and really I'm going to run whatever the I want to run I was a little bit disappointed so what I did was I then launched an iPhone emulator and ran a via VIN Linux virtual machine in it just to make the point about how cool this is because it's like Inception right and if you saw inception you know that Inception is all about if you run a virtual machine inside another virtual machine time slows down that's the whole point that's the information that I got from that film and that DiCaprio continually gets robbed he was in that right so now you have people who say well I I browse the web without JavaScript I also do CrossFit and I'm a vegan I've actually met people who have told me that they do CrossFit and they're a vegan and they run with JavaScript disabled before I got their name which is convenient because at that point I don't want to know their name can't run with that does it right but does it run without JavaScript disabled no idiot brick does it running links well yeah actually it's a responsive design you can do amazing stuff in JavaScript that people aren't doing it this is an interesting one this is this was a 2012 iPad game of the year they reimplemented the entire thing in JavaScript and now at this point in the talk sometimes people assume that I'm going to go and show them you know doom or the Unreal Engine running in the browser and they're going to say oh okay Scott I get it you're going to talk about how you can take C or C++ and you can literally compile it through clang into lightweight virtual machine bytecode run that to something like as MJS runs on top of OpenGL here's the part of the demo where you show quake in the browser so cliche no I'm not going to do it because it's cliche I'll try to find something else that's better what I will do is I will overlay the features of JavaScript on top of the characteristics required for an operating system so you've got garbage collection you've got graphic subsystems you've got both 2d and 3d you've got web workers it seems like JavaScript could from a textbook perspective be perceived as an OS we're shipping an extra OS with our browsers and Jeff Atwood very wise Jeff Atwood that's a selfie said that any application that can be written in JavaScript will be written eventually in JavaScript everything will eventually be written again in JavaScript uh that is true but in fact also is true is that anything that can be written in Microsoft Excel will eventually be written in Excel how do you open it with really Excel do I not have really Excel that's disturbing oh well thanks for telling me that Excel I needed to know that about 20 minutes ago show recovered files that always ends up well for me something horrible happened a long time ago and here's a file I saved because of it this is such an amazing application here this is a complete implementation of pac-man done in Excel where each individual cell is a pixel and it is so powerful that it can't be stopped that's almost like a virtual machine all right you may have seen a have heard about my my Halloween costume last year I went as Microsoft Outlook I got a shower curtain and kind of an opaque curtain that I hung in front of me so you can kind of see me but there was like a sheen over me that said not responding and then I would just walk around and refuse to speak to anyone why is he not talking to anyone now he's trying to put a bite on the network because that's what Excel that's what outlook seems to do doesn't it so we're shipping another operating system aren't we we've got one that's running on these pocket supercomputers that we have that is the JavaScript VM and we can do amazing powerful things with it there's so much that has happened we see images like this that show what we carried apparently in our pockets in 1993 and now what we carry here but we don't talk about the fact that that pocket supercomputer has 3d accelerated graphics multiple processors and a very competent JavaScript virtual machine of course we also don't talk about all the creativity that has occurred since the iPhone was released yeah I'm looking forward to a pink one now this guy says that html5 and JavaScript were too early and they bet on it too early and they went back to native but I don't think that's true because people have proven time and time again that if you really understand JavaScript and you really understand how the system works you can create some really really amazing stuff I would even go so far as to say that many bosses are out there saying well can we do that in JavaScript can we do that in html5 you know is it is it too soon one of our great philosophers said this the Avalanche has already begun it's too late for the pebbles to vote the Avalanche is html5 and JavaScript it's happening anytime your boss says well is that possible with JavaScript yes is probably the answer is it possible in the browser absolutely we have complete JavaScript implementations of PDF renders in the browser if you go to office komm it's actually enough for non-technical parent to have word in Excel without ever installing word in Excel I really think that the outlook.com clients better than outlook and it's written in JavaScript that is continual proof as it gets better and better who said that you remember who said this no it was cost from Babylon 5 what a bunch of nerds how do you not know that it's on a classic sci-fi now when we say html5 what do we really mean html5 has become that that catch-all thing just like cloud means too much html5 means too much right it's the collection of specifications and technologies including ECMO Script css3 html5 and it's hard sometimes to tell what is html5 but I've got a very simple test for you if it runs outside internet explorer then it's interesting html5 if it doesn't run and Internet Explorer its html5 that's your basic test just try it out you may actually have an html5 website right now you don't know about you should just run it in IE and say sorry boss let's say html5 being a web designer is tough now there was a time when HTML tables was the most advanced thing ever remember this anyway all my old people here old heads yes you could get a job just knowing HTML tables you would go into work and they'd say do you know HTML tables and you'd say yes yes I do boom junior engineer I went into a job they said do you know how to do rowspan and in fact I did and I was running the company and I also know that internet that Netscape Navigator can only handle 32 nested tables and the only way that you know that is when you've written that 33rd table and stared Satan himself in the face that's true but hTML is simpler than ever now I've seen pages that are just a div write HTML just provides that structure CSS gives that color in the style and CSS is another language that the gentleman at Intel needs to learn but it's very simple and expressive and CSS always gives you what you want the very first time super-powerful so there's someone selling this mug and the best part about the fact that this mug is sold is that there's another version of this mug where they tried to fix it I don't know what's better now javaScript is everything else and when I tried to explain to JavaScript to this gentleman at Intel even though it's taking over the world I basically said in Ruby everything is an object enclosure everything's a list and in JavaScript everything is a terrible mistake here is a ja a gif of me learning JavaScript it's great because you don't need to learn the bad parts good parts ED parts notice also there's a rhino on this and a butterfly on that one so I don't know who decided that the covers of these things are really really interesting the other thing that I discovered I saw this tweet from Shay saying that there's noun je s like you pick a noun and there's a JavaScript library for it so I took that challenge from him and I discovered this very concerning JavaScript library hey you want fart noises when you scroll now of course the problem with that was that I went there and I was like what no jQuery plug-in that sucks but you know javascript is intuitive it's a couple of things you have to learn just a few things to make it really clear that one's concerning this is me debugging JavaScript now the gentleman John Resig who invented jQuery wrote this amazing book you should get called secrets of a JavaScript ninja that is a samurai so I said hey John Resig why is there a samurai on the cover of secrets of a JavaScript ninja and he says that's because JavaScript is loosely typed ninja Samurai duck typing I apologize for that joke sorry now I said javascript is the assembly language of the web once that's a great quote I'm going to make that a quote everyone else said that though because it's true it's one of those things that you hear people saying that when I said that folks on reddit and on the internet thought that was a stupid thing to say how dare you say that how dare you propose that javascript is an operating system how dare you propose that it's the assembly language of the web so I went to the people who made JavaScript and I asked them do you think that's a dumb statement do you think that that's a really a thing because I think you can compile to this kind of an assembly language so I went and I talked to Brendan Eich who invented that is actually Brendan Fraser who I'm really surprised he hasn't done a lot of movies lately that is Brendan Eich but Brendan Fraser is a beautiful man so we'll keep him up there he said that javascript is the x86 of the web a couple of years ago but can't claim it's original that's great that he said he can't claim it's original because it's one of those things that just is obvious it's happening now the very first time I said this I really got dragged all over the internet people saying that I was stupid and then this happened we got it web assembly is happening right they are formalizing a subset of JavaScript to go and compile to so rather than come trying to compile to you know idiomatic JavaScript web assembly with Google and Microsoft and Mozilla is going to be a joint effort and it's really happening so that means that you're going to be able to compile your C and C++ really to an assembly language which means that JavaScript just became the metal let's think about that now you can take languages like CoffeeScript and compile it to or transpile it to idiomatic JavaScript CoffeeScript is what Ruby people wishes that JavaScript look like or typescript which is what c-sharp people wish that JavaScript would look like but those two bits of code both compile to the identical idiomatic JavaScript so javascript is clearly super-powerful and all I ask is that people don't let the layers hide too much complexity because you get a library like fart scroll and you don't understand how it works and you start thinking that you're really slick but you're not and too often we find people saying that they don't write JavaScript anymore they write jQuery right you know you ask someone to go and do a selector and say go and select this node and they open up they go open Resig parent parent anyway whoa whoa whoa like the dollar sign is not built-in like you don't just get to use that who said that that no one writes JavaScript any more they write jQuery there's actually jQuery jQuery said that this article is about the actor for the JavaScript library see jQuery jQuery does not like that I use this joke but he's actually an actor but the great thing is that once you know about jQuery that you actually can never use jQuery again right because you'll be at your work and they'll be like hey we should probably use jQuery for that I mean like I don't know if he's available but I'll call his agent let me let me check his IMDB page to see what jQuery is currently working on I think he's just finished filming an episode of Chicago Fire so I can't even say jQuery without thinking about jQuery you think that you're going to build something and you have an image in your mind about all the great stuff that's going to happen when you use these JavaScript libraries and then you go and you oh that thing and it ends up not looking right and you don't know who to blame and then you're sad you're like I don't know so I would really propose that people start thinking about vanilla Jas when you learn JavaScript like I told this gentleman at Intel you got to learn the metal we teach kids assembly because it's fun to watch them in pain and then we teach them C and we go out forget about assembly you really needed to see and they go oh why didn't you show me C before well and then once they're done suffering in C we teach them C sharp or Java and we go out memory management no one does that anymore and then we and then in the future we're going to teach them things like you know service fabric in the actor model and all that kind of stuff and they're going to completely forget what's underneath the metal the problem is that then you have people going and writing their own stuff so you have to find that balance do you do you pick a library and count on it and then have no idea what's happening underneath or do you start at the metal and then if you're dumb write your own JavaScript framework do you know that there are actually more JavaScript frameworks than there are apps that use JavaScript frameworks you think would be like at least a one to one but it's not so I would tell you this expect more from your web and your web tools we're at a place right now where things work pretty well together things at the web at this point in 2016 are starting to get really nice if you exclude the crappy browsers and you just aim for a functional web a reactive web a web that does feature detection you can get yourself in a pretty nice spot and on the cloud side you have effectively unlimited scale and your choice of languages but what I would encourage people to think about is on the browser side remember that that machine that runs that browser is deceptively powerful you've got accelerated graphics even on the crappiest machines you have an integrated virtual machine that you are probably not using so if you have 10 virtual machines in your farm and you have a thousand people hitting it don't forget that those thousand people have quad processors so you really have a thousand plus 10 virtual machines why are you when you when you sort a list posting the data back and asking the server to sort that why aren't you using things like d3.js to do your graphics generation start using those powerful virtual machines and the JavaScript that is available on them your cloud does not need to work so hard thanks so much for letting me do this here and the NDC Sydney let's give a big hand for the folks who are working so hard to put on a great show for you let's say goodbye and go have some fun thank you
Info
Channel: NDC Conferences
Views: 29,492
Rating: 4.8920636 out of 5
Keywords: NDC, NDC Sydney, Scott Hanselman, web, javascript, Microsoft
Id: YI34UIMgkxs
Channel Id: undefined
Length: 57min 34sec (3454 seconds)
Published: Tue Aug 23 2016
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.