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
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,673