Slide 1

Slide 1 text

JavaScript The language Every Programmer Should Know Wednesday, March 27, 13

Slide 2

Slide 2 text

Questions • Who has programmed in JavaScript? • Who is JavaScript Experts (Ninjas) Wednesday, March 27, 13

Slide 3

Slide 3 text

Who am I • Tom Wilson (@twilson63) • President of Jack Russell Software (2007) • We build web and mobile applications for HealthCare. (Medication Therapy Mgmt) • Love JavaScript, Ruby, and the web platform. Wednesday, March 27, 13

Slide 4

Slide 4 text

About my talk Think Different • My talk is an argument to get you thinking about a different way of choosing languages you want to master. • It is ok to disagree, the thoughts in this talk are opinionated. http://www.flickr.com/photos/simssototo/141272015/ Wednesday, March 27, 13

Slide 5

Slide 5 text

Why JavaScript? • Before we get into the why, lets dive into some reasons not to learn javascript? http://www.flickr.com/photos/vlauria/14740709/ Wednesday, March 27, 13

Slide 6

Slide 6 text

Reasons not to learn JS Wednesday, March 27, 13

Slide 7

Slide 7 text

Reasons not to learn JS • I am a backend or database developer and JS is a front-end technology. Wednesday, March 27, 13

Slide 8

Slide 8 text

Reasons not to learn JS • I am a backend or database developer and JS is a front-end technology. • I can do everything I need using (Java, Ruby) with any Server-Side Framework (GWT, Rails), and it will be fast using Caching. Wednesday, March 27, 13

Slide 9

Slide 9 text

Reasons not to learn JS • I am a backend or database developer and JS is a front-end technology. • I can do everything I need using (Java, Ruby) with any Server-Side Framework (GWT, Rails), and it will be fast using Caching. • JavaScript is a Toy Language. Wednesday, March 27, 13

Slide 10

Slide 10 text

Reasons not to learn JS • I am a backend or database developer and JS is a front-end technology. • I can do everything I need using (Java, Ruby) with any Server-Side Framework (GWT, Rails), and it will be fast using Caching. • JavaScript is a Toy Language. • The future is native applications. Wednesday, March 27, 13

Slide 11

Slide 11 text

Reason not to learn JS (cont) Wednesday, March 27, 13

Slide 12

Slide 12 text

Reason not to learn JS (cont) • JavaScript is not Fast Wednesday, March 27, 13

Slide 13

Slide 13 text

Reason not to learn JS (cont) • JavaScript is not Fast • JavaScript is not a typed or compiled language. Wednesday, March 27, 13

Slide 14

Slide 14 text

Reason not to learn JS (cont) • JavaScript is not Fast • JavaScript is not a typed or compiled language. • more? Wednesday, March 27, 13

Slide 15

Slide 15 text

Myth Busters http://upload.wikimedia.org/wikipedia/commons/1/14/HappLand!.jpg Wednesday, March 27, 13

Slide 16

Slide 16 text

Is JavaScript the only language that ships with all mainstream browsers Wednesday, March 27, 13

Slide 17

Slide 17 text

True Wednesday, March 27, 13

Slide 18

Slide 18 text

JavaScript is used as a core query language for NoSQL Databases. Wednesday, March 27, 13

Slide 19

Slide 19 text

True http://couchdb.apache.org/image/couch.png http://upload.wikimedia.org/wikipedia/en/e/eb/MongoDB_Logo.png Wednesday, March 27, 13

Slide 20

Slide 20 text

JavaScript is being used to build HTML5 Games Wednesday, March 27, 13

Slide 21

Slide 21 text

True Wednesday, March 27, 13

Slide 22

Slide 22 text

JavaScript is available on more internet connected devices than any other language Wednesday, March 27, 13

Slide 23

Slide 23 text

True In the report, it reveals that there are 425 million internet-connected tech devices and 39 million consoles that can be found in U.S. homes. To put things in perspective, consoles came in at third with 39 million units connected to the web, which was beaten by laptops/desktops at 183.8 million and coming in at second were smarphones at 133 million. Also of note, the report found 31.8 million tablets in the U.S., 16 million HDTVs directly online, 12.9 million Blu-ray players, and 8.5 million streaming media http://www.gameranx.com/updates/id/11789/article/the-u-s-has-more-internet-connected-devices-than-people/ Wednesday, March 27, 13

Slide 24

Slide 24 text

JavaScript Apps can be deployed to SMART TV’s Wednesday, March 27, 13

Slide 25

Slide 25 text

True Wednesday, March 27, 13

Slide 26

Slide 26 text

Is JavaScript an OOP Style Language? Wednesday, March 27, 13

Slide 27

Slide 27 text

Myth JavaScript can be written in many different styles: OOP, Functional, etc Wednesday, March 27, 13

Slide 28

Slide 28 text

JavaScript can run on the Server Wednesday, March 27, 13

Slide 29

Slide 29 text

True Wednesday, March 27, 13

Slide 30

Slide 30 text

You can write JS to control hardware, robots and quad-copters Wednesday, March 27, 13

Slide 31

Slide 31 text

True Wednesday, March 27, 13

Slide 32

Slide 32 text

There is a mobile operating system that is running in JavaScript Wednesday, March 27, 13

Slide 33

Slide 33 text

True Wednesday, March 27, 13

Slide 34

Slide 34 text

There are more open source projects in JavaScript than any other language Wednesday, March 27, 13

Slide 35

Slide 35 text

True? Ohlo.net Wednesday, March 27, 13

Slide 36

Slide 36 text

JavaScript has the best developer tools Wednesday, March 27, 13

Slide 37

Slide 37 text

Myth But getting better! Wednesday, March 27, 13

Slide 38

Slide 38 text

JavaScript is easy to Master Wednesday, March 27, 13

Slide 39

Slide 39 text

Myth But there is plenty of material available to learn. Wednesday, March 27, 13

Slide 40

Slide 40 text

JavaScript is the Assembly Language of the Web Wednesday, March 27, 13

Slide 41

Slide 41 text

? Wednesday, March 27, 13

Slide 42

Slide 42 text

Why should I master JS? http://24.media.tumblr.com/tumblr_m0i8wy4V5t1rrp2pto1_500.jpg Wednesday, March 27, 13

Slide 43

Slide 43 text

Scientific Approach Well sort of http://en.wikipedia.org/wiki/File:Mad_scientist.svg Wednesday, March 27, 13

Slide 44

Slide 44 text

Have you heard of the CAP Theorem (Consistency, Availability, and Partition tolerance) Wednesday, March 27, 13

Slide 45

Slide 45 text

How about the PSQ Theorem (Productivity, Speed, and Quality) Wednesday, March 27, 13

Slide 46

Slide 46 text

I hope not, I just made it up. :) Maybe you have heard of Good, Fast, Cheap Pick any two, can’t have all three Wednesday, March 27, 13

Slide 47

Slide 47 text

Languages can be subjectively measured in this way. Wednesday, March 27, 13

Slide 48

Slide 48 text

Machine Language • Productivity ( 1 - 10) = 1 • Speed ( 1 - 10) = 10 • Quality (1 - 10) = 1 Wednesday, March 27, 13

Slide 49

Slide 49 text

• Productivity (1 - 10) = 9 • Speed (1 - 10) = 3 • Quality (1 - 10) = 5 Wednesday, March 27, 13

Slide 50

Slide 50 text

• Productivity (1 - 10) = 3 • Speed (1 - 10) = 8 • Quality (1 - 10) = 3 • (Not many developers master C++) Wednesday, March 27, 13

Slide 51

Slide 51 text

JavaScript • Productivity (1 - 10) = 7 • Speed (1 - 10) = 6 • Quality (1 - 10) = 6 Wednesday, March 27, 13

Slide 52

Slide 52 text

PSQ Wednesday, March 27, 13

Slide 53

Slide 53 text

OpenSource Wednesday, March 27, 13

Slide 54

Slide 54 text

Monthly Commits (Ohloh.net) Wednesday, March 27, 13

Slide 55

Slide 55 text

Monthly Projects (ohloh.net) Wednesday, March 27, 13

Slide 56

Slide 56 text

C vs JS Monthly Projects (Ohloh.net) Wednesday, March 27, 13

Slide 57

Slide 57 text

How about Job Availability? Wednesday, March 27, 13

Slide 58

Slide 58 text

0 150 300 450 600 JavaScript Java PHP Ruby Python CSharp C++ NodeJS StackOverflow Jobs Wednesday, March 27, 13

Slide 59

Slide 59 text

Salaries (SimplyHired.com) 0 30 60 90 120 SFO NY USA JavaScript C++ Wednesday, March 27, 13

Slide 60

Slide 60 text

Styles and Preferences • JavaScript - OOP • JavaScript - Functional • CoffeeScript • Dart • TypeScript • etc. Wednesday, March 27, 13

Slide 61

Slide 61 text

Where will JS be in 3, 5, 10 years Wednesday, March 27, 13

Slide 62

Slide 62 text

IMO HTML, CSS, and JS is and will be the longest running platform in history and continues to evolve and innovate Wednesday, March 27, 13

Slide 63

Slide 63 text

What do you think? Wednesday, March 27, 13

Slide 64

Slide 64 text

If I convinced you to master javascript? Here are some resources to get you started Wednesday, March 27, 13

Slide 65

Slide 65 text

Superherojs.com Wednesday, March 27, 13

Slide 66

Slide 66 text

eloquentjavascript.net Wednesday, March 27, 13

Slide 67

Slide 67 text

nodeguide.com Wednesday, March 27, 13

Slide 68

Slide 68 text

developer.mozilla.org Wednesday, March 27, 13

Slide 69

Slide 69 text

Return on Investment Invest your time spent learning new technology wisely, ask questions. Wednesday, March 27, 13

Slide 70

Slide 70 text

Thank You Questions Wednesday, March 27, 13