Nobody like slow things, but lot of things are said to be slow – jQuery, layout trashing, DOM manipulation, …
10ms could be both slow and fast - it depends on context - it’s fast on e-commerce site but slow in game.
What metric matters?
DOMContentLoaded? FPS? Jank? First paint?
Benchmarks do not look like a real web.
Chrome devs are trying to address right problems - real problems, not benchmark problems.
Focus on the user and all else will follow.
Jakob Nielsen = usability guru
Focus on user’s journey on the web.
TIP: Record real users interaction on real devices.
Measurements should be user-centric. Not tech-centric.
Rockstar, Ninja, Hacker, Hacker ninja
Internet is wrong.
What you have to know to be a web developer? Wrong question.
How fast can you learn.
Everything treats you like a humanoid, not a human - with depleting cognitive resources.
After difficult tasks, we deplete will power. Works also for other animals.
Don’t unnecessary burn cognitive resources.
Little things during the day that drain will power matters.
How to get way better way faster?
Over 3x 45-90 min is too big - split it.
Chicken sexing, plane spotting example.
KrakenJS - started internally at PayPal - easing of creating apps.
PayPal has 67 live node apps.
Custom node workshops for PayPal engineers.
Benefit of open sourcing - when new employee comes, he can google your own framework.
UI layer is the Experimentation layer.
Fail fast to learn.
DustJS, Angular, Ember, React - PayPal is experimenting and democratizing technology.
ES is trying to get rapid release cycle.
Preprocessors, compilers, linters are common. It wasn't always like that. Programmers were avoiding any abstractions in old times.
Browsers are evergreen, updates every few weeks.
Rise of static typing - Typescript, Flow, Closure Compiler
Needed by C++
Cross compiled C++ and C#.
Chickens with machine guns.
Always bet on JS
Main message: why it so hard to render fast?
Rendering engine is serial, in today parallel world.
Parsing at the beginning.
Do not try to guess what is slow, PROFILE! And look at tools, not at code.
Layouts are complicated because everything in CSS is relative to next elements - try to use absolute position.
Translation and alpha animations are fast - happens in GPU in compositor. Changing scale is bad.
GPU has separate memory. Reading back from GPU to CPU is expensive. It’s optimised to go from CPU to GPU.
Try to help GPU.
Make a web welcoming place.
Ninjas are never seen in office. Rockstars are demanding.
List of things that are possible but pisses people off.
If a word could be misunderstood, it would be misunderstood.
Conversational Computing - Stewart Nickolas (IBM)
Internet of Everything.
Loading websites is solved problem.
Back button is solved problem.
We, as developers, are breaking these things these days.
The web is not a platform, web was designed to be platform independent.
Hack - programming language open source about 1 ago by Facebook.
Hack is server side lang at Facebook. Any interaction with Facebook is powered by Hack.
Gradually typed lang for HHVM. It’s your decision if you wanna use it as dynamic or static.
HHVM is to PHP what JVM is to Java.
Hack type checker is daemon - run in a background and watches files for changes.
Error messages are cool.
Fetching 3 things.
Null are evil, because normally we asume something is not null.