- introduce the course
- go over the lesson plan
- 1 minute mixer
- everyone gets a number (1-4)
- go to a corner of the room, can only have one person of each number in each group
- question comes up on the board and lower/higher numbered person asks question for 30 seconds goes around the room and answers the question about that person for everyone.
- subcontext of this question is, why learn JavaScript?
- there are a lot of languages out there, why learn this one?
- in part a question you have to answer - as in, why are you in this class? why do you want to learn JavaScript?
- lucky for us, there are a lot of reasons to learn JavaScript
- Complex software-as-a-service applications? JavaScript.
- Virtual Reality? JavaScript.
- Computer Vision? JavaScript.
- Animations? JavaScript.
- JS is - you could say - ubiquitous
- Is that reason enough to learn it?
- Why is JS ubiquitous?
- Any application that can be written in JavaScript, will eventually be written in JavaScript
- Why is it that more and more of this field is being consolidated into a single language?
- Rather than choose the most powerful solution to a problem, pick the least powerful solution.
- Who is Sir Tim Berners-Lee and what the heck is he talking about?
- This is getting really academic, and this is not an academic course
- we're talking about programming, not philosophy
- Lets talk about something else entirely for a moment and that's driving.
- how many of you can drive, have a driver's license, maybe even own your own car?
- how many of you drive stick shift?
- Why would anyone drive stick shift? More control of the car, more control of the engine.
- JavaScript is a simple language
- it's easy to learn
- it's really easy to become productive in it quickly
- it's easy to build just about anything with
- Install all the Things
- Established why JavaScript is important and in doing so established why we want to learn JavaScript. So lets get started!
- Count off 1 through 4 (1 minute)
- Find a corner or some whiteboard space
- Mind map everything you can think of that you know about JavaScript (2-3 minutes)
- 1 - 2 minutes to share each
- Timeline from 1995 to today
- History of JavaScript
- Features of the language
- Ecosystem around the language
- Brendan Eich, Netscape (1995)
- general idea was to bring interactivity to web pages
- Eich puts together a proof of concept that becomes part of Netscape
- Pulled a bunch of features from languages that he liked
- syntax comes from JavaScript
- object-first and loose typing came from Scheme
- Prototypal Inheritance came from Self
- mix between functional programming and object-oriented programming
- Netscape was able to capture a majority of the browser market share in just 2 years; they were super aggressive about growth
- Microsoft launches JScript, an extremely high fidelity clone of JavaScript
- One of the first tipping points in the development and success of javascript
- Even copied in some of the languages bugs and quirks
- Netscape retains control of the language but now they're fighting with Microsoft about it
- shop the language around to standards organizations, to create a standard for the language
- Microsoft takes over the committee and refuses to allow any changes to become part of the standard
- ECMAScript
- 3rd edition of the language is agreed upon
- Then something amazing happens for the language: nothing.
- For I kid you not 10 years, there is no new spec, new additions or changes to the language, nothing is fixed, nothing.
- nothing happens for 10 years
- gives JS the chance t o build an incredible market share
- leads to incredibly wide cross-browser support
- version 4 is scraped
- AJAX - Asynchronous JavaScript and XML becomes mainstream
- lets us pull data from somewhere else using JavaScript and update the contents of the page based on that data
- browsers become stable/powerful enough to support applications
- JavaScript becomes the most popular language in the world
- jQuery is created
- Google comes out with something called V8 - an extremely efficient and fast JavaScript engine which makes JS almost as fast as regular C++
- 5th edition of the language is agreed upon
- Node.js is released - lets us use JS on servers
- PhoneGap is released - lets us use JS to create mobile applications
- Ecosystem really kicks in