|
| 1 | +:revealjs_theme: blood |
| 2 | += History of JavaScript |
| 3 | + |
| 4 | +== The Begining... |
| 5 | +Before "JavaScript Existed", The creators behind the Mosaic browser created a language called "LiveScript" and shipped it in 1995. Within 3 months, it was renamed to "JavaScript" to build on the hype train programmers were on with Java, a completely separate and unrelated language. |
| 6 | + |
| 7 | +=== Browser Wars |
| 8 | +Eventually, Microsoft did what they always do, which is steal source code from someone else's product and release their own version of it, Internet Explorer that used **JScript**. The browsers wars started and long story, short, Mosaic, and other browsers died off due to Internet Explorer. Yet multiple forks of JS remained as well as other scripting languages. All of which were made to address the same issues of providing the browser interactive behavior beyond hyperlinks and the page reloading. |
| 9 | + |
| 10 | +== Standardization of Browser Behavior |
| 11 | +The first attempt at standardizing scripting languages was in 1997 with ECMAScript. (ES-1) as part of European Computer Manufacturers Association (ECMA). However, different implementations, competing languages, and egos prevented any real standardization from occurring until 2009. In between that time, the (failed) proposal for ES-4 (led by Mozilla and others) attempted to call for more traditional programming concepts like classes, modules, etc. |
| 12 | + |
| 13 | +=== ES4 Abandoned |
| 14 | +The standard was abandoned largely due to the concern of "breaking the web" and the introduction of AJAX ( Asynchronous JavaScript And XML") which allowed for client-side dynamic content. As a result of multiple factors, jQuery was created in 2006, largely to provide cross-browser support for different implementations of JavaScript and AJAX. By 2009 ES-5 was released and essentially became what the De facto Standard of JavaScript that most still refer to. |
| 15 | + |
| 16 | +=== ES4 Impact |
| 17 | +It is important to note, that virtually every proposed feature in ES-4 would later be implemented in ES-6 such as classes, generators and iterators, destructuring assignment, and most importantly a module system. The only feature truly noticeably absent are the various reimplementations of types. To read more about the [The Real Story Behind ECMAScript 4](https://auth0.com/blog/the-real-story-behind-es4/). |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | +=== The Birth of Node.js & JavaScript Module Systems |
| 22 | +Beginning in 2009, serverJS was created to give JavaScript a module system and later was renamed commonJS . The goal was "to establish conventions on module ecosystem for JavaScript outside of the web browser" and was likely related to some of the failed ES4 proposals. |
| 23 | + |
| 24 | + |
| 25 | +== Backgroung Images |
| 26 | + |
| 27 | + |
| 28 | +image::https://raw.githubusercontent.com/HansUXdev/OSS-Books/master/JavaScript-First/04-Client-VS-Server/HTTP-readFile.png[background, size=cover] |
| 29 | + |
| 30 | +== Quote |
| 31 | +[quote, Albert Einstein] |
| 32 | +A person who never made a mistake never tried anything new. |
| 33 | + |
| 34 | +== Terms & concepts |
| 35 | +first term:: definition of first term |
| 36 | +second term:: definition of second term |
| 37 | + |
| 38 | +== JavaScipt Code |
| 39 | +image::https://raw.githubusercontent.com/HansUXdev/OSS-Books/master/JavaScript-First/02-DataTypes-and-Debugging/Primitives/primitives.png[] |
| 40 | + |
| 41 | + |
| 42 | +Primitives are weakly Immutable: |
| 43 | + |
| 44 | +[source, JavaScript] |
| 45 | +---- |
| 46 | +const StringPrimitive = "Hello"; |
| 47 | +console.log(typeof StringPrimitive) // string |
| 48 | +console.log(StringPrimitive.__proto__ ) // |
| 49 | +console.log(StringPrimitive[0]) // "H" |
| 50 | +StringPrimitive[0] = 'k'; |
| 51 | +console.log(StringPrimitive[0]) // "H" |
| 52 | +---- |
| 53 | + |
| 54 | + |
| 55 | +== Images |
| 56 | + |
| 57 | +[source, asciidoc] |
| 58 | +-- |
| 59 | +image::media/morpheus.jpg[] |
| 60 | +-- |
| 61 | + |
| 62 | +results in: |
| 63 | + |
| 64 | +image::media/morpheus.jpg[] |
| 65 | + |
| 66 | +=== Background Images |
| 67 | + |
| 68 | +[source, asciidoc] |
| 69 | +-- |
| 70 | +image::media/background.jpg[background, size=cover] |
| 71 | +-- |
| 72 | + |
| 73 | +results in: |
| 74 | + |
| 75 | +image::media/background.jpg[background, size=cover] |
| 76 | + |
| 77 | +=== Background Gifs |
| 78 | + |
| 79 | +[source, asciidoc] |
| 80 | +-- |
| 81 | +image::media/suprise.gif[background, size=cover] |
| 82 | +-- |
| 83 | + |
| 84 | +results in: |
| 85 | + |
| 86 | +image::media/suprise.gif[background, size=cover] |
| 87 | + |
| 88 | +[background-video="https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4",options="loop,muted"] |
| 89 | +=== Background Videos |
| 90 | + |
| 91 | +[source, asciidoc] |
| 92 | +-- |
| 93 | +[background-video="https://video.de/my.mp4",options="loop,muted"] |
| 94 | +-- |
| 95 | + |
| 96 | +== PlantUml |
| 97 | +[source, asciidoc] |
| 98 | +-- |
| 99 | +[graphviz] |
| 100 | +[plantuml,alice-bob] |
| 101 | +.... |
| 102 | +alice -> bob |
| 103 | +.... |
| 104 | +-- |
| 105 | + |
| 106 | +results in: |
| 107 | + |
| 108 | +[plantuml,alice-bob,svg,role=sequence] |
| 109 | +.... |
| 110 | +alice -> bob |
| 111 | +.... |
| 112 | + |
| 113 | +=== Graphviz |
| 114 | + |
| 115 | +[source, asciidoc] |
| 116 | +-- |
| 117 | +[graphviz] |
| 118 | +.... |
| 119 | +digraph foo { |
| 120 | + node [style=rounded] |
| 121 | + node1 [shape=box] |
| 122 | + node2 [fillcolor=yellow, style="rounded,filled", shape=diamond] |
| 123 | + node3 [shape=record, label="{ a | b | c }"] |
| 124 | + |
| 125 | + node1 -> node2 -> node3 |
| 126 | +} |
| 127 | +.... |
| 128 | +-- |
| 129 | + |
| 130 | +results in: |
| 131 | + |
| 132 | +[graphviz] |
| 133 | +.... |
| 134 | +digraph foo { |
| 135 | + node [style=rounded] |
| 136 | + node1 [shape=box] |
| 137 | + node2 [fillcolor=yellow, style="rounded,filled", shape=diamond] |
| 138 | + node3 [shape=record, label="{ a | b | c }"] |
| 139 | + |
| 140 | + node1 -> node2 -> node3 |
| 141 | +} |
| 142 | +.... |
| 143 | + |
| 144 | +[.columns] |
| 145 | +== Column layout |
| 146 | + |
| 147 | +[.column] |
| 148 | +-- |
| 149 | +* **Edgar Allen Poe** |
| 150 | +* Sheri S. Tepper |
| 151 | +* Bill Bryson |
| 152 | +-- |
| 153 | + |
| 154 | +[.column] |
| 155 | +-- |
| 156 | +Edgar Allan Poe (/poʊ/; born Edgar Poe; Ja |
| 157 | +nuary 19, 1809 – October 7, 1849) was an American writer, editor, and literary critic. |
| 158 | +-- |
| 159 | + |
| 160 | +[.columns] |
| 161 | +=== Columns with size |
| 162 | +[.column.is-one-third] |
| 163 | +-- |
| 164 | +* **Kotlin** |
| 165 | +* Java |
| 166 | +* Scala |
| 167 | +-- |
| 168 | + |
| 169 | +[.column] |
| 170 | +-- |
| 171 | +Programming language for Android, mobile cross-platform |
| 172 | +and web development, server-side, native, |
| 173 | +and data science. Open source forever Github. |
| 174 | +-- |
| 175 | + |
| 176 | +== Lists |
| 177 | + |
| 178 | +[source, asciidoc] |
| 179 | +-- |
| 180 | +* Im |
| 181 | +* a |
| 182 | +* List |
| 183 | +-- |
| 184 | + |
| 185 | +results in: |
| 186 | + |
| 187 | +* Im |
| 188 | +* a |
| 189 | +* List |
| 190 | + |
| 191 | +=== Lists |
| 192 | + |
| 193 | +[source, asciidoc] |
| 194 | +-- |
| 195 | +. Step 1 |
| 196 | +. Step 2 |
| 197 | +.. Step 2a |
| 198 | +.. Step 2b |
| 199 | +. Step 3 |
| 200 | +-- |
| 201 | + |
| 202 | +results in: |
| 203 | + |
| 204 | +. Step 1 |
| 205 | +. Step 2 |
| 206 | +.. Step 2a |
| 207 | +.. Step 2b |
| 208 | +. Step 3 |
| 209 | + |
| 210 | +=== Descriptions |
| 211 | + |
| 212 | +[source, asciidoc] |
| 213 | +-- |
| 214 | +first term:: definition of first term |
| 215 | +second term:: definition of second term |
| 216 | +-- |
| 217 | + |
| 218 | +results in: |
| 219 | + |
| 220 | +first term:: definition of first term |
| 221 | +second term:: definition of second term |
| 222 | + |
| 223 | +== Source Code |
| 224 | + |
| 225 | + |
| 226 | +[source, asciidoc] |
| 227 | +-- |
| 228 | +[source, clojure] |
| 229 | +---- |
| 230 | +const StringPrimitive = "Hello"; |
| 231 | +console.log(typeof StringPrimitive) // string |
| 232 | +console.log(StringPrimitive.__proto__ ) // |
| 233 | +console.log(StringPrimitive[0]) // "H" |
| 234 | +StringPrimitive[0] = 'k'; |
| 235 | +console.log(StringPrimitive[0]) // "H" |
| 236 | +---- |
| 237 | +-- |
| 238 | + |
| 239 | +results in: |
| 240 | + |
| 241 | +[source, clojure] |
| 242 | +---- |
| 243 | +(def lazy-fib |
| 244 | + (concat |
| 245 | + [0 1] |
| 246 | + ((fn rfib [a b] |
| 247 | + (lazy-cons (+ a b) (rfib b (+ a b)))) 0 1))) |
| 248 | +---- |
| 249 | + |
| 250 | +== Tables |
| 251 | + |
| 252 | +[source, asciidoc] |
| 253 | +-- |
| 254 | +[%header, cols=2*] |
| 255 | +|=== |
| 256 | +|Character |
| 257 | +|Seen in |
| 258 | + |
| 259 | +|Donald Duck |
| 260 | +|Mickey Mouse |
| 261 | +|=== |
| 262 | +-- |
| 263 | + |
| 264 | +results in: |
| 265 | + |
| 266 | +[%header, cols=2*] |
| 267 | +|=== |
| 268 | +|Character |
| 269 | +|Seen in |
| 270 | + |
| 271 | +|Donald Duck |
| 272 | +|Mickey Mouse |
| 273 | + |
| 274 | +|Donald Duck 2 |
| 275 | +|Mickey Mouse 2 |
| 276 | +|=== |
| 277 | + |
| 278 | +== Quotes |
| 279 | + |
| 280 | +[quote, Albert Einstein] |
| 281 | +A person who never made a mistake never tried anything new. |
0 commit comments