Advanced JS

If you like this presentation – show it...

Slide 0

Advanced JS Workshop – Coding Session, describing most opinionated technologies in JS world. https://github.com/albertstepanyan/advancedjs

Slide 1

How Everything started ?

Slide 2

Well, Imagine 1995, Era of Cyberpunk, Sci fi. Era of slow internet and Crazy ideas

Slide 3

Guy named Brendan Eich who was working for Netscape decided to change the web world and invented brand new language called Javascript.

Slide 4

The language was completely different from what developers were used to see before. No Compiler. No interpreter. Everything was handled by browser Rendering engine. Revolution.

Slide 5

But Still question WHY ???

Slide 6

By that time Web was just starting to grow, Internet Connections were slow. Webpage was just a bunch of HTML elements somehow served from Servers. User experience was…….

Slide 7

Creating a dynamic language like JavaScript would give users and developers an opportunity to make some elements on the webpage dynamic -> DHTML.

Slide 8

So Great Idea isn’t it ?

Slide 9

Imagine you have to wait minutes when your registration form on your favorite dating website is submitted, then page reloads you get excited cause the world will finally see your profile, but finally you get a feedback from Server :

Slide 10

Your Nickname “Super Sexy” is already in use OOPS !

Slide 11

This is really embarrassing, so Javascript was called to help.

Slide 12

The so called DHTML, started validating dozens of forms on the websites helping users and developers, create more dynamic websites, and with the IE6 the world changed when AJAX came through and the light was seen. But this session is not about JS history as after some time, developers from more strict languages started to underestimate the language, because of its scripting nature and browser quirks.

Slide 13

So Some companies like ADOBE tried to solve this by creating a language which is OOP, strict and based on ECMA-script and Javascript started becoming an exile.

Slide 14

But as we know Good always wins the Evil and after some time People like John Resig (jQuery), started creating open source libraries to make a beauty from the beast.

Slide 15

So After some time the lonely warrior proudly called Javascript

Slide 16

Called a cavalry for help, and the world changed forever !

Slide 17

Nowadays with the help of JavaScript fans like me, you can see JS everywhere – Client Side

Slide 18

Server Side: Rhino

Slide 19

Desktop : Windows 8, chrome OS, extensions Mobile: Phonegap, Appcelerator, Sencha Gaming: Canvas, WebGl Protocols: HTML5 Websockets

Slide 20

Nowadays, using these latest technologies you can create Amazing Applications that will rock in Browser, on your lovely IPHONE and on your favorite Gaming desktop. So The time has come, And Revolution is Coming Mr. Wayne.

Slide 21

What does that mean, It means Buckle your seat belt Dorothy, cause Cansas is going Bye bye: http://www.youtube.com/watch?v=0-JJuHpfN5g

Slide 22

Lets Start with installing the Node JS. Go to http://nodejs.org/ And download Executables for your OS.

Slide 23

Next Step is to install GRUNT. http://gruntjs.com/ Grunt is a Javascript task Runner, that makes a developer life easy and productive: npm install –g grunt-cli

Slide 24

The time for bower has come: go to http://bower.io/ Bower is a package manager for the web, so get it ? npm install –g bower

Slide 25

Yeoman: http://yeoman.io/ , this is by far one of the best Dev Skeletons for developing Javascript – Applications. In CLI npm install –g yo, npm install –g generator-webapp

Slide 26

AngularJS install with yeoman by typing in cli npm install –g generator angular: http://angularjs.org/

Slide 27

Why AngularJS ?

Slide 28

1. Very Opinionated 2. Average (not easy) Learning Curve 3. MVC design pattern 4. Powerful Binding system 5. HTML serves as a view 6. Data models are Standard JS objects 7. Prototype based Dom Abstraction Layer 8. Write Less Code (for lazy people like me)

Slide 29

Ok, so What is the magic beyond this ? Have you ever asked you a question how all these works ?

Slide 30

Slide 31

I guess no explanation in documentation, tutorials are not exact, cause you will not need this in everyday life. But if you wanna really find how deep the rabbit hole is, you should learn your best friends are $compile, $parse, $apply, $watch and $digest. This is really where the magic happens !!