Good Afternoon!
Sharpening Your JS Claws
@mafinar
Alternate Title(s)
- JavaScript: The Meta Parts
- Understanding a misunderstood ecosystem
- Why I hate JavaScript?
- Not...
- Beyond $jQuery, beyond copy-paste, beyond fatigue
... and many more
But let's not give you JS fatigue already...
How many JavaScript programmers does it take to change a light-bulb?
Counter: How many light-bulbs do you want to end up with?
In all seriousness...
- One of the most popular programming languages in the world
- Huge ecosystem, thousands of libraries
- Used by all websites and apps that matters
- Owns a non-replaceable position in a niche
- Got some really cool ideas worth familiarizing with
Stuff I'd discuss
- The Language
- The Flavors
- The Libraries & Frameworks
- The Tools
- The Nutshell(?)
Above all...
The attitude to start groking the culture and road towards using it...
and NO CODES :D
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/1408995/troll-face.png)
JavaScript As A Language
- Family: C
- Object Oriented: Prototypal
- Typing: Dynamic and Weak
- Functional: Scheme Influenced
- Sugary Sweet (ES6)
Make sure you know the damn language!!!
and reason about its usage(s)...
Sharpen your claw...
- Asynchronous v Synchronouse flow
- Type Coercion
- Prototype Inheritance
- Functional Programming
- Closures, Callbacks and Promises
- Design Patterns
- Question Everything
- Reason the Answers
Flavors of JavaScript
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/1409017/monocle-guy.jpg)
On the Browser
- Glue
- Mediumish
- OMG Full SPA
The Server
- "The" Library
- Some Libraries
- Frameworks
Mobile
- Hybrid Framework
- Go Native
Everything Else...
- There is a library for almost everything...
Languages...
- JavaScript
- ES{x: 1 > x > 6 || 2015 < x < 2017}
- CoffeeScript
- TypeScript
- ClojureScript
- Elm
- ...
- ...
- FatigueScript
Libraries and Frameworks
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/1976989/why.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/3457544/1-raWO3dhM4jMjf9VY-kZzNg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/3457558/tools-1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/2486854/0d8621c.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/2487205/bhai_thamen.jpg)
But let's think for a second...
Think about flavors...
- What are you building?
- Why are you building what you're building?
- Who are you building it for/with?
- When are you shipping it?
Going meta...
- What type of personality defines you?
- What school of thought are you in?
- What company do you keep (or work at?)
- What's your aim in life?
My Personal Favorite...
- Re-Frame/Reagent
- React[Native]
- MobX
- Inferno
- OnsenUI
- NuclearJS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/1409011/like-a-boss.jpg)
Languagewise...
- ClojureScript
- TypeScript
- ES2016
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/1409017/monocle-guy.jpg)
Sharpen your Claw...
- Explore frameworks within your domain
- Once selected, stick with it
- Know it, live it, inside out
- Make great projects with it
- Be loud about it
- Know the community
- Go to step 1
The Tools
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/3457600/soon_computer_guy_in_hd_by_lemmino-d655qvm.png)
Focus on the work at hand...
Introducing...
- Build Tools and Task Runners
- Boilerplates and Generators
- Debuggers
- Module Bundlers
- Transpilers
- Fatigue Relievers(?)
They exist for a reason...
Make sure you know what you need
and ensure you do...
You don't need everything...
Stuff I use...
- Gulp
- Webpack
- Brunch
Sharpen your Pencil
- Don't Repeat Yourself, use Tasks
- Let the tools compile it for you, or run, or test, or pretty much any non-business logic stuff
- I think boilerplates are cool for a language like JavaScript, use them, or give us one...
- If you're happy with your tool, use it well.
Le Nutshell...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/3457659/nutshell-cat-page.jpg)
- JavaScript is inevitable at times, learn it well.
- Learn it rights
- The language is often misunderstood, understand it well
- Embrace best practices, test, benchmark, debug and document
- The ecosystem is overwhelming for a reason, don't let that get to you
- Start with your use case, pick a set and go to town with it!
- Make "reasoning about" your mantra and the path will walk itself for you
![](https://s3.amazonaws.com/media-p.slid.es/uploads/54163/images/2486979/trolljspic.jpeg)
Sharpen you JavaScript Claws
By Mafinar Khan
Sharpen you JavaScript Claws
Beyond jQuery, beyond copying and pasting, there's a language... and tools, and frameworks, and libraries... and often, fatigue
- 1,730