 I do this at every Haskeek event that I go to, which is that I changed my topic at the last moment. I decided that the Jaskar isn't really that good and I want to know something that's a little closer to my heart. It's about the movie Andhasa Pradhan and how it's a sign for two change in the world. About things that we can learn from the characters from Amir Khan and Salman Khan. Of course, I'm kidding. You don't have to take me seriously at all. My name is Mil Paik. It's actually PAI, but my math professor in Suratkal called me PAI and it's stuck since then. So far, my dad calls me Pai as well now. It's slightly odd. I was born in 1983 in Sonya clinic in Manipal. So that's my heritage. I've got a mother group out and then I went to MTC. After that I did Suratkal and from there I've done a whole bunch of places. I've worked in the government. My first job was actually writing embedded software for trains in Chitrad. That was great. That was pretty neat. Since then I've worked in design firms. I've worked a little bit with Facebook. They're a pretty neat engineering team and a fellow at the time of their office was there. I've stood for about two and a half hours outside Kukertino waiting for Steve Jobs to pass on his blue Mercedes. That was a little creepy. But I now work at Yahoo. I work as a tech lead on Yahoo Maps and there's a lot of serious JavaScript work there. In fact, until recently Douglas Crawford used to work there. Douglas Crawford is considered the grandfather of JavaScript for a couple of reasons which we get to. But in Yahoo, you get the feeling for why JavaScript is that important. Yahoo is actually moving its entire software stack to JavaScript now slowly. Even the back end components, they have this framework called ETO. Before I start actually, before I go down this road, how many people here are who have to do the JavaScript? There are written scripts. How many of you are written of those types of applications in JavaScript? You have apps. Okay, close enough. So let me guess. You guys started again for a slide show. Okay, I see about three hands there. That's how all of us are. JavaScript isn't really not a thing in college. Somebody does make your web page with a drop-down menu and you just Google that thing. Or you search on Yahoo. Hey, so let me get onto it. The year is 1991. The British magazine The Sun publishes an article about Tim Berlersley, about a computer scientist who has made this crazy invention called the web. And he says that it's going to change billions of lives and everybody's laughing at him. He's like, how are you serious? Everybody's tried this before. This is actually an offshoot of an American military project called ARPANET. But as for the same people, we need to get it to consumers and so on and so forth. So this is 1991. Give you a little time to say that in 1992 I did my Geneva Rthing and my uncle gave me a 386 as my first computer, which I started programming. So somewhere around the same time. They even had a pseudonym for their journals. If you can read it, it was called dot com. It was considered funny at the time, I suppose. So the line is for all the world with browser boards. If you guys were born sometime in the early 80s, you probably remember the whole PC Quest of chip digit era, where every new magazine, you would get the new version of Netscape or when Internet Explorer 5 or 6 came out and you were like, this is great. This is so awesome. And then you had to do the, you had to dial up for, to get onto the Internet. At the time in Manipal, I think, I forget, the browser that my mom used to scream at me for running up high. Anyway, so the browser boards were going up. And the support from Jamie Zawinski was working with Netscape at the time. He said, you're shipping a finished product in 6 months or you're going to die trying. There were no, there were no second chances, there was no time to make a better product about it. Microsoft was trying very hard to gain control on the web as was Netscape. They were trying to, Netscape was trying to bring a standards-based approach, which eventually became Mozilla and so on. A whole bunch of great programmers from the time. Jamie Zawinski was here, Trent and I was there, I'll talk about him as well. They were all trying, they were trying everything they could to make sense of something called the Internet. At the time Netscape in 1994 or so, they had a collaboration with Sunlight Systems where they decided to figure out a way to get Java into the browser. Java, let's if you remember that case as well. So at that point of time, there was a lucky little engineer called Brendan Eich and somebody gave him the job saying in 2 weeks, he wanted to try his scripting language also, so that people can learn his scripts into their web page and do stuff. For what it was, Brendan Eich was actually a functional programming guy. He was usually into these languages for self and scheme. Scheme is, everybody knows what Lisp is here, functional programming. Check it out, the scheme is now for a bracket. But the reason I bring it up is because Brendan Eich was sitting and he was doing an academic pursuit of the language but he was given this job of saying you have about 2 weeks, give or take, the exact number has been lost. But around this time, he was given about 2 weeks and said come up with the language, so he took the best features of scheme and essentially functional programming. And his boss told him it has to vaguely look like Java, so he brought a C-like syntax into it, which is why we have bar x is equal to 1, 2, 3 and so on and so forth. And as a marketing employee, they called it JavaScript. That name JavaScript ruined its reputation for a good 10 years until early 2000. Something I learnt while I was researching for this thing, Oracle Incorporated actually holds the trademark with JavaScript and Netscape actually has it on license. And that license passes on to Mozilla, which is why Mozilla is allowing the word JavaScript on their pages. That means that Oracle has no chance in the hell of actually depending this, for example, Microsoft uses it. In any case, at the point of time this fellow came up with JavaScript, Microsoft saw it and they were like, oh, we totally forgot about having a scripting language on our browsers. They came up with two variants. One was BVScript, died really quickly, and JScript, which was vaguely compatible with JavaScript. For all purposes of sure, let's say that it was compatible with JavaScript. But they got a JScript after that. And then it became the age of this statement on every single web page. How many people remember this? I remember the first Netscape in Manipal was a thing called Cyberlogin. It was very close to Tiger Circle. They used to charge 90 or 95 rupees an hour, and I spent that money. I spent it. I mean, my dad thought it was for education, but I think that's so important, let's be honest. Anyway, but this I remember everywhere. Every single web page works best on Internet Explorer 5.5 and above. And for what reason? A whole bunch of reasons. One is Microsoft was actually pushing their own proprietary plug-in structure for ActiveX, has anyone here done any ActiveX programming? One hand in the back. They were trying to push ActiveX really hard. So there were a whole bunch of internal applications in certain companies and so on that were trying to use this. But Netscape, etc. were obviously pushing JavaScript. So what are the reasons why JavaScript 1, a few things came up? ActiveX's investigations against Microsoft started in 1998. If you were around during that time, it was covered in all the magazines, all the newspapers. It was on the BBC and CNN and Durdarshan. And it was huge because they were like, here is a company that tries to beat out its competitors by unfair tactics. But okay, fine. When they're talking unfair tactics, they were talking about bundling the browser with the... They basically made it free and bundled it with the OS. And at the time, since Netscape is one that I was really educated enough to find out about other browsers, they ended up getting market dominance both in OS and for the Internet. But thankfully, Microsoft contributed one great thing to the Internet. The XML-HTDP request object. First launched on IE 5.0 in 1999. It was very sparingly used. Everybody, they were still pushing ActiveX. It wasn't... And at the point of time, JavaScript was still considered exact words in toy language. Very silent, very silent times, per se. But in any case, they still kept moving on. And in 2001, as part of Google's usual April Foods, they launched Gmail, where they said they're giving you... One Gmail? Was it at the time? They said they're giving you one GB of Gmail space. And this was huge because I think the biggest at the time was Hotmail, which was something like 20 or 50 MB. And everybody thought it was an April Foods joke, but no, everybody started sharing the invites around. It wasn't that anybody could sign up. But they started... The reason I think of Gmail is because in a year or two after that, they started spiffing up the interface. And they leaned heavily on XML-HTDP request. From what I remember, Gmail was the first full-fledged AJAX application. In 2004? Gmail? Gmail was 2004. I think it was 2004. Okay, 2004. 2001 was the IQ, wasn't it? Yeah, I think it's around 2004. Sorry. I got this wrong. 2004 was the answer. Anyway, so quietly in another corner, Douglas Rockford was working as a CTO for this company called Stave Software. And he hated XML, and he was getting into functional programming and web, and he invented JSON, JavaScript logic notation. Everybody here knows what JSON is? Just to be clear, everybody here is an engineer, right? Okay, cool. So he invented JSON. This was formally proposed as a standard in 2005 or 2006. I'm not sure, but 2001, 2002 is when he actually invented it and it started taking power. In 2005, something happened that broke open their gates for Web 2.0. An article called, A New Approach to Web Applications was published by Jesse James Garrett on a site called List Apart. List Apart was a conglomerate of great writers' technology, this thing who were essentially trying to push the edge of technology and see what they could do with it. And he coined the term AJAX, asynchronous JavaScript and XML. How odd, but you think you can barely use XML anymore, but the word is stuck. That's fine, that's cool. The world collectively launched it. They're like, oh my God, and then they realized, yes, Gmail has been doing this for a year at the time. And it was neat because everybody then started figuring out tricks to do with it. That was the point that I believe JavaScript started maturing from a toilet in status to be able to do real work. Because right after that, we started seeing the birth of frameworks. This is about the same time that I actually joined the web development world. I actually started cutting my teeth on prototype JS. The deal with these frameworks in specific was the people who came up with them were coming from a background of Ruby and Java and so on and so forth. And they were bringing those object-oriented ideas into the browser and create classes and pirates and so on and so forth. And they're like, even though JavaScript doesn't support object-oriented programming and pirate inheritance and so on and so forth, natively, because of the decisions that Rendon and I took when he actually made it, it was powerful enough to emulate it. And people could build real stuff in paradigms that they were already comfortable with. But that being said, there was something else that happened at the time. It's a very good one. John Riesig put up a little article in August 2005. It was called Selectors in JavaScript, where he was talking about how to use CSS styles in Selectors to quickly grab elements of a page and do stuff with it. This is the world of jQuery, this little blog post. It's brilliant reading to see that how prescient he is about how the future is going to be in JavaScript. And while everybody else, for example, the prototype and script calculus and EXTJSN, they were all about going about this huge object hierarchy way, John Riesig stuck to this entire functional approach of creating chain methods and saying, you know, grab these elements, use them, and so on and so forth. jQuery till this date doesn't really expose anything for creating program structure. It does give a tiny plug-in interface, but this type of programming also has influenced the next seven years of JavaScript, which you'll see. In 2006, Joe Hewitt, one of the guys who used to work with Rendon and Ike in creating the World Wide Web in JavaScript, he got really sick of using alert, alerts to see what the values of the objects were. And Firefox had a little extension architecture at that point that had just come out with it for over a year or so, and he decided to create Firefox. Web developers deserve mature debugging environment. I remember messing with it, starting with 0.1, 0.3, and then it hit 1.0. I think in early 2007, not certain, but this was it. This was when console.log became the favorite method of logging objects into your browser. Again, everybody here does a console.log in JavaScript now. console.log, this is how, obviously, internally, by supply and opera and even I now accepts this format console.log, you can log objects. It's a whole idea, but it's not a console.log. But this is one of the learning points for mature development in JavaScript on the web. 2008, Douglas Crawford published a book, JavaScript with good parts. There's a humorous image somewhere where if you compare the sizes of the definitive side, guide the JavaScript, and the good parts are about a fifth of that. The idea is that JavaScript, because Rendon Ike created it in such a way, it has a whole lot of rough edges. So Douglas Crawford is like, you know, you can take a whole bunch of that, concentrate on this beautiful, shiny code, and those are the good parts. Use that, be safe. And again, this is setting the standard. This book and Douglas Crawford's many lecturers are now setting the standard for how JavaScript should be written. He also started encouraging that people start reading code more. JavaScript started having open source words in a slightly bigger way at that time. At the same point of time, we were still wakily battling with Internet Explorer. I think IE 7 or 8 had just about come out every time. And IE 7, I think, actually. And Mozilla was finally getting a report on saying that the standards-based approach to creating web pages is the way to go, which is all very well-informed. We were all on Firefox 2 at the time. That was pretty cool. In September 2008, something else happened. Google Chrome launched, and the era of speed began. The first time I launched Google Chrome, I remember it was on a project that we were working on for a client, and we were having huge performance issues. For the first time we opened it in Google Chrome, and it was smooth as silk. Google Chrome even came up with a little comic book. Google came up with a comic book written by Scott McClodden of my favorite graphic novel, explaining why it's a better browser. We also brought about this entire deal about having the interface being as minimal as possible. You don't want any toolbars or extra bookmark buttons and all that, try to keep it as clean as possible. Hence the word Chrome, which is to say minimal Chrome and the content and your page shine through. In 2009, a student by the name Ryan Dahl was talking to Tim Packer, and he came up with Node. Node.js. Fans of Node.js here again. Oh, sweet. This obviously became a little more popular in Europe. I have links to these presentations where he actually talks about the entire history of Node. I haven't looked at it, but... Ryan Dahl basically cracked, for a number of years, people have been trying to bring JavaScript into environments other than the browser. But Ryan Dahl cracked it because he made this tiny framework called WEE or something, and he put a JavaScript layer on top of it, and he brought asynchronous input out. We'll talk about it, but I want to mention this. Load was nice. In any case, this is my version of what I believe are the major events that have affected JavaScript to be the way they are today. Feel free to interrupt me, ask any questions at any point of time. I like it. I will have a conversation with you. No worries. But at its heart, I believe JavaScript has been getting to this place because it was a toy language. People might say the word toy derisively, but I think it makes more sense when you say that it's a hacker's language. We want to create a quick implementation of an algorithm instead of having to start up your Java VM or having to compile any code, just fire up your browser and you're good to go. And with stuff like Firebug and the dev console, it's a question of right-clicks and inspect elements, you have your console, you're good to go. You can write whatever code you want changed, anything you want. Which communally started building around this. And they started saying, well, JavaScript seems pretty cool. Where all can we use it? Instead of going on the history of that, let me pick out what I think are the big bits. You say JavaScript, all the things. And frankly, it is. The first is Rhino, Jaxer and Helma. Rhino is obviously JVM. Jaxer was this effort done by this company called Aptana. People have used the Aptana IDE. So, yeah, so Aptana, Jaxer was their version of server-side JavaScript where you could write script tags in the HTML and say run that server. It was a little clunky, but it was an effort. Helma was something that was running on the Chinese server. Node wiped away all of those. Some people still use Rhino for a number of reasons and very valid reasons. But Node is essentially considered the de facto non-prouser JavaScript implementation. Node, of course, runs on V8, which is what Google Chrome was built on and so on and so forth. Couple of other interesting places where JavaScript is used. In Adobe Creative Suite, this is one of my favorite uses. You can write little scripts to do whatever you want. You can do batch conversions, create little fractal images, generate JPGs, save them off, and so on and so forth. A very common example is taking an Illustrator file with multiple layers and creating a PDF. You can write a little script to do that and you're good to go. So, JavaScript runs in Creative Suite. I don't know exactly what interpreter they're using. But yeah, Unity 3D. You guys are iOS programmers, some of you. You obviously know what Unity 3D is. It's a little framework for building games and so on on the iOS platform or on the web platform or Android. So, Unity 3D also has JavaScript scripting in it. You can expose objects to it. I think they also have a version of Lua that you can use to do it. There you go. WebOS and Firefox OS, well, WebOS is very close to my heart. Firefox OS is what Palm was betting its future on just before it, you know, died. But the entire OS was essentially built on top of V8 and the WebKit engine. And you could write apps for the phone natively in JavaScript and XTML and CSS. That was pretty cool. Lessons from that have been learned. And now Firefox or the Mozilla Foundation is trying to make something called Firefox OS. So please Google this. This is fascinating work. They're basically saying, you know what, Android and iOS have their place as this Firefox OS. So this is where we want to concentrate our energy now. They're building another entire mobile OS from the Chromebook on the Ion Monkey JavaScript engine and so on. Then there are these things where you use JavaScript to build mobile apps. Accelerator uses JavaScript as a scripting engine and XML slash HTML like layout thing. It's pretty cool. Some people like it. Some people don't. PhoneGap is obviously now it's an Adobe project. Same thing, you build projects in HTML, CSS, JavaScript, wrap it up in the wrapper and deploy it to the App Store or the Google Play or so on and so forth. Or any OS that supports a WebView. The idea is that the security model, not just the security model, but the entire structure of the Web where they say, okay, you can't do cross domain requests and so on. You can run scripts within this domain and you have access to a DOM document object model and so on and so forth. Those are pretty good for writing applications. And as far as you make it look like, as far as you make it look like a native application on your phone, you're good to go. Awesome. That works. And this is the current age of hardware makers. R2-Evo is a little board that you can buy for about $100, $120. Or is it cheaper now? Not that much. And you can figure out a way to get either weird or more running on it, which is to say that you can use JavaScript to control the hardware. One of my friends, Rakesh Kway, from mobility, coming down for the j-scoot talk, which I'll talk about in a bit. He's building a robot with the Raspberry Pi, which is essentially a little board, a little x86 board. And he's promising to put lasers on it. And his API port is basically to say, robot got left and a callback after it's done. Robot got right. He has his entire JavaScript API port controlling the robot across places that he can program or control the remote control. It's pretty cool. Bigot mode is also another friendly hardware mode. So that's hardware and mobile and gaming and applications and servers. And I could go on with the list. This is not exactly clear, but it's fine. This is from the JavaScript article on Wikipedia. Have a look at it. This is just a section of all the things where they're being used as a scripting engine or as an application platform or as embedded engines and so on and so forth. JavaScript is everywhere. The idea is that since it is available on the web and everybody loves HTTP and there are open standards, culturally this has made JavaScript become the link of Franko for the web. The common language for the man on the web. So yeah, like I said, adding browsers. It's a lot easier now that we have jQuery and all in the mix, but if you're around around 2005-2006, you would have known what I think it was, writing JavaScript for browsers. Because there's JavaScript in the language, which has headaches in itself, but every browser gave a slightly different environment for it to exist in. For example, if you had to attach events to an object in IE, you would have to use attach events, whereas in Gecko and other standard-based browsers, you would use add events listener. What browser supported event bubbling, the other supported event propagation? It was a complete mess. This is gotten better. Actually now, major browser vendors like Apple, Microsoft, Ozilla, Opera, they all come under this. They all participate in the W3C, that's the worldwide web consortium. They participate in ECMA. ECMA originally started as something called the European Computer Manufacturers Association. They have since said that we are teaching that it's just one word, it's ECMA. So they all get together. The new features which are getting pumped into browsers are usually agreed on by everybody before the program. It becomes a standard for five years in the future, but this is the reason why you have Google CSS 3 transitions, where everybody's agreeing to a very similar spec and it can have prefixed and so on and so forth. So yeah, essentially the rules are now made by ECMA. It's very easy to see what's going on in ECMA. They are a completely open committee. I mean, you can just Google ECMA, find out what their mailing list is and sign on to it. You'll get flooded by emails, but they are awesome because the who's who of the internet are participating in this. You will find Douglas Stockford complaining that they're putting too much into the language. You'll find Wycat saying that this is not really like enough. There'll be people who say, why don't you bring this in from this language? There's a lot of pardoning, but it's great to see because it's a living standard. It's something that you can be a part of. It's something that you can actually contribute. Commentaries is another spec, another standard that's coming about specifically for making sure that you can use JavaScript in a standardized format across environments. So they're trying to figure out a new module system. JavaScript has lacked a module system for a while. They're trying to figure out a way to import and export modules, of course. They're trying to figure out a way to add features on to JavaScript. For example, scoped variables and so on. Hey, how much time do I have here? So I'll quickly step through this. Some of the features of JavaScript, some of the things that actually make it so cool. One is that it is very see-like when I'm talking about syntax. For example, you do a for loop and it looks exactly like a for loop in C. Of course, you'll have semi-colors, which end statements. You will have UI loops and so on. So that actually makes it easy because a whole lot of people, I know for me at least that first language was C. That's the language that they teach you in colleges. That's the language that they teach you when you go to NIL or something like that. So it's a very easy language to jump to as opposed to something like LISC, which requires some academic forethought before you even start doing something productive in it. That means stuff like dynamic objects and loose typing, where there aren't really any data types. Well, variables don't have to be stuck to a particular data type in JavaScript, unlike C or Objective C, where the moment you declare a variable is going to be a type long and it has to stay that way. You try to assign anything else to it. You will try to typecast it or it will move on through an exception or so on, depends on the language. But here it's easy. You can say x is equal to 1 to 3. In the next segment, you can say x is equal to a quick false term so what a lazy dog or it can become a boolean. And it's nice. Objects are runtime modifiable, not just at, you know, at compilation time where you can create your structures. You can actually create your structures and classes at runtime. It becomes incredibly powerful after a while. In fact, you can change the entire structure of the programs based on what you needed to do at the time. It's functional. This is actually a recent trip of mine in searching for the, while I was doing my software archaeology on JavaScript, I started looking into functional programming and trying to learn about it. I started reading structure and interpretation of computer programs. And it's interesting how you got a whole bunch of things. Ideas like how to create map, what map reduce actually means when you're actually writing code by yourself. How data flows through components and how you can be, make sure that it's safe and all that. Okay, so functional programming gives a lot. And like I said, because of Reddith, I, single person, affinity to functional programming, we can thank him that JavaScript is at the stage that it is today. In those two weeks of all nighters that he pulled, whatever ideas he could has allowed JavaScript to be so powerful to be able to do a whole bunch of things today. Fair enough, he got a whole bunch of things wrong. Everybody just, just rises. Makes fun of him for that. And it's, and it's interesting because he takes it on. He actually has the first web page that he ever made. I should have taken a screenshot of this, but the first web page that he made with JavaScript was a little clock timer. We were showing the time clicking over into 12.33. And the page is the worst geosities you've seen in your life. Geosities, tripod, web pages. Nobody had one in the 90s. I did. Okay. Sorry to see that has been made. But yeah, so functional programming. So stuff like closures that all come from functional programming. His decision to make variables have functional scope and not just no scope. You know this, right? You can declare a variable inside of, inside of for loop, for example. And you can access it outside that. That's because in JavaScript you don't have log scope. Like C, you have functional scope. The variable exists throughout the scope of the function. Then there's this idea of prototypes. It is a whole topic in itself. But the idea is that every function, since functions are first-class objects, it's a strange idea to get your idea around, if you're not good at it. But okay, let me just quickly go. So yeah, they have prototypes for emulating object-oriented programming and so on and so forth. And they also vary at it. Unlike Java and all where if you declare a function to be able to accept two arguments, you can't accept any more or any less in JavaScript and do whatever you want. It doesn't matter. You have access to all the arguments inside a function. They have a very neat array object syntax, the curly brackets and the square brackets. And it has support for regular expressions. This is enough. You can build anything you want with this, as long as you competent to an environment that gives you access to everything else, not gives you access to processes. Process gives you access to the log and so on and so forth. This is my last slide. I promise I'm going to quickly finish this off. So a couple of things that strike me as strange about JavaScript are that actually make it popular and decided to just put it on one slide. One is that it's not really taught anywhere. JavaScript isn't taught in any college. It isn't taught as part of the functional programming course or an object-oriented course. Especially, I can't think of a single place in India that does so. All of us have started without fail by googling how do I make a problem in? For now, you might find stackable nuances. Earlier, it used to be expert exchange. Expert exchange. And you would find W3 scoots. W3 scoots, I learned a whole lot from that. And HTML dog. So it's not really taught anywhere. The only way you can learn this is by reading as much as you can. The problem with that in the 2000s at least was that you would learn a whole lot of wrong things. But actually now because of GitHub and Twitter you know what bits to avoid and what bits to do well. So that's pretty good. That means that JavaScript is very easy to shoot yourself in the photo. I'm telling you, the deal with becoming good at JavaScript isn't learning what to do, it's to learn what not to do. You can very well create a big giant Java hierarchy of objects and a tree and so on and so forth so I think that it's just going to shoot you in the photo. There's no tailgolf optimization that can be functional programming. These are here. JavaScript now is being used as a target compilation language. People are creating new programming languages that compile to JavaScript. So I'm interested in examples of JavaScript. This is by Jeremy Ashkenos. It's nice, it's a very Python Ruby like syntax for JavaScript. I love it. A closure script, if you guys want to get a little deeper into functional programming. A closure is by Rich Kiki as is a closure script. This also compiles down to JavaScript so you can run it in your browser. GWT is Google Web Toolkit. You could write your code in Java and it would convert it to JavaScript. I've never done it, I'm not planning on it, but it's there. And JavaScript has finally brought the word asynchronous to the mainstream. If you have anything that's long running, unlike Ruby or so on where you say, I'm going to do a MySQL statement and the next slide I'm going to access the results of that. You're going to make all the input output or anything that takes programming as asynchronous. It's pretty cool. And then you pass a function call back into it and you get the data into it more. And write once, cuss everywhere. I've never, ever seen a JavaScript program that I didn't find something wrong with. I've, like, from my favorite programmers all the way down to the worst, including myself. I look at the code that I myself wrote two weeks ago and say, what an idiot you are, what a littering idiot you are for writing code like this revet. And it's just that kind of language, but it is powerful, supported in a whole bunch of environments and I highly recommend that you do. Well, that you jump into it, there's a ton of material out there and I'm open to questions now. Anything. JavaScript-related, Manipal-related, first girlfriend in M.J.C. Dart. Sorry, Google's Dart. Google's Dart? Oh, Dart. Dart is a language. Yeah, that's another, Google is trying to make a new language called Dart. And, see, I have major problems with Dart. They're trying to give an enterprise class language for people to work on. Google obviously packs on the web. Google wants you to use the web applications. They want you to use Chrome. They want you to use Chrome OS. They want to use Chrome apps. And it's fine, they're pushing all this back to the community. Nothing against them for that. But there are people somewhere in the depths of Google who have come up with this language called Dart, which gives a whole bunch of Java features to this language which compiles down to JavaScript. For example, interfaces and proxy objects and so on and so forth. Jury is still out on that. I wouldn't pass any judgment on it yet. But the standard thing is that if you try to make a single Hello World example in Dart it compiles down to something like 300K of code. So, you know, something wrong with them there. And there are other people who are particularly pushing plain like all Irish or people. So, right now until I get this thing clear on what they want Dart to be I wouldn't recommend to jumping into it too much. Interesting language. Don't get me wrong. Take a while. Do you want to hear about the drunken male substance use Steve Jobs? It's true. Really? No questions? Okay, awesome. That means I was excellent. You guys are not in interviews at all. No? I'd like to take a moment here to talk about JS School. JS School is happening in Bangalore on October 22nd. Of course. 19 and 20. No, 22nd is this one. Cardinal. Sorry. 20th of October. It's going to be great. For some reason these guys have put me in charge of the program committee which is the easiest job in the world because we have the best submissions coming in. We have Ryan Lalu from Adobe, PhoneGap, the inventor of PhoneGap actually coming down, giving a talk. We have Rakesh talking about robots. We love people talking about Photoshop scripting, JavaScript everywhere. The theme is JavaScript everywhere. It's really important because at this point of time I think front-line programmers or interface developers are the most valuable developers in this country. You can find a job if you just walk out onto the street. And we feel like, events like JS School is where we want to go up to the level of JavaScript developers in this country. We are concentrating only on the world's best stuff. And we are already at a place where we could pull off this conference tomorrow and it would be great. I'll be trying to speak there too, assuming that if I put up the proposal and it gets voted up. But it'll be awesome. Hasgeek has already done this event three times. Once in Chennai, once in Pune and once in Bangalore last year again. This year it promises to be way bigger and you are all invited. Oh, yes. People recently had a major issue with their iOS app, which was essentially a webview wrapped in a container for iOS. And a problem with JavaScript and web containers for making apps is that you're never going to get the kind of performance that you get from native code that's running closer to the middle. That being said a huge a huge percentage of applications that are actually being made for the iOS store that keeps games to the side are relatively simple to actually make and look very performant and very clean on your phone. My absolute favorite example is Instagram. Not a lot of people get this but most of the parts of Instagram are written in the next day of CSS in JavaScript. If Instagram can do it I don't see why anybody else can. The trick isn't to figure out how to make it as flashy as possible. The trick as with any art or with any technology is to figure out what pieces you can use and what pieces you don't have to use to get the best possible user experience for a user. If you can get to that and at that point of time for example if you're making a game then you know that JavaScript on the mobile phone is probably the wrong choice right now. But if it's something that shows you a list of photos or I don't know location based like Fort Square or something go for it. Right JavaScript if it cuts the amount of time it takes you to get to market it should absolutely do it if you're already comfortable with it. That being said I've seen expert IOS programmers bang out on the app in like a weekend and they're big world class so yeah that's that's my opinion. You shouldn't just walk into it saying that okay we are going to since I've worked at HTML5 is the best thing and it's going to be super fast. Three engineers you guys don't know anything about it learn about it and then the week I want on the app. See that's never going to work. It's a question of what resources you have and whether you understand the medium well enough to know what it can and what it cannot do. I'll count to three for the last question. Two. One. Thank you. Thanks.