sacrificing the golden calf of "coding"
TRANSCRIPT
Coding in the demo scene:
Programming in a creative fashion, pushing the boundaries of limited environments
People don’t always upgrade like we’d love them to. This means we need support old, terrible ideas.
The legacy problem:
Browsers have to favour the end user and protect them from programmer mistakes. Lazy developers see that as a carte blanche.
The protect the user problem:
If how we do things isn’t as appreciated as how fast it is done, we find ways to automate our work.
The development appreciation gap:
Writing Perl/CGI (1997 edition)
1. Get a client request
2. Go to Matt’s Script Archive
3. Download something
4. Change things until it resembles what the client wants and stops breaking with a 500 (chmod 777 if in doubt)
5. Invoice, hide under rock
Fixing code…1. Create an available version of your code
(codepen, gist, jsbin, jsfiddle…)
2. Go to Stackoverflow and post your problem
3. Abandon all hope of getting a straight answer
4. Get well versed in filtering out feedback on various levels of dysfunctional human communication
5. Find the answer in the maelstrom of “just use $x” or “well, actually…”
Fixing code (pro edition)
1. Go to Stackoverflow
2. Describe your coding problem with an obviously wrong solution and call it a best practice
3. Get popcorn
4. Follow the moshpit of ideas and biases
5. Find the one good solution that crops up
We package reusable code and patterns up in frameworks, libraries, tooling and processes.
The digital hoarding scenario:
Generic, reusable solutions are bigger codebases and have more computational overhead.
The digital hoarding problem:
More tools and processes to strip the overhead before shipping to the end user.
The digital hoarding solution:
Have we raised the bar too high for people starting new?
twitter.com/ben_howdle/status/930012526628110337
twitter.com/TheLarkInn/status/930320292399820800
Are we teaching ways that we know and worked for us, but are outdated?
We have collaborative editing and education tools.
code.visualstudio.com/blogs/2017/11/15/live-share
codepen.io
jsbin.com
glitch.com
Linting and validation tools tell us what to fix – even as a continuous integration step.
sonarwhal.com
Our users* have much more capable devices with higher computation power than in the past.
A changed world:
* The affluent and local ones our investors and our sales and marketing departments care about.
The technologies we have at our disposal are complex and have higher computation demands.
A changed world:
We now have a larger distance between code creation and execution, with optimisation steps in between.
Rolling with the punches:
The business demands on our creations are about fast delivery and constant innovation. This demands re-use and automation.
Rolling with the punches:
With increased complexity and demand, any software product will sooner or later use pre-built components.
The natural software evolution:
More tools and processes to strip the overhead before shipping to the end user.
The digital hoarding solution:
This flows over into the design space. Style guides, pattern libraries.
airbnb.design/sketching-interfaces
We built an initial prototype using about a
dozen hand-drawn components as training
data, open source machine learning
algorithms, and a small amount of
intermediary code to render components
from our design system into the browser.
“
We built an initial prototype using about a dozen hand-drawn components as training data, open source machine learning algorithms, and a small amount of intermediary code to render components from our design system into the browser. We were pleasantly surprised with the result:
airbnb.design/sketching-interfaces
We built an initial prototype using about a
dozen hand-drawn components as training
data, open source machine learning
algorithms, and a small amount of
intermediary code to render components
from our design system into the browser.
“
airbnb.design/sketching-interfaces
twitter.com/kurtiskemple/status/930419045769318400
Let’s focus more on the human, and less on trying to be machines. We won’t win this race.