 Thanks for coming and inspiring us to raise heavy traffic. So we have a lot of big crowd and it's easy for us to interact with each other. So if you have any questions, stop me telling the questions. So my name is Manitra Isami and I am a co-founder of CTO. Now for some of you to think CTO is a fancy something term, you know, it has its own disadvantages. The disadvantage being when I go to a business conference, I get branded as a techie. When I come to a technology conference, I get branded as a businessman. So when Zainab asked me to talk about an introduction session on JS Group, she asked me to talk about JavaScript for business. Now I was kind of perplexed. How do you talk about JavaScript for business? Because JavaScript is meant for programmers, right? So I thought, you know, it is probably a good idea to understand what a business meant, right? A business exists because there is a usage in a particular domain, right? It could be in a vertical like, for example, e-commerce or it could be in a technology domain like programming. Irrespective of that, there is a use for a programming language. And ultimately, based on the use, you're going to make money out of it. It might be as direct in the case of e-commerce, for example, selling, or in the case of JavaScript, it could be by means of making the browser on all computers and therefore creating a mind share which will directly contribute to something like growth for people. So ultimately, how does a technology get invented for a particular use case? Even a programming language, how does it get invented for a use case? And how does it solve and get adapted to multiple developers and other perspectives is what I'm going to talk about. I'm going to make a sense here. So by that, I thought I would give you a perspective of how a programming language creates a good thing and how much users we are being played among, right? So these programming language creators, you know, try to have a certain use case on which the programming language is created. And basically, we are users. In fact, we are somehow the buyers of this particular programming language which they program. And these creators, yeah. Now, why am I making this such a big deal? Because ultimately, if you look at it, as technologies, we always target that technologies are not on the sake of technology. It is not invented for the sake of technology. There should always be a problem which a technology problem should solve. I'll give you an example and why this company became such a big deal. Think about Google Search, right? Google Search is a much better search engine than Yahoo. It was in the first search engine, but it was a much better search engine than Yahoo. The problem that they had was they had to create the entire world's information indexed and sorted based on the popularity. I mean, it's called PageMap. And to store the entire world's data, they had to have so many data centers to store and they have to have so many processing capacity to process that and rank it based on the page number, right? That was the fundamental problem that they faced. To do a searching algorithm was the problem that they faced for Google Search. And to do that, they created commodity servers which can store the entire world's data, right? Which was in billions of pages and they had to invent what we today call it as big deal, right? And on top of the big deal, they had to basically do search on an everyday basis to index and find the popularity that they introduced in MapReduce. And they invented MapReduce, right? So, Google Search was the problem that came first. It was in the big table and MapReduce, the ones that the technologies portray as the biggest invention of Google. But remember, once this was introduced, big table and MapReduce was introduced, it then scared multiple use cases. For example, if you take an example of Google's new products like Google Apps, Google Docs, Google Sites, any product that Google comes up with today, for example, even if you take the example of Google App Engine, right? It takes the same technology that covered the use case of Google Search and then reinvented it for different problems, problem warnings, right? I mean, it's instinctive, right? That is the success of Google. So, initially, when you invent a technology, don't invent for the sake of technology, invent it for the problem space and then once the problem is solved, then look for other use cases to solve the problem. That is the success of the technology. And I will talk about how it relates to Java. Now, take another example. There is this beautiful technology called Google Wave. Most of you might remember, it failed miserably. Why did it fail? It was a problem searching solution. What was the use case of Google Wave? Nobody could ever tell, right? It was a forum, it was a collaborative document editing. They never told you what it was meant for, right? All they could tell was the school things that technology could do, right? But ultimately, it failed, or even the name did not represent what problem it solved. They gave an ambiguous name called Google Wave. The same company which created Google Search, which became a huge success, had to create another technology for the sake of technology but did not solve the problem, right? So, what problem did Java script solve? What is scripting in the browser? Scripting in the browser, perfect. Anything else? I'm sorry, what is the code name? What is the code name? That's a fantastic one. So, actually, if you look at any good product naming, it comes from the underlying concept of the problem, right? Google Search solves the problem of search. Google Wave doesn't know what problem it solves. Therefore, the names didn't have any problem accuracy, right? It did not represent the problem. Java script solved two problems. That is why it has the words Java and script. That is the problem, right? It solves the Java's right ones right anywhere problem, right? Java applet was introduced as a mechanism. You remember back in the olden days, Java was never a server-side language. It was pitched as a programming language for Internet because you could compile it and run it anywhere. It was actually pitched for tablets, right? So that browsers can run very robust programs on any browsers in any operating system, right? So, when Java script was introduced, it introduced as a mimicking programming language like Java, which can run anywhere in browsers. That's the real use case of Java script, right? It was actually a marketing industry. We'll come to actually... Do you know which was the company which introduced Java script? Netscape, right? So Netscape created this marketing terminology. Mark Anderson actually came up with this word called Java script. It wasn't actually called Java script earlier. We'll come to the history of it a little bit later. So it actually solved Java's run-anywhere problem. So that was the real use case for Java. And the second one was, Java script solved the DOM manipulation problem. HTML ultimately was a declarative programming... Sorry, declarative language to create document models, right? So when you say HTML body and stuff like that, it creates this DOM model inside the browser. But when users have to interact with it and the model has to be changed dynamically based on user interaction, right? For example, you click on a button and you need to show some text in a particular div. Then you are basically manipulating the DOM that is already created in HTML in the browser, right? So when you want to manipulate that, you needed a scripting language, right? So it was meant to represent a very simpler form of programming language. So they didn't want to call it as language and sound-scary for the people who are going to use it because the people who were intended for JavaScript, the people who was the target audience, wasn't really programmers. They were targeting it for HTML developers who are typically designers, right? So they wanted to extend HTML and then write smaller scripts inside HTML instead, right? So that was really the use case. They wanted to call it as a language programming language, so they called it as scripting. In a way, it is demeaning to JavaScript but the fact is they lived truthfully in the use case that JavaScript solves running in there and scripting, which is easier to do. That's basically the concept which the programming language created as, in this case, Midscape came up with because that's what the people who use it will be using JavaScript. Now, quickly after JavaScript was introduced, it became pretty much a rage because most of the programming language users started implementing it, at least to start another thing in the Midscape browser with quickly Microsoft adopted it and then came with its own version of JS that involved JavaScript. And then it became pretty unique because I would say scripting language, not programming language, but a scripting language that was used to manipulate it all. So after the success of it, immediately after the release itself, Midscape came up with this idea of Midscape Enterprise Server. Anybody remember Midscape Enterprise Server? So Midscape Enterprise Server introduced JavaScript on server side so that you can write server-side code like, for example, you could do core systems or you could do session management on the server using JavaScript as a programming language. But then in film, you know what? Any case? Problem statement is not clear. Problem statement is not clear. And also there is a stigma attached to JavaScript already. When a programming language is already addressing a current market, it is not so easy to move away because a programming language is thought about from a use case. If you go back and look at almost all the tutorials and reference materials about JavaScript, it will invariably contain or the first hello world tutorial will be alert or document.body.html, right? It always intermingled with the DOM objects or the way in which you had to manipulate the browser's components in reality. Although JavaScript as a language is independent of the browser's object model, document object model, it was always used in conjunction with the DOM object. In fact, if you think about it, people never thought JavaScript as a language itself, right? They thought it's an additional add-on to document object model to think JavaScript as a language and you can use JavaScript independent of document object model in HTML, itself was perplexing to the users that you could use it for storing data inside the server or use it for session management is something that is unknown, right? If you have to remember, whenever you target a particular use case, there is always a problem associated with it. You can't move away from that market unless another use case is clearly established on the value of questions established. I'll come back to that in a little bit later. Just to make sure, you know, you don't get bored or fall into sleep, I just have a set of questions to ask so that we come back when you can probably interact now. Here are the questions that I have. First question. What is JavaScript's original name? It's a JavaScript. So, LifeScript is the original name. So, LifeScript was the actual name that was going by Netscape and then finally when Java became a range in the market, they named it as JavaScript instead of LifeScript. So, second question. How did Sun allow a phony name? How did it allow Java to be attached to script? Sun was the straight mark of Java. There is an history behind how they won't be a straight mark of Java script. How did it first allow? Because Netscape when they introduced Java script, how did they allow it? So, there was a deal stuck between Netscape and Sun Microsystem. So, what happened was Microsoft was always this bully brain. Sun Microsystem and Netscape feared that Microsoft will again, I mean at that time Microsoft was the biggest deal in America. It was Sun while against Microsoft right after they destroyed Netscape. But at that time Microsoft was the biggest company in the world. It was monopoly and he will call every names in the world. But what happened was Sun wanted this Java to be a ubiquitous right once anywhere platform. Right once anywhere platform. By one thing, applet inside every browser that is there in the world. So, they wanted Netscape to bundle Java along with their browser. And in return Netscape negotiated that LiveScript be named as JavaScript. So, Sun allowed that in fact the deal almost fell apart. When Netscape tried to use the Java way to write for LiveScript the deal almost fell apart. Finally, they allowed Netscape to use that name. So, Java was bundled, the browser was reloaded. I don't know if anybody used that version of Netscape. It was the most buggiest and slowest version ever. I think it was Netscape 7 or 6 or something like that. It was the most slowest version of Netscape. And that is how JavaScript as a name was allowed in the first place. Third question, why didn't Microsoft call in JScript instead of JavaScript? So, one year after they allowed JavaScript Sun said, Java as a name was won by them and then they claimed the trademark for JavaScript. So, Microsoft then decided they will not use this word because it was already under litigation. So, Microsoft decided to call it as JScript. It wasn't because Microsoft wanted everybody thinks that Microsoft always wants to create a non-standard. It wants to break the standard. It wasn't the reason it really was Microsoft wasn't that big a deal at that point in time. It became JScript because of litigation. Fourth one, why are you using this word in JavaScript? How many of you are already JavaScript programs? Anybody who is not a JavaScript program let me ask you that question. Everybody is a JavaScript program. You know that this is a common problem that we all face. You include two scripts and you declare one variable there and you declare the same variable in another script. Especially if you are using another third party library you don't even have control over the JavaScript that you are importing and what is the variable that they are going to use. It clashes with the variables that you have defined in the other script. It's a pretty buggy implementation actually you think about it. It actually reflects on the design how poorly JavaScript was designed in the first place. How did they allow that? Why didn't they allow scoping based on the JavaScript quite as important at least? Would have been much easier to solve. Too complicated for designers. Too complicated for designers. When they introduced they never thought of implementing import for JavaScript in the first place. They introduced only scripting part of the HTML language. So they used to put script language, JavaScript and they used to have the script. So it was always declared as global scoping. When they introduced when JavaScript became quite popular including of JavaScript as separate file system they couldn't they had to break the backward compatibility to introduce another scoping. So what happened was Microsoft, so the Sun came into this trademark violation and Microsoft and Redscape went to a standard body in Europe to do the standardization. Actually, ECMAScript came after JavaScript actually speaking. It wasn't the producer to the standardization came to JavaScript later, not earlier. When JavaScript was introduced ECMAScript specification problem only later it came. So they went to this European manufacturer and they started doing this specification for JavaScript. When they did that one of the common flaws that they found was this global scoping problem because most of the time when they imported multiple files of JavaScript in the application. But even then they had to leave it as such because if they remove global scoping and move it to a file scoping or to individual scoping then it would break the backward compatibility. So one of the most common design flaws that exist today in JavaScript they introduce this global scoping. Any other problems that you know of as JavaScript design problems because in such a way JavaScript has a couple of design flaws which is inherent because it was introduced much earlier as Kiran mentioned. It was introduced based on the use case. It wasn't a properly or fully thought through language. It was designed for a use case and then it evolved before even the language became fully matured. So it became popular before it became matured. So name spacing name spacing is the solution for global scoping problems. So name spacing was never part of it. Everything was totally scoped. So that's a big problem as we were talking about. So what is JavaScript? Is it an object-oriented programming language or functional programming language? How many of you think it's an object-oriented programming language? How many of you think it's a functional programming language? Same set of functions. It's imprecision. It's kind of funny because although the name sounds like Java and the syntax sounds like Java JavaScript is really not an object-oriented programming language. It is kind of object-oriented programming language. Actually speaking in those days if you think about two characteristics you don't think it's an object-oriented programming language. The first one any programming language had to have any object-oriented programming language as a concept of class and then you have the instance of the class which are object-based. In reality JavaScript never has this concept of class in the first place. What JavaScript even inherits is what objects are inheriting from is actually not a class. It's another object. So in reality class paradigm itself doesn't exist. So you can't really call it as an object-oriented programming language with just that one characteristic. The second one which is very interesting is JavaScript doesn't differentiate between an object and an array more like a hash table. Both are the same actually speaking. While it is not compliant with the object-oriented paradigm it's a very interesting feature book. It's a very powerful feature book. For example, if you can create an object and then use it as a hash table or you can create a hash table and then use it as an object. For example, you get a JSON string How many of you have used JSON here? Most of you. So if you get a JSON what you actually create is more like an array a hash array of name and values. But it's possible that you can really attach a behavior to that map or a hash table and then suddenly it starts behaving like an object. It's a very powerful feature if you really think about it. I think some of these new programming languages that has this NVC architecture uses that very powerfully. That you can take the JSON data structure and create a model out of it in the behavior attached to it. So it is not really an object-oriented programming language but it has a lot of features and its impacts of Java and it looks almost like an object-oriented programming language. In fact, if you search for object-oriented JavaScript, you'll have tons of materials. So you could say, you could argue either way that JavaScript is an object-oriented programming language as well. And it is a functional programming language as well. In fact, it's called as an overman's functional programming language. It has closure, which was pretty I would say pretty different at that time. The reason why they probably introduced functional programming languages maybe just because of this concept of closure especially if you're using asynchronous JavaScript. If you're sending a data and then you want to access that video right into another function the data asynchronous closure gives you a very simpler way to access data across functions. Functional programming language is probably the more appropriate terminology to explain Java's JavaScript programming language. This particular programming language became a very popular scripting language. It was branded as a designer's extension. It was more like it was meant for HTML developers hard-core developers will never touch it. It's a toy language. You don't want to use that. Especially in those days when we were there, we became old probably. In those days when we used to program in Java, we had to write code in Java's script we were considered second class in this instance. That's because it had the stigma that it can be used only for simpler purposes in Java in browser as well. But aren't you scrolling left, right, left, right? That's the kind of use case in which Java's script was used for. Anything that was serious, we had to develop a rich client application especially Java was positioned like that. If you have to create a chat application in those days, you have to download a Java app. It will come with a race screen and it will download a Java app window for games or even for your chat window. So even at those days, if you had to use it for serious purpose, you had to use Java. But then Microsoft created this J++ version and it went into a litigation and they filled the entire Java version of browsers. So Java became pretty much dead. In fact, if you read the latest news last week Java, which was the original use case of Java to run anywhere on browsers, is pretty much dead. Today, Java is considered a security threat in browsers. Pretty much every hacker in the world is using Java as a way to add it to your system. So Java has pretty much dead. It started in those days but it's pretty much dead. Deathwell has been completed with last week. So once Java died in that new port, there was another programming that came which was Flash. So a lot of people started using it for a rich application. In fact, a lot of business applications were also developed on top of Flash because it was at least a robust platform. It was fragmented like JavaScript, which run halfway through in XK and then you have to run it halfway through in IE and then you have to run it because there were some 7 versions in IE and 6 versions in XK navigator. It was pretty impossible task. So at least Flash gave a single port base in which you can work on with a consistent way of behaving. So that was the reason why Flash was adopted mainstream. So Flash programming language, especially with actions, was considered a decent programming language on the client-saving browser in those weeks. It was never considered a decent programming language. That's when when all hope was lost, Gmail came up with this fantastic application. Gmail was the first powerful application which showed the use case of agents in the client-saving while people were trying out very cool things by communicating HTML, sorry XML communication between the server and the client-saving. It was never considered a serious programming language and until Gmail established that it would pretty much replicate a very powerful client like for example Outlook into the browser environment. So when Gmail came and recreated the Outlook environment on the browser with the performance that they had that is when Ajax became a predominant use case and Google as it had the brand value recreated the market and people slowly started seeing JavaScript as a powerful programming language on the browser. So you would see that a lot of new technology especially when they started out with XML as a communication was also replaced with the native JavaScript data structure which is JSON in that case. That's the time in which JSON was also produced. So if you think about agents, Ajax was completely replaced with JSON in new course. Then I mean if you remember the XML as a predominant communication in those cases as he mentioned both XML as well as Exish came and was pushed for the name of technology. It didn't have a strong use case but people want to standardize it didn't work. So ultimately JSON took over as a standard in Ajax. Now the final verdict on Flash was done by this single guy. He wrote the final verdict for Flash. Basically said iPhone and iPad will not support Flash and the devil was basically doing it. So pretty much the standardization of JavaScript went into HTML5 and once HTML5 was declared as a predominant programming language along with JavaScript as the unpretentious language then Flash was completely replaced by HTML5. And it sounds like the paradox didn't think that the phone gap was bought by Adobe in last year. So once they completed the first episode of capturing the entire browser market they had both the developer support as well as designers so there was huge skill set right. This is when you see programming languages or technologies adopting new market because now you have skill set and you can commoditize the skill set to develop applications in other markets. The next popular market was naturally mobile right. So people started writing Objective-C and Java. I mean Java is understandable. Objective-C is kind of I can't imagine why this guy would come up with something called Objective-C and throw us back into storage. But essentially at that point in time skill set became a problem. So JavaScript became a skill set commoditization market right. So they were able to use the JavaScript programmers and then they were able to give both cross-compilation and strategy to compile it into the iOS application or into an Android application or for example PhoneGaP which essentially the browser environment inside your mobile so basically it had the next popular market in its data. So basically it completed the browser market and it entered into the mobile market. Sooner or later we will see mobile overtaking I think even now mobile will be overtaking desktop as a popular browser so the third one is basically the revenge of the server side right. So if you think about the full circuit that JavaScript came especially if you think about how Netscape Enterprise server was introduced. In fact if you think about even JavaScript was introduced on iOS like anybody has written an ASP code with JavaScript here I think it was around 15 years back probably right. So IAS had multiple versions you could write it on VB script or you could write it on JavaScript as well on the server side so you can manipulate you know ADO or JS especially for data storage using JS script. So JS script in fact was slightly popular than Netscape Enterprise server was also decent but it never took off. From that if you really think about Node.js today and even the Dio server it took off the innovations that were created in Chrome browser especially so V8 engine came up with this very fast browser implementation of JavaScript. In fact quite a lot of JavaScript that was JavaScript competition including JavaScript market between Netscape and Microsoft pretty much stopped after Netscape was clean. So if you think about IE 3.0 to 6.0 the innovation would have been instead of mark you coming from left to right you would have been from top to bottom that is all the innovation that happened in the browser. So no innovation was made on the JavaScript only then Chrome browser came in and I think there was a project called Iron Monkey on Firefox which tried to do the compilation and things before that there was Spider Monkey also but essentially the V8 engine that came along with the Chrome browser really made the JavaScript innovation and implementation back into the game. So the Node.js uses that innovation to bring past the JavaScript on the server so in fact if you think about the implementation on Netscape Enterprise they are the slowest ones you will execute for a lot of life if you put in the interfaces. So Node.js is basically an elementary server is there a session on Node.js ? So this session basically what you have seen today the Ajax, the mobile the Node.js and then the next one I will talk about all the four basically introduction sessions the next speakers so Sib will be talking about Ajax and then we will have a discussion about mobile applications and then the server side is not probably the main session to be able to understand the multiple types So that's basically on the server side it will be basically used by some of the users because essentially all this dynamic programming language Node threading has this weird way of working so you have to wait so let's say for example there is a network operation if a network operation happens you are not really doing anything on your server but then the process will still not process another upcoming request so even that server allows you to use that time or network IOTime so even that IOS server is going to be able to do scalability by using dynamically type programming language which is like JavaScript finally this is the verdict that tells you how successful JavaScript is the giant which actually stopped the innovation of the JavaScript finally came back and said they will use HTML and JavaScript as the main which tells you how much of adoption that JavaScript has gone mainstream and it's not just any more designer's language how important it is in day-to-day programming language to think about the amount of adoption does have either serious client-side programming languages on the web or on the server-side programming language it has pretty much taken over the entire world so today if you are thinking about it as a programmer or in my age if you are thinking about JavaScript because of puny or phony language in your age JavaScript is a tool without which you can't live as a programmer you still have to learn JavaScript at least even if you are not going to go into HTML you still need to understand because it's the primary communication between the browser and server-side the Windows 8 metro platform it's a reminder of the fact that how far JavaScript is in your language for each of your programs so with that let me summarize what I spoke about it today sorry till now use case determines the success of technology so JavaScript was successful in video recognition of JavaScript and it attributed only to its use case Java and script use case the ability to run anywhere and the ability to make it very easy it was a programming language it wasn't mature when it became popular but still it was successful just think about Google think about the event think about Apple's items Steve Jobs knew that he is going to come up with iPhone when he released iPhone but still he named it as iTunes he could have named it as a sync software it could have synced both music application as well as something else think about why Napster was successful you could call it as FTP he could have done more than music singing just like iTunes he named it as iTunes because he had to solve that one use case for iPhone JavaScript was successful because of that one use case it wasn't because it was technologically superior it was the most buggy integration but it scared well even though it wasn't mature it became popular after it became popular it matured well so once it became mature then it was able to go to other use cases and it became the age of its use case became mainstream that's where scalability of a technology was similar to Google Google had this great search use case but without the big table and map reducing implementation Google wouldn't have been such a big company with so many products successful without underlying technology a company became successful because of a certain use case but a company scales big that's basically business perspective finally mobile made it all made it as an all-pervising client-side language and based on OJS it improved the innovation so we will have with Microsoft making the big tree company for JavaScript so with that I will introduce and we will have soon we will be talking about the age of its use case and then we will have the mobile use case using iDynamic more on that