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
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
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
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
Languagewise...
ClojureScript
TypeScript
ES2016
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
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...
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
Made with Slides.com