VENKAT SUBRAMANIAM - Refactor your language knowledge portfolio - we are what we can code in

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] so I want to talk about refactor your knowledge portfolio well let's talk about knowledge portfolio we are I'm gonna say we are what we code in well pragmatic programmers the book pragmatic programmers advised us that we should learn one new language every single year what they really meant was we should learn one very different language every single year if you know Java and you're learning c-sharp that doesn't count it's got to be something that makes you cry something that hurts you something when you are done you say it was worth it and and to me learning is like peeling an onion those of us who peel onions know what I'm talking about what happens when you peel an onion you cry that's exactly right and onions also have layers and that's one of the things I've learned in my life is learning is full of layers there are times I would learn something and how naive of me I would think that I understood it only a few days a few months later realized I had no clue what I was talking about and then there's a layer to peel and when you peel that layer there are more layers to peel and this is one of the things that excites me I'm an old guy are being programming for a good 35 years and I still wake up every morning and I start coding and the reason I program is that every single day that I program I feel like a kid in a candy store and and and that is one of the things that excites me to be a programmer and I would think that I was not born a programmer but I can tell you I'll die a programmer because I just love the learning aspect of what's involved in programming I'm gonna say that when I started programming this was a long time ago what really drew me in was the math and the science and the engineering in programming but what really kept me as a programmer is the art in programming the language that I program in completely molded and structured my thought in a certain way that any other thought any other way of thinking was very alien to me and I had to reject it and then that's when I realized that this is not going to make me a better programmer by limiting myself to know one thing and and I started really putting effort towards it I have to say it was not easy it was really hard journey but today I program in about 15 different languages and and the reason I program in 15 different languages really is that every single language reminds me that there is no one way to do things there are so many different ways to do things and not all of them are right not all of them are wrong they're just different and we have to really pick and choose what may make sense based on the context of what we are really trying to do and from that point of view I want to use this particular court I think it's really a wonderful Court I want to stay as close to the edge as I as I can without going over out on the edge you can see all kinds of things you cannot see from the center and this is so true if you really think about it and I'm a big fan of mountain hiking there are two things I do in my life programming is one mountain hiking is the other and honestly I'll be very honest about it I'm actually very fearful of heights and when I go up on the rocks I have to stop and I have to calm myself down because I look down and I'm all shivery and yet I really like to go climb up mountains and because you know has type you're holding into the rock you look over and that's just absolutely amazing the view you get from the top and this is exactly the reason why I like to program in languages that are so weird and so different because when you push yourselves away from the mainstream to the edges there are things you can see that most people who are living in the mainstream can never experience and that's one of the reasons why I like to really go to the edge and look at languages that are new language that are different to learn from them but if you really think about it programming is a very nascent field we've been programming for maybe about 50 60 years much more significantly in the past about 40 years and more so in the past few decades but if you look at a lot of other human activities programming is very nascent compared to that and we have been just learning and and and when people ask me what will be the future what particular technology what language will be really the most significant this is like asking the world what would be the technology we used about you know 3000 or 4000 years ago or even before that and we are just in the beginning and if people ask me what will be the future my answer usually I hope it's not what we know as of it right now it's got to change a lot we're just still making mistakes and we need to learn from that as we go along but let's talk about something else for a minute suppose I want to buy a car what car would you ask me to buy now of course you mean think why is he talking about cars all of a sudden when we are talking about programming languages I'll draw an analogy to this in a few minutes so I want to buy a car what can a car should I buy oh I can read minds I know what you're thinking you're thinking bank it you should buy that one all right well what I mean by that is you're telling me I should buy an electric car electric car is the rage isn't it everyone wants to buy electric cars what will happen if we all buy electric cars everyone in the world buys electric cars what's going to happen if we all buy electric cars moving forward well the whole of United States will be sprinkled with electric change stations that was a quote from 1899 no no no I didn't make a mistake it is a code from 1899 because many people don't know this electric cars were enormously popular back in 1900 and this is what the world was back in 1900 there was no cars that drank gasoline like they do today so one of the one-third of the automobile industry back in 1900 were powered by electric and it turned out that when the cars were mostly electric they really had trouble keeping those electricity running they would run out of batteries kind of who guessed and eventually they found out they could power through gasoline and that started giving a lot better performance and as a result the world went onto gasoline-powered cars and of course we know the rest of the history how that process was streamlined and we slowly forgot about electric cars and then we have a new generation which never really looked at it and now we are like absolutely excitable electric cars if there was somebody who was 115 years old they wake up and look it's like why are you guys excited about this this is exactly what we talked about when I was a child they would be thinking isn't it and it turns out that if you look at the automobile industry the very first few cars we're steam-powered and electric powered then came along gasoline-powered cars and then eventually we are back again getting excited about electric cars and our programming field is exactly going through that cycle as well our field is very similar in that the very first few programming languages we introduced is not what we get excited about today if you think about it functional programming is the electric cars of the programming world so when we started programming the languages were functional style and structure object-oriented programming didn't even exist at that point object-oriented programming is the gasoline-powered cars of our industry and we really came up with that about 15 20 years after functional programming was introduced and then of course that became the mainstream just like gasoline-powered cars and everybody started using it and then all of a sudden we are excited about functional programming if somebody has been around in the field for 6070 years they wake up scratching their head hey this is what we talked about when I was a kid why are all these people suddenly excited and thinking it's new stuff well what is old is new again and that is the weird part of what we do and and we work in a field where we don't come up with new things we just come up with new names for things and get really excited about it so this has been around for a very long time as it turns out but let's talk about Java for a little bit Java is special Java is special in a lot of different ways Java is one of those languages that has survived the longest period of times if you look at language history in the past languages lived for about 10 years and that's the lifetime of a language it'll come to prominence if at all get kurd it would be prominent for about seven to eight years and then it kind of fades away and almost all the languages did that ten years of prominence people will still use it like people still use COBOL but that's not the mainstream that's not what people are excited about but Java is one of those few languages that really defied that logic there are only two languages I think maybe if you could we could claim that did that one is Java and the other is the one that everyone loves right JavaScript and so almost every other language fade away but Java has sustained so long but if you think about Java what does Java have one of the reasons for that is we have the JVM and JVM is the most scalable multi-threaded platform it contains the core ability to do garbage collection it is one of the most ubiquitous platforms ever the JDK is absolutely powerful and versatile I mentioned earlier iced I started programming in C++ one of the nice thing about Plus pluses everyone who wrote program in C++ wrote their own collection how do you feel about that if you think about it right that was pretty dumb and when Java came out it had a library we were like wow we don't have to write our own collection what a difference what do we do now right and and this is amazing that you had actually a very strong library to use and then of course the java language and every book in java said java is simple but then of course as you start using it you learn a few things Java was not simple it was simpler than C++ I call this the politics of programming languages you know if you notice the politics I can definitely speak about my own politics my own country if you look at the US politics what do they do every four years we do this somebody will come to and say he or she sucks elect me and I will change your world four years later somebody says the same thing about this person right and we are so happy to keep voting every four years and and you know Einstein said doing the same thing over and over and expecting a different result is the definition of insanity we collectively are insane that's what we are saying but the point really is that Java when it came out it said oh it's simple but what they really meant was it's simpler than C++ but if you really think about this you can say that the JVM is absolutely ubiquitous you can say that the JDK is the most widely used and absolutely powerful and I would argue Java is the weakest link of all the three and Java the language has been the weakest link for a long time now clearly you may say hey look at what Java has done in the past about five years - maybe six years and he'll absolutely I would agree with you Java has changed more in the last five years than in the past 20 years and I'm gonna argue honestly I say this with good faith Java is going to be changing the most in the next five years than in the past 20 years because Java is rapidly evolving and the reason for it and the reason is it's a place where a lot of changes absolutely needed if JAMA needs to continue to live in the future because the Java has a language is a weakest link unless it changes quite significantly moving into the future but but the designers of Java today are very aware of this if you really think about what happened in history right about the time 2000 I would say there was a exodus' people started programming in Ruby and rails and other languages this is the time in 2003 when you had languages Renaissance so to say where we started having languages like groovy and Scala and JRuby and closure a lot of these languages came to surface in about 2003 timeframe this was a perfect storm and I have to tell you that I have the deepest respect for every one of these languages and I'll tell you why in a few minutes and and these languages to me or the reason why Java is what it is today and Java will be water days in the future and I'll give a name for these languages in just a few minutes so given these languages and how things are shaping up Java still continues moving forward no doubt about it but these languages play a very vital role so if you look at the environment we are in today we still have the JVM we still have the JDK both of which have evolved certainly but the language skate landscape is very different you have Java Scala Ruby JRuby closure and of course Cortland and a lot of these languages are pretty exciting but if you really think about these languages I look at languages as vehicles if you think about it you probably took a bicycle to write around you probably took a car to go around I took an airplane to come here and then I took a taxi to come here as well so on a given day we use multiple modes of transportation I look at languages as vehicles there are times when I want a bicycle there are times when a car is a better choice and I need to be able to switch between them what makes me effective to go around similarly as a programmer I find myself more effective when I can switch between these vehicles to get around than being forced to use one single language to move forward so from that point of view what is old is new again and we see this quite a bit in our history well it's not the syntax that really matters oftentimes when I work with new languages when I talk to programmers who use languages I cannot tell you how many times people tell me oh I hate that syntax R I love that syntax which is really missing the point because syntax is the least exciting for me and and honestly I can never learn the syntax by reading a book or reading a language syntax becomes natural to me as a code I complain I curse and eventually I don't even think about it and syntax just becomes natural for me over time what is the most important thing in a language is the semantics and how you can use that language that matters a lot but when you learn a language we all go through certain troubles here's a beautiful picture from the seven Habits of Highly Effective People and I want you to think look at this for a second how many of you see a very old lady in this picture okay you see how many people saw that how many of you see a beautiful young lady in the picture a few of us how many of you see both okay you need you need help okay but the point really is you see both after you kind of look at it and say maybe the first time you saw it you didn't see both and maybe you saw this very old lady who is absolutely generous and and ready to feed you and you're hungry or maybe you saw this gorgeous young lady over there but it's the same picture to me programming languages are exactly that when I look at a language I see that old lady or the young lady and then after working with the language I see both aspects of it and and this is really the perception we have there's no wrong there is no right there is nothing about oh you should have seen this versus that we both are right it doesn't matter which one you saw are you seeing both of those but the point really is when we look at this languages are not about syntax languages are all about idioms for example a phrase in English it rains cats and dogs it makes zero sense isn't it because if you look up the dictionary you can look at the word rain and you can look at the word cat and you can look at the word dog and you wonder why would it ever rain cats and dogs but this is the beauty of idioms idioms are interesting because idioms don't mean what they mean if you put the meanings of words in the dictionary which means you cannot learn the idioms by learning the dictionary you need to know idioms have a connotation idioms have a history idioms I have a story and idioms have a usage programming languages have idioms so when you learn a language if you're learning the syntax that's like learning the dictionary and you end up speaking but you never will be comfortable like the person who is native to that particular language but once you mingle in a society what do you do you hear people say absolutely silly things and then you say why would it rain cats and dogs and then they tell you the story of what that means and after a few months maybe use the phrase yourself learning a programming languages like that you learn the idioms of the language and that takes a little bit of time and effort to learn those idioms but idioms are very important if you don't know how people native do it you're in for a very big surprise like coca-cola learned the very hard way coke wanted to do marketing in the Middle East and they wanted to promote coke and for the people in the Middle East and so they came up with this absolutely phenomenal marketing idea they put out this blue beautiful poster and the poster showed a person absolutely tired completely be hydrated fall on the flat on the ground and that person drinks coke and after breaking coke person is energized and starts running and they put this out on the sail just dropped nobody wants to buy coke anymore and they were like wow why don't people buy coke anymore what happened and that's when somebody told them the people in the Middle East read from right to left so this person who was jogging drinks coke in almost dead weight why would you buy it this is one of the reasons why context matters we really need to understand how it feels to be in that particular environment because if we don't we're in good before a really big surprise now of course we all make mistakes like this every single day the only difference I always say this I make mistakes but the only difference is when I make mistakes I'm not on the news right that's only the saving grace for me when these people make mistake everybody talks about it so the point really is we do have to understand the connotations and the idioms and the and the local information is very important to know how things really behave but we are poised for a very interesting evolution in our field and this has been happening for a while for a good 60 years but over the past few years things have become really more exciting and that is the imperative style of programming versus the functional style of programming and and here's a beautiful quote by Stuart Holloway Stuart is a works in a cotton attack he's the CTO of cosmetic a company behind closure that rich icky are created and he says good coat is the opposite if you google for it you'll find it I highly recommend reading this blog post beautiful blog post just googled for essence versus ceremony and he talks about good good is the opposite of legacy code it captures and communicates the essence while omitting ceremony irrelevant details capturing and communicating essence is hard he goes on to say this is so true and the word I like the most often is essence versus ceremony what is ceremony ceremony is what you have to do before you get to do what you really want to do anyone here would love ceremony no because ceremony sucks the life out of you you are like wow this is great I'm gonna do this and they're like oh hold on please you have to do all this ceremony before you go to do that and you're like what fun is that essence removes the ceremony so you can focus on what you want to do let's think about this for a minute if you think about essence versus ceremony let's talk about ceremony for a minute now let's think about this for a minute how many of you have ever had a chance even informally to teach Java to somebody maybe a friend maybe a colleague come on is that all more of us did come on you always try to teach over to somebody whether they like it or not right and you always did you're sitting in a train and somebody says what are you for a living I'm a programmer really let me show you right you always do this we are such a people we always love showing off over code so you told this person I Pro you know and they come to you and say East Java really hard to learn and you say Oh Java is easy it's a simplest language on earth and the person says well I'm new to programming oh don't worry Java is easy you can learn it in your sleep really can you teach me Java of course let's sit down I will teach you what's the first thing you did you said public excuse me what is public you don't need to know that right now the person is noting down public no new tilted right now then you said class excuse me what's a class you don't need to know that right now okay hello world and the person is like so happy yes and then you put a curly there like her what does that mean then you said public and the person immediately looks up the book and says I don't need to know that right now then you said static and they're like excuse me is that also something I don't need to know right now what is that called ceremony isn't it by the time they don't even know what's still coming right you keep on going and they are like sitting and saying did you say Java is simple and this is you know I has programmers who are doing this every single day it doesn't bother us but it's not about you and me we have 10 million people using Java not everybody is the same we got new people coming into the field and they are shopping and when they go shopping they look at one where you can do the following what can you do you can simply come in here and say print line HelloWorld and you can run it like that or they are still working here and that person who are shopping says hmm which one do I want to start programming in ceremony are just the essence where I can get my work done and I can actually go home and do other fun things maybe including coding at home right that's what we do but the point really is ceremony really makes it hard for us or even even worse let's go a little further with this it doesn't have to stop right there unfortunately it can become even more difficult for example all I want to do is thread sleep 1000 now what does Java say Java say is not so fast sorry what am I supposed to do you better handle the exception so what are you gonna do now try and then of course you put the catch block right here and then you say exception e^x and now you have no clue what to do with that how many of you have spent sleepless nights thinking night thinking what do I do with the exception that sleep throws me right and what does Java say Java says you write the code in all simplicity you say hey I want to just call sleep Java says you will handle the exception what does the programmer say the programmer says let me show you who's in power here and puts an empty cat there is no way to win this battle isn't it because when you try to outsmart the programmers the programmers always outsmart you so this is why we see all this empty cache blocking the code and we don't have a clue what to do or if you tell your developers no more empty cache blocks for you the next week we are doing code review you see this beautiful prints track trace everywhere like this is somehow better isn't it now this is again an example of any forced programmers to do things it becomes really hard but what if languages say you know what it doesn't really matter if you want to handle the exception do otherwise don't so I can put a little thousand and I can say there I can run the code I don't need to be handling exceptions I don't care about so the point really is we can remove a lot of that ceremony now to be fair though Java has improved substantially over time but the reason I want to talk about it is we really always have to challenge our results we always have to find better ways to do because we are working in a big field where we need to be producing results not dealing with ceremony let's talk about reading from a file now I grew up in this environment you know Java was simpler than C++ so I didn't complain a whole lot because it was a lot better than what was available but whatever what I want to do is the following I'm gonna say import Java dot IO dot star then I want to say bufferedreader a reader is equal to new buffered reader and then I say new file reader and then what am I gonna say over here I'm going to specify sample Java which is the file I want to read over here so I've created this buffered reader and what do we want to do if I try to run the code Java again says you need to handle the exception but when you get experience with Java you find ways to deal with it as experienced programmer you say fine and you put throws exception and say you shut up now and the Java compiler is like okay fine you win so what do I do now I'm gonna say while well first of all string stirrer is equal to null what is now null we all know what it is null is a smell right we don't get proud using null in fact the person who invented null is the person who invented so many other wonderful things in our in our world Tony Hoare he actually apologized for creating null and and so in this case of course I'm gonna say while and I'm gonna say stir is equal to read or not read line and then what do you do is not equal to null how do you feel when you write that code absolutely dirty isn't it and you're looking at this like gosh did I really do that and then you're gonna output the string you just read to display the file we just wrote the code that is absolute ceremony right but why should we do all that work can't life be really simpler well thankfully I mentioned that java learned a lot from other languages so import Java dot IO dot file dot star now I can write over here file start lines this is still Java isn't it I can say pads dot get and I can ask for the sample dot Java and I can say dot for each system dot out dot print line and I can ask it to print the content of the file without as much ceremony now which one would you write would you write the top coat or would you write the bottom code I'll tell you what I would write if I'm a consultant paid by the number of lines of code I write I'll write the top one I can get more money but if I want to get my word that I would favor really essence versus ceremony but again you can see this works but why can't I just use file why shouldn't I simply use file like Java dot IO dot file the good old file and I'm gonna say sample dot k TS dot for each line and I can take F Racing the line and print it so when the code begins to read like the problem and we don't have to involve ceremony this is code in Cartland where I've written a Cartland script and I'm just reading the file and what it Kotlin do Carlene said hey JDK is awesome but it has a few missing parts to it and they have done extension functions to it so the file now has a function that can read the lines and return to you thanks to the for each line added by the Kotlin as the earth standard library so we can no push boundaries towards it but the point I'm really making here is that we can make a big difference by using sensible things in the languages like for example think about these these two things where if you're used to languages like C sharp and Java and C++ like I came from I want you to think of two words for a minute I'm gonna say the word statement how do you feel when you hear the word statement a little grim I don't see anyone smiling in the room let me try this let's say the word expression did you just see that you started smiling already when I say expression it's like it's lifted some burden off your shoulder isn't it statement is so governing so strict and when you use a statement that's how you feel expression and expressions are awesome what is wrong with the statement what's wrong with the statement is what does the statement return to you nothing how rude isn't it a statement says I finished the work you asked me to do really what is the result I won't tell you I put it over there go get it for yourself so by definition what a statements do they force mutability on us by definition statements force mutability expression returned result to us if you look at a purely functional language there are no statements this was mine loan for me because I woke up one morning and said whoa you could actually have a programming language with no statements in it and I couldn't believe it how could you have a language where there are no statements at all is that even possible when everything is an expression let's think about this with a little example here if you will I'm gonna write a class called foo and I'm going to create an object of foo so I'm gonna put a food out new this is just one example of a ruby code but I wrote a class called foo what's the class in Java oh it's a statement if somebody tells you assign the class to something you're like going to look at them said you know Java right you can assign stuff like that but why not why not say put right on that what is it gonna put they return the result from the class if you will so why can't classes be expressions and the suddenly changes the view of the world isn't it for example if I say age is equal to 12 I can say 4 equals 2 if age greater than 17 what do I want to do I could say vote and as a expression or I could say else you know go home kid and I can write code where the F is no longer a statement what if F is not a statement what if if will become an expression and then I can start writing code with expressions I don't need to mutate stuff when I can have expressions and this why is this exciting for me because the minute I learned that you could actually program with expressions I started writing my code very differently in Java I started writing more expressions for myself in my api's than writing statements because statements cause mutation expressions don't force mutability which means I can write more fewer functions and it can become lot easier for me to work with functional style of programming as well learning these ideas changes the way we start programming the languages we work in and and so that's one difference huge difference every language leaves its mark on the world and if you really think about it the language that I programmed in the most C++ what is C++ counts Joseph created C++ and he created a better see how do you define C++ I'm gonna say this is what C++ is to me it's a beautiful language I love the language honestly but it's an amazingly fertile at first language but incredibly dangerous this is a language that allows you to shoot yourself in the foot now I'll tell you how you can't recognize C++ programmers if you're sitting next to one you will know this you will look at them and you will see them absolutely excited in the morning and you look at them and say you seem excited and they're like yes I want to go go to work now and I want to see what my code is doing because they have no clue what it's gonna do and the language is that capable but you can shoot eels on the phone and they'll come to you and say I never thought you could do that and they will spend 30 hours fixing the bug now and I've told this for my life this is very powerful very dangerous as well what about Java ja of course changed the world Java introduced a lot of ideas that were there but it really streamlined it automatic garbage collection for example really powerful JVM a lot of those ideas were there before but the virtual machine idea automatic garbage collection was really brought to mainstream by Java and Java made a big difference in that regard but I wanted to find a word here and I mean this I call these bridge languages I call them bridge languages for a good reason the reason I call a bridge languages Java today is evolving a trait you never imagined but if you go talk to the designers of Java and ask them what they are adding into Java I want to make this very emphasize this very clearly Java is not interested in doing everything that every language does what Java is trying to do is Java say is this useful is this feasible and is it something we can do effectively with in Java but Java is not going to be the language that innovates these language features Java cannot do that part of the reason for that is the user base is too large for Java Java doesn't have the luxury of doing things and saying oops that didn't work out really well let's remove it but you know what I love languages like groovy and JRuby and Scala and a lot of languages why because those languages they will try ideas and if it didn't doesn't doesn't work out they will remove them but these languages are the playing fields for a lot of innovation on the JVM I call these bridge languages for a really good reason and the reason these languages to me or the JRuby Scala Kotlin groovy and Clojure these are the bridge languages they're bridge languages because these languages are bridging the ideas the language innovations to the JVM so once they try it out they draw the bridge and see if the bridge actually stands and if it falls down well don't go that route we need to retry this but once these languages have experimented we as Java programmers can come and start using the benefits if you look at the features coming in Java in the next five years every single one of those features is in one of those languages at least and this is one of the reasons I have the deepest respect for these languages because these language designers have gone forward and tried these ideas experimented implemented for us to look at that and say hey that seems like a great idea we can use that too and and the world can benefit from these ideas so they share a common trait they are very concise they are highly expressive and more all of them in that list or have functional style and and a lot of this has been learnt already we are using functional style and lambdas in Java today introduced in 2014 I started using that early to thousands in groovy for example so you could this is an idea of in skylights been around since 2003 for example so they also promote immutability pure functions functions with no side effect higher-order functions and so on all of these ideas we are already benefiting in Java so Java did a phenomenal job in implementing these don't get me wrong I love Java for one reason Java did a phenomenal job of implementing lambdas Java did not innovate lambdas but it implemented lambdas in the most effective way on the JVM and an hats off to that so in the functional style of programming we are avoiding the mutable state so what we are doing is a state transformation rather than state mutation if you look at the bottom picture that resembles reactive programming quite a bit as well because we are moving towards a reactive pipeline of computations and this idea of a functional pipeline is so prevalent now we are begin to use this in almost every single application we're developing and languages are becoming really better at doing this as well including Java moving us in this direction so these languages that I talked about are definitely game changers and part of the reason I spend time learning these languages is it really makes me rethink about how I program in the language I program in and it substantially changes the way I approach these languages as well so when it comes to learning languages people often ask me what language do you pick to learn I want to pick a language that will change my thinking I don't want to learn a language that that teaches me what I already know I want to pick a language that I will scream I will kick I will complain while I'm learning it and when I'm done with it I come back saying wow that was a very interesting journey and I learned something I never knew was possible and and then over a few years later I see these very ID that I once programmed in another language becomes part of the language I program in and that reduces the learning curve for me but I'm also able to use it very effectively and and that is one of the reasons why I see these languages as the game changers so what can we do as companies and as individuals and this is one of the things that absolutely excites me because we work in a field where we have the power in our hands we are working with computers and our entire world is right up here and and to me this is the most exciting part because if you look at almost every other aspect of life there is something tangible and when you do something in the world you can cause damage doing it you some of the damage could be irrevocable but for us we can sit down over a computer and we can change our thinking and change it again and change it again and try new ideas and come out thinking very differently but we can learn a great deal from other people who have been before us in the world we live in so first is as a corporation what can we do we have to evaluate risk and we have to evaluate the reward as well and I emphasize this because I travel around the world and consistently I hear people come to me and say my company doesn't want to invest into this new language or they don't want me to even try using these language even for testing purposes or for prototyping and to me that's a big disservice because if I want to be a leader in the industry I got to rethink about what I do as a company just to give an example of this here's something to think about this is a map of the a part of Wyoming and part of Utah and part of Colorado and here is Shaheen Cheyenne is the windiest part of the United States and the wind is just unbelievable in this area and there's the Rocky Mountains and then to the west of the Rocky Mountains of Salt Lake City and as the crow flies its ass 370 miles or if you take the road it's 400 and 440 miles and this is going around the mountains as you can see if you are in the business to transport things between these two points that's a lot of journey especially in the winter it can be really hard because there could be a lot of snow in these areas this is exactly the point of about a hundred years ago give or take maybe about 80 years ago but there was a guy and his name now is the name of the Denver's main terminal his name is Jepsen and Jepsen started flying flights from Cheyenne to Salt Lake City now I want you to think about this for a minute this is when there was no Airlines he was one of the pioneers in the field and he started flying now you can imagine how hard it is to fly through the mountains you could crash and people did and people lost their lives crashing so what Jepsen did when he started flying just for his own purpose he started drawing a chart of what is out there and he started keeping a chart so every time he would fly he would write down notes on the chart and other pilots came to him they were having a little chat and they found out that he was writing notes and they looked at him said what is that oh this is just a chart I started creating as I'm flying and they said can I have it and he said sure for 10 bucks he started selling the chart to other people and guess what those other people bought his chart and as they started flying they were using a chart and they found the chart was not complete they started taking notes on the chart and when they come back to him they would give him their notes and say here go integrate it and then sell it back to us again and this guy was working for the airline and he was the very first person to start creating charts and his eventually became transformed into world standards in the in the field eventually the airline that he worked for became United Airlines through generations of it and you can imagine here we are sitting in the comfort of our computer we are writing code the worst thing that can happen to us is a segment fault whereas there they are up there flying and people could lose their lives and yet that's what he did and he created an entire new industry that we thrive on the world economy today it's just amazing to think about it those draw inspiration for me because if they can do such really hard things I can do what I do because it's absolutely insanely simple what I do and the other thing to think about is is to create the forages of how the bees work and this is something we can learn from these creatures bees go out to look for honey and when they do they all kind of disperse and go away until a group finds really good honey and they do what's called the beatings and then of course that's a way to tell every other bee in their community that they found a really good stash of honey for that day companies can learn a great deal from this as an organization imagine they can send us to explore and we can come and do the dancing I love to see the dancing one day where we can say I found this language it's awesome and the rest of us can go towards that direction and start exploring in that particular language this is a great way to innovate as a company as an organization as a individual what can I do and I'll say this honestly there's a beautiful quote by gosh I'm throwing a blank at the moment so there's a beautiful code where the Corp sim simply says I stood in the shoulders of the Giants Newton so that's such a beautiful kort we all know how absolutely phenomenal he was and yet he said what I learned I learned from standing in the shoulders of the Giant and I'll tell you I'm not the smartest person on earth but I am thirsty to learn from other people every opportunity I get what I can pair with somebody else and look at what they do and how they think is a way for me to learn and rethink what I do and this is one of the things I would say as individual we should definitely avoid doing E's isolation we can learn so much and help other people learn so much by interacting with them and what I would definitely think about is this as the beautiful court here says the electorate of the 21st century will not be those who cannot read and write but those who cannot learn unlearn and relearn I cannot emphasize that unlearning and I like I mentioned I've been programming for 35 years what I enjoy the most is the unlearning because for me to wake up one morning and say everything I know is different and I can relearn and rethink about what I do is really powerful in my opinion because makes me humble to know that I'm not done yet I have so much to learn and to unlearn and to relearn and that to me is absolutely phenomenal it gives me the strength to continue every single day in this field and to be able to really do it how can we do this I'll tell you how not to do this because you sometimes see these programmers they don't look like this but they pretend like this where they would be sitting and coding like that this is not the way to do it what we can do in our work is to create an environment where we will be really excited about learning from each other this kind of goes to the Pavlos theory about Sclater about classic conditioning the environment we create can change our behavior if you ask me what is the best job I've ever I had working in a company the best companies are companies where the team made it absolutely safe for me to be honest for me to say I don't know for me to say I want to learn and for them to sit with me and pitch what they know and learn a little what what I know from me that collaborative environment is the most important thing you know the saying right tell me where your friends are I'll tell you who you are that applies so much to programming as well to create that culture where we will go out and experiment and learn and innovate that corporate culture is absolutely important and if we can find companies and create environment like that for ourselves I think we're going to be great because environment shapes behavior we definitely should avoid it but go towards more collaborative environment so our strength is together where we can learn from each other and we want to build that community and be able to continuously learn from each other as JFK said there are risk and cost to program of action there's absolutely that's true but therefore less than long-range risk and cost of comfortable inaction I would argue a lot of what corporations do predominantly is that comfortable in action but there is a risk to trying new ideas there is always risk but the cost is less compared to the alternative and I hope we all will go out go out to innovate and and we will explore that all right like a like I started with saying it is absolutely phenomenal field to work in and and the reason I enjoy that is the learning and the real learning and the unlearning and relearning and I think we can do a great deal and looking at these languages the the bridge languages as I call them is great because we can experiment with them we can help those languages go explore because we contribute by using them too and those languages in turn learn from what works and what doesn't work and in the end when those languages are done with their experimentation other languages are able to pick up and the world benefits because of our you know a desire to help with those languages let's go rock the world it's a lot of fun place to be thank you [Applause] [Music]
Info
Channel: Devoxx
Views: 30,503
Rating: 4.9243245 out of 5
Keywords: refactor, languages, knowledge
Id: zajUPJI19ZQ
Channel Id: undefined
Length: 53min 17sec (3197 seconds)
Published: Thu Dec 06 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.