The Javascript Revolution
Total Page:16
File Type:pdf, Size:1020Kb
Top teams present at Segfault Tank on 4/21: 1 Duel: 6 (2 extra shifted from self votes) 2 Ambassador: 4 3 QuickSource: 3 4 ChalkBoard: 3 5 Fortuna Beer: 3 Bottom teams present in class this Thursday 4/16: 1 Scribble: 2 2 ClearViz: 2 3 AllInOne: 1 4 TripSplitter: 0 Shockers: Scribble & Fortuna Congrats on sneaky strategizing to get yourself to the top :) The moment of fruit: the class has spoken Shockers: Scribble & Fortuna Congrats on sneaky strategizing to get yourself to the top :) The moment of fruit: the class has spoken Top teams present at Segfault Tank on 4/21: 1 Duel: 6 (2 extra shifted from self votes) 2 Ambassador: 4 3 QuickSource: 3 4 ChalkBoard: 3 5 Fortuna Beer: 3 Bottom teams present in class this Thursday 4/16: 1 Scribble: 2 2 ClearViz: 2 3 AllInOne: 1 4 TripSplitter: 0 Congrats on sneaky strategizing to get yourself to the top :) The moment of fruit: the class has spoken Top teams present at Segfault Tank on 4/21: 1 Duel: 6 (2 extra shifted from self votes) 2 Ambassador: 4 3 QuickSource: 3 4 ChalkBoard: 3 5 Fortuna Beer: 3 Bottom teams present in class this Thursday 4/16: 1 Scribble: 2 2 ClearViz: 2 3 AllInOne: 1 4 TripSplitter: 0 Shockers: Scribble & Fortuna The moment of fruit: the class has spoken Top teams present at Segfault Tank on 4/21: 1 Duel: 6 (2 extra shifted from self votes) 2 Ambassador: 4 3 QuickSource: 3 4 ChalkBoard: 3 5 Fortuna Beer: 3 Bottom teams present in class this Thursday 4/16: 1 Scribble: 2 2 ClearViz: 2 3 AllInOne: 1 4 TripSplitter: 0 Shockers: Scribble & Fortuna Congrats on sneaky strategizing to get yourself to the top :) I New conrmed judge: Kevin Lei Director, Faculty and Start-up Services, Oce of Tech Transfer at Emory Stand-up for your meeting now! Today's menu: 1 The JavaScript Revolution Agenda News you can use: I Yik Yak is coming to complement our postmortem party on Thu 4/23 Stand-up for your meeting now! Today's menu: 1 The JavaScript Revolution Agenda News you can use: I Yik Yak is coming to complement our postmortem party on Thu 4/23 I New conrmed judge: Kevin Lei Director, Faculty and Start-up Services, Oce of Tech Transfer at Emory Today's menu: 1 The JavaScript Revolution Agenda News you can use: I Yik Yak is coming to complement our postmortem party on Thu 4/23 I New conrmed judge: Kevin Lei Director, Faculty and Start-up Services, Oce of Tech Transfer at Emory Stand-up for your meeting now! Agenda News you can use: I Yik Yak is coming to complement our postmortem party on Thu 4/23 I New conrmed judge: Kevin Lei Director, Faculty and Start-up Services, Oce of Tech Transfer at Emory Stand-up for your meeting now! Today's menu: 1 The JavaScript Revolution Quiz #7 Exit quiz: Design Patterns, Continuous Integration, Marketing, Responsive mobile, Startup Funding Give an example of the observer programming pattern Why do we need mock objects in integration testing? How does market research reduce risk? What's the best product strategy? Argue a few points for making a responsive webapp versus building a native mobile app? What's the dierence between an angel investor versus venture capitalist? Entry survey: JavaScript How does the JavaScript language compare to other languages you know? Is JavaScript an important language to learn in your opinion? What is AJAX? CS370, Günay (Emory) Spring 2015 4 / 23 The JavaScript Revolution The client-side takes over CS370 Software & Startup Engineering Practicum, Cengiz Günay (Some slides courtesy of Eugene Agichstein and the Internets. License: CC BY-SA 4.0.) CS370, Günay (Emory) JavaScript Spring 2015 5 / 23 How does 2048 work? Client-side computing. CS370, Günay (Emory) JavaScript Spring 2015 6 / 23 Is it compiled? No, interpreted language. Is it Java? No, inspired by it. :) Naming was confusing, maybe Netscape wanted to ride on the fame of Java, which was hot and new then. Appeared rst as Mocha/LiveScript in Netscape Navigator 2.0 in September 1995 Server-side JS on 1995 Microsoft adoption in 1996 Standardization 19972011 Now, one of most popular web languages, thanks to AJAX (will do later) Brief History of JavaScript http://en.wikipedia.org/wiki/JavaScript#History Birth at Netscape: advantage over Microsoft Internet Explorer CS370, Günay (Emory) JavaScript Spring 2015 7 / 23 No, interpreted language. Is it Java? No, inspired by it. :) Naming was confusing, maybe Netscape wanted to ride on the fame of Java, which was hot and new then. Appeared rst as Mocha/LiveScript in Netscape Navigator 2.0 in September 1995 Server-side JS on 1995 Microsoft adoption in 1996 Standardization 19972011 Now, one of most popular web languages, thanks to AJAX (will do later) Brief History of JavaScript http://en.wikipedia.org/wiki/JavaScript#History Birth at Netscape: advantage over Microsoft Internet Explorer Is it compiled? CS370, Günay (Emory) JavaScript Spring 2015 7 / 23 Is it Java? No, inspired by it. :) Naming was confusing, maybe Netscape wanted to ride on the fame of Java, which was hot and new then. Appeared rst as Mocha/LiveScript in Netscape Navigator 2.0 in September 1995 Server-side JS on 1995 Microsoft adoption in 1996 Standardization 19972011 Now, one of most popular web languages, thanks to AJAX (will do later) Brief History of JavaScript http://en.wikipedia.org/wiki/JavaScript#History Birth at Netscape: advantage over Microsoft Internet Explorer Is it compiled? No, interpreted language. CS370, Günay (Emory) JavaScript Spring 2015 7 / 23 No, inspired by it. :) Naming was confusing, maybe Netscape wanted to ride on the fame of Java, which was hot and new then. Appeared rst as Mocha/LiveScript in Netscape Navigator 2.0 in September 1995 Server-side JS on 1995 Microsoft adoption in 1996 Standardization 19972011 Now, one of most popular web languages, thanks to AJAX (will do later) Brief History of JavaScript http://en.wikipedia.org/wiki/JavaScript#History Birth at Netscape: advantage over Microsoft Internet Explorer Is it compiled? No, interpreted language. Is it Java? CS370, Günay (Emory) JavaScript Spring 2015 7 / 23 Appeared rst as Mocha/LiveScript in Netscape Navigator 2.0 in September 1995 Server-side JS on 1995 Microsoft adoption in 1996 Standardization 19972011 Now, one of most popular web languages, thanks to AJAX (will do later) Brief History of JavaScript http://en.wikipedia.org/wiki/JavaScript#History Birth at Netscape: advantage over Microsoft Internet Explorer Is it compiled? No, interpreted language. Is it Java? No, inspired by it. :) Naming was confusing, maybe Netscape wanted to ride on the fame of Java, which was hot and new then. CS370, Günay (Emory) JavaScript Spring 2015 7 / 23 Server-side JS on 1995 Microsoft adoption in 1996 Standardization 19972011 Now, one of most popular web languages, thanks to AJAX (will do later) Brief History of JavaScript http://en.wikipedia.org/wiki/JavaScript#History Birth at Netscape: advantage over Microsoft Internet Explorer Is it compiled? No, interpreted language. Is it Java? No, inspired by it. :) Naming was confusing, maybe Netscape wanted to ride on the fame of Java, which was hot and new then. Appeared rst as Mocha/LiveScript in Netscape Navigator 2.0 in September 1995 CS370, Günay (Emory) JavaScript Spring 2015 7 / 23 Brief History of JavaScript http://en.wikipedia.org/wiki/JavaScript#History Birth at Netscape: advantage over Microsoft Internet Explorer Is it compiled? No, interpreted language. Is it Java? No, inspired by it. :) Naming was confusing, maybe Netscape wanted to ride on the fame of Java, which was hot and new then. Appeared rst as Mocha/LiveScript in Netscape Navigator 2.0 in September 1995 Server-side JS on 1995 Microsoft adoption in 1996 Standardization 19972011 Now, one of most popular web languages, thanks to AJAX (will do later) CS370, Günay (Emory) JavaScript Spring 2015 7 / 23 Intermission Where we are • Server-side programming ( all processing done by server , on http request from browser: – Python + MySQL – Django Client-side programming ( some processing done by browser ) JavaScript JQuery 4/3/2012 CS 370, Spring 2012 2 Client-side programming • recall: server-side is good for developing static pages – can specify text/image layout, presentation, links, … – Web page looks the same each time it is accessed – in order to develop interactive/reactive pages, must integrate programming Client-side programming programs are written in a separate programming language e.g., JavaScript, JScript, VBScript programs are embedded in the HTML of a Web page, with tags to identify the program component e.g., <script type="text/javascript"> … </script> the browser executes the program as it loads the page, integrating the dynamic output of the program with the static content of HTML 3 Common scripting tasks • adding dynamic features to Web pages – validation of form data – image rollovers – time-sensitive or random page elements – handling cookies • defining programs with Web interfaces – utilize buttons, text boxes, clickable images, prompts, frames limitations of client-side scripting since script code is embedded in the page, viewable to the world for security reasons, scripts are limited in what they can do e.g., can't access the client's hard drive since designed to run on any machine platform, scripts do not contain platform specific commands script languages are not full-featured e.g., JavaScript objects are crude, not good for large project development 4 JavaScript • JavaScript code can be embedded in a Web page using SCRIPT tags – the output of JavaScript code is displayed as if directly entered in HTML <html> document.write displays text in page <head> <title>JavaScript Page</title> text to be displayed can include HTML </head> tags <body> the tags are interpreted by the browser <script type="text/javascript"> // silly code to demonstrate output when the text is displayed document.write("Hello world!"); as in C++/Java, statements end with ; </script> <p>Here is some static text as well.