Commit 95314a493f6e65e9f5a541b3d9e7d2d1e4fecfb3
rewrite history
Michael Williams committed on 7/18/2017, 1:24:15 PMParent: 42702f740a0ea03165e2dd04a257e95b91775cd7
Files changed
README.md | changed |
README.md | |||
---|---|---|---|
@@ -26,28 +26,121 @@ | |||
26 | 26 … | --- | |
27 | 27 … | ||
28 | 28 … | # what? | |
29 | 29 … | ||
30 | -this talk is a mashup of a few topics: | ||
30 … | +luddite.js is a JavaScript framework to make building apps fun again | ||
31 | 31 … | ||
32 | -- why you only need simple functions and objects to build complex systems | ||
33 | -- why the best modules should not have any added sugar | ||
34 | -- how "mad science" led to the success of Node.js and thus JavaScript | ||
35 | -- why TC39 (the committee behind ES6+) is bad for JavaScript | ||
36 | -- why you should ignore "modern JavaScript" (promises, classes, `async` / `await`, generators, and beyond). | ||
32 … | +--- | ||
37 | 33 … | ||
34 … | +## who are the Luddites? | ||
35 … | + | ||
36 … | +[Luddites](https://en.wikipedia.org/wiki/Luddite) are people against _centralized technology_ which decreases quality of life. | ||
37 … | + | ||
38 | 38 … | --- | |
39 | 39 … | ||
40 | -# first, some simplified history..., | ||
41 | 40 … | ||
41 … | +## what is luddite.js? | ||
42 … | + | ||
43 … | +a movement against _centralized standards_ which decreases developer experience | ||
44 … | + | ||
42 | 45 … | --- | |
43 | 46 … | ||
47 … | +## what centralized standards? | ||
48 … | + | ||
49 … | +--- | ||
50 … | + | ||
51 … | +### tc39 | ||
52 … | + | ||
53 … | +a great team advancing the state of the art in JavaScript, | ||
54 … | + | ||
55 … | +but is one of _many_ possible opinions about JavaScript. | ||
56 … | + | ||
57 … | +--- | ||
58 … | + | ||
59 … | +### what other opinions? | ||
60 … | + | ||
61 … | +--- | ||
62 … | + | ||
63 … | +what if i told you... | ||
64 … | + | ||
65 … | +that you only needed plain functions and objects? | ||
66 … | + | ||
67 … | +--- | ||
68 … | + | ||
69 … | +### modules | ||
70 … | + | ||
71 … | +```js | ||
72 … | +// randomCat.js | ||
73 … | +const { random: randomCat } = require('cat-names') | ||
74 … | + | ||
75 … | +module.exports = randomCat | ||
76 … | +``` | ||
77 … | + | ||
78 … | +??? | ||
79 … | + | ||
80 … | +we first create a `const` variable from a sync `require` function. | ||
81 … | + | ||
82 … | +we assign the result of this to a global variable `module.exports` | ||
83 … | + | ||
84 … | +not the hundred million special syntaxes to import and export es modules | ||
85 … | + | ||
86 … | + | ||
87 … | +## functions | ||
88 … | + | ||
89 … | +```js | ||
90 … | +// randomCatAsync.js | ||
91 … | +const randomCat = require('./randomCat') | ||
92 … | + | ||
93 … | +module.exports = function randomCatAsync (cb) { | ||
94 … | + try { | ||
95 … | + cb(null, randomCat()) | ||
96 … | + } catch (err) { | ||
97 … | + cb(err) | ||
98 … | + } | ||
99 … | +} | ||
100 … | +--- | ||
101 … | + | ||
102 … | +## sync functions | ||
103 … | + | ||
104 … | + | ||
105 … | +``` | ||
106 … | +function fn () { | ||
107 … | + try { | ||
108 … | + return value() | ||
109 … | + } catch (err) {} | ||
110 … | +} | ||
111 … | +``` | ||
112 … | + | ||
113 … | +## async functions | ||
114 … | + | ||
115 … | +### `cb(err, value()) | ||
116 … | + | ||
117 … | +## aids | ||
118 … | + | ||
119 … | +- [eating your own dog food](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) | ||
120 … | +- [mad science method](https://github.com/ahdinosaur/mad-science-handbook/blob/master/collaboration.md#the-mad-science-cycle) | ||
121 … | +- [do-ocracy](https://communitywiki.org/wiki/DoOcracy) | ||
122 … | +- marathon: keep a slow & steady pace one step at a time | ||
123 … | +- if you see a job that needs doing, it's your job to do (do-ocrarcy) | ||
124 … | +- too much sugar is bad for your health (simple interfaces) | ||
125 … | + | ||
126 … | +## blocks | ||
127 … | + | ||
128 … | +- cave method: try to design or implement the _perfect_ system before sharing it | ||
129 … | +- [design by committee](https://en.wikipedia.org/wiki/Design_by_committee) | ||
130 … | +- sprint: hype, mania, and burn-out | ||
131 … | +- [waterfall design](https://en.wikipedia.org/wiki/Waterfall_model) | ||
132 … | + | ||
133 … | +--- | ||
134 … | + | ||
44 | 135 … | # 2009 | |
45 | 136 … | ||
46 | 137 … | ## nobody cares about JavaScript | |
47 | 138 … | ||
48 | 139 … | > it's a toy language | |
49 | 140 … | ||
141 … | +--- | ||
142 … | + | ||
50 | 143 … | ## Ryan Dahl (@ry) creates Node.js | |
51 | 144 … | ||
52 | 145 … | [watch the original presentation](https://www.youtube.com/watch?v=ztspvPYybIY) | |
53 | 146 … |
Built with git-ssb-web