http://wiki.apidesign.org/index.php?title=JavaScript&feed=atom&action=historyJavaScript - Revision history2024-03-28T21:17:43ZRevision history for this page on the wikiMediaWiki 1.12.0rc1http://wiki.apidesign.org/index.php?title=JavaScript&diff=8328&oldid=prevJaroslavTulach at 06:39, 22 April 20152015-04-22T06:39:48Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 06:39, 22 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>[[wikipedia::JavaScript|JavaScript]] was designed as a scripting language. As such it was for a long time considered an outsider among [[language]]s. However its presence in browsers and its ability to give [[HTML]] pages ''life'' makes it more and more attractive. But let's be honest - [[JavaScript]] is weird and nobody would use it, if it hadn't had its ''browser presence'' advantage. Real projects deserve real languages and as such [[I]] am huge supporter of Toni Epple's [[DukeScript]] idea.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>[[wikipedia::JavaScript|JavaScript]] was designed as a scripting language <ins style="color: red; font-weight: bold; text-decoration: none;">by [[Brendan Eich]]</ins>. As such it was for a long time considered an outsider among [[language]]s. However its presence in browsers and its ability to give [[HTML]] pages ''life'' makes it more and more attractive. But let's be honest - [[JavaScript]] is weird and nobody would use it, if it hadn't had its ''browser presence'' advantage. Real projects deserve real languages and as such [[I]] am huge supporter of Toni Epple's [[DukeScript]] idea.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Yet Another Assembly Language ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Yet Another Assembly Language ==</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=JavaScript&diff=8327&oldid=prevJaroslavTulach: /* OOP Assembly Set */2015-04-20T08:57:17Z<p><span class="autocomment">OOP Assembly Set</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 08:57, 20 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 11:</td>
<td colspan="2" class="diff-lineno">Line 11:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== [[OOP]] Assembly Set ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== [[OOP]] Assembly Set ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>To illustrate why I believe JavaScript is another assembly language, let’s think about a way to invoke original implementation in an overwritten method. In Java you’d use <del style="color: red; font-weight: bold; text-decoration: none;">“super” </del>keyword:</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>To illustrate why I believe JavaScript is another assembly language, let’s think about a way to invoke original implementation in an overwritten method. In Java you’d use <ins style="color: red; font-weight: bold; text-decoration: none;">'''super''' </ins>keyword:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><source lang="java"></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><source lang="java"></div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=JavaScript&diff=8326&oldid=prevJaroslavTulach: /* Yet Another Assembly Language */2015-04-20T08:55:24Z<p><span class="autocomment">Yet Another Assembly Language</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 08:55, 20 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>For [[I|me]] personally, [[JavaScript]] is just another assembly language. An object oriented assembler people were seeking for in 80-ties. [[JavaScript]] as of 2015 is a famous target ''instruction set'' (just like [[wikipedia:Z80|Z80]] or [[wikipedia:i386|i386]]). Many languages compile to it. The reason is simple: if you want your program run everywhere, you need it to run in a browser and [[JavaScript]] is the language all modern browsers speak. As such we have a way to translate [[C]] (via [[Asm.js]]) to [[JavaScript]] as well [[Java]] (via [[I|my]] [[bck2brwsr]] [[VM]] or [[TeaVM]]). [[I]] don’t see any reason why people should code in assembler anymore. And certainly I am not going to do so myself – I rather spend a year to create a [[Bck2Brwsr|framework]] than to write directly in [[JavaScript]].</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>For [[I|me]] personally, [[JavaScript]] is just another assembly language. An object oriented assembler people were seeking for in 80-ties. [[JavaScript]] as of 2015 is a famous target ''instruction set'' (just like [[wikipedia:Z80|Z80]] or [[wikipedia:i386|i386]]). Many languages compile to it. The reason is simple: if you want your program run everywhere, you need it to run in a browser and [[JavaScript]] is the language all modern browsers speak. As such we have a way to translate [[C]] (via [[Asm.js]]) to [[JavaScript]] as well [[Java]] (via [[I|my]] [[bck2brwsr]] [[VM]] or [[TeaVM]]). [[I]] don’t see any reason why people should code in assembler anymore. And certainly I am not going to do so myself – I rather spend a year to create a [[Bck2Brwsr|framework]] than to write directly in [[JavaScript]].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>[[I]] know large group of people that are fine with [[JavaScript]], but face it: It’s a <del style="color: red; font-weight: bold; text-decoration: none;">“write once </del>and <del style="color: red; font-weight: bold; text-decoration: none;">throw away” </del>language. You write your code once and ship it when it works. Later, when you are asked to change something in it, you are afraid to touch it. No refactorings, as no tool can guarantee that your code will behave the same after refactoring (unlike in more restricted languages like [[Java]]), no huge changes – touch it only lightly and with care. It is often easier to start from scratch.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>[[I]] know large group of people that are fine with [[JavaScript]], but face it: It’s a <ins style="color: red; font-weight: bold; text-decoration: none;">“Write Once </ins>and <ins style="color: red; font-weight: bold; text-decoration: none;">Never Touch Again” </ins>language. You write your code once and ship it when it works. Later, when you are asked to change something in it, you are afraid to touch it. No refactorings, as no tool can guarantee that your code will behave the same after refactoring (unlike in more restricted languages like [[Java]]), no huge changes – touch it only lightly and with care. It is often easier to start from scratch.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I hear complaints of this kind from executives everywhere. Especially if they have one gang of [[Java]] programmers and another of [[JavaScript]] developers in-house. They tend to see the latter as less reliable geeks always trying something new, but never delivering long lasting product. It may be a clash of generations (as [[JavaScript]] guys are usually younger), but I believe the root cause is the assembly nature of [[JavaScript]].</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I hear complaints of this kind from executives everywhere. Especially if they have one gang of [[Java]] programmers and another of [[JavaScript]] developers in-house. They tend to see the latter as less reliable geeks always trying something new, but never delivering long lasting product. It may be a clash of generations (as [[JavaScript]] guys are usually younger), but I believe the root cause is the assembly nature of [[JavaScript]].</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=JavaScript&diff=8325&oldid=prevJaroslavTulach at 08:53, 20 April 20152015-04-20T08:53:31Z<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 08:53, 20 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>[[wikipedia::JavaScript|JavaScript]] <del style="color: red; font-weight: bold; text-decoration: none;">is </del>was designed as a scripting language. As such it was for a long time considered an outsider among [[language]]s. However its presence in browsers and its ability to give [[HTML]] pages ''life'' makes it more and more attractive. But let's be honest - [[JavaScript]] is weird and nobody would use it, if it hadn't had its ''browser presence'' advantage. Real projects deserve real languages and as such [[I]] am huge supporter of Toni Epple's [[DukeScript]] idea.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>[[wikipedia::JavaScript|JavaScript]] was designed as a scripting language. As such it was for a long time considered an outsider among [[language]]s. However its presence in browsers and its ability to give [[HTML]] pages ''life'' makes it more and more attractive. But let's be honest - [[JavaScript]] is weird and nobody would use it, if it hadn't had its ''browser presence'' advantage. Real projects deserve real languages and as such [[I]] am huge supporter of Toni Epple's [[DukeScript]] idea.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Yet Another Assembly Language ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Yet Another Assembly Language ==</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=JavaScript&diff=8323&oldid=prev89.102.171.57: /* Impossible */2015-04-10T14:05:27Z<p><span class="autocomment">Impossible</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 14:05, 10 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 29:</td>
<td colspan="2" class="diff-lineno">Line 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Using [[JavaScript]] for any real project is [[impossible]] - maybe not [[impossible]] in the [[impossible|finite automata sense]], but certainly as [[impossible]] as [[ImpossibleThreading|getting threading right]]. I am sure people will still try. People will still deliver [[good]] enough results, and people will have conferences to worship the way they do the things they do. In spite of that I am convinced [[Java]] has a lot of more offer - Especially when we talk about [[Java]] as a language not bound by restrictions of [[HotSpot]] [[VM]] like in case of [[DukeScript]].</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Using [[JavaScript]] for any real project is [[impossible]] - maybe not [[impossible]] in the [[impossible|finite automata sense]], but certainly as [[impossible]] as [[ImpossibleThreading|getting threading right]]. I am sure people will still try. People will still deliver [[good]] enough results, and people will have conferences to worship the way they do the things they do. In spite of that I am convinced [[Java]] has a lot of more <ins style="color: red; font-weight: bold; text-decoration: none;">to </ins>offer - Especially when we talk about [[Java]] as a language not bound by restrictions of [[HotSpot]] [[VM]] like in case of [[DukeScript]].</div></td></tr>
</table>89.102.171.57http://wiki.apidesign.org/index.php?title=JavaScript&diff=8322&oldid=prev89.102.171.57: /* Impossible */2015-04-10T14:04:43Z<p><span class="autocomment">Impossible</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 14:04, 10 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 29:</td>
<td colspan="2" class="diff-lineno">Line 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Using [[JavaScript]] is [[impossible]] - maybe not [[impossible]] in the [[impossible|finite automata sense]], but certainly as [[impossible]] as [[ImpossibleThreading|getting threading right]]. I am sure people will still try. People will still deliver [[good]] enough results, and people will have conferences to worship the way they do the things they do. In spite of that I am convinced [[Java]] has a lot of offer.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Using [[JavaScript]] <ins style="color: red; font-weight: bold; text-decoration: none;">for any real project </ins>is [[impossible]] - maybe not [[impossible]] in the [[impossible|finite automata sense]], but certainly as [[impossible]] as [[ImpossibleThreading|getting threading right]]. I am sure people will still try. People will still deliver [[good]] enough results, and people will have conferences to worship the way they do the things they do. In spite of that I am convinced [[Java]] has a lot of <ins style="color: red; font-weight: bold; text-decoration: none;">more </ins>offer <ins style="color: red; font-weight: bold; text-decoration: none;">- Especially when we talk about [[Java]] as a language not bound by restrictions of [[HotSpot]] [[VM]] like in case of [[DukeScript]]</ins>.</div></td></tr>
</table>89.102.171.57http://wiki.apidesign.org/index.php?title=JavaScript&diff=8320&oldid=prevJaroslavTulach: /* Impossible */2015-04-05T21:00:17Z<p><span class="autocomment">Impossible</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 21:00, 5 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 29:</td>
<td colspan="2" class="diff-lineno">Line 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Using [[JavaScript]] is [[impossible]] - maybe not [[impossible]] in the [[impossible|finite automata sense]], but certainly as [[impossible]] as [[ImpossibleThreading|getting threading right]].</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Using [[JavaScript]] is [[impossible]] - maybe not [[impossible]] in the [[impossible|finite automata sense]], but certainly as [[impossible]] as [[ImpossibleThreading|getting threading right]]. <ins style="color: red; font-weight: bold; text-decoration: none;">I am sure people will still try. People will still deliver </ins>[[<ins style="color: red; font-weight: bold; text-decoration: none;">good</ins>]] <ins style="color: red; font-weight: bold; text-decoration: none;">enough results, and people will have conferences to worship the way they do the things they do. In spite of that I am convinced [[Java]] has a lot of offer.</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>[[<del style="color: red; font-weight: bold; text-decoration: none;">TBD</del>]]</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=JavaScript&diff=8319&oldid=prevJaroslavTulach: /* OOP Assembly Set */2015-04-05T20:57:21Z<p><span class="autocomment">OOP Assembly Set</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:57, 5 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 26:</td>
<td colspan="2" class="diff-lineno">Line 26:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I have to repeat myself: if you keep coding in [[JavaScript]], you end up like everyone who’s using assembler: feeling powerful at first, but constrained in the years to come.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I have to repeat myself: if you keep coding in [[JavaScript]], you end up like everyone who’s using assembler: feeling powerful at first, but constrained in the years to come.</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=JavaScript&diff=8318&oldid=prevJaroslavTulach: /* Every Generation Needs to Repeat Previous Mistakes */2015-04-05T20:57:04Z<p><span class="autocomment">Every Generation Needs to Repeat Previous Mistakes</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:57, 5 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 29:</td>
<td colspan="2" class="diff-lineno">Line 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">== Every Generation Needs to Repeat Previous Mistakes ==</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">[[Tim Boudreau]]: really get the feeling [[JavaScript]] guys are trying to replay the last 20 years of server-side development, but inside a browser window, and feel like they have to make every mistake again for themselves.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">[[Tim Boudreau]]: 90% of the project's problems come from broken attempts to modularize *inside* a giant single HTML page application, and not being able to actually keep things from interfering with each other. I believe in modularization, but I also think the web comes with a great tool for modularization, and its called web pages.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">[[User:JaroslavTulach|Me]]: That is result of missing encapsulation. There is not much of it in [[JavaScript]] - only require.js comes to my mind.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Impossible ==</div></td></tr>
</table>JaroslavTulachhttp://wiki.apidesign.org/index.php?title=JavaScript&diff=8317&oldid=prevJaroslavTulach: /* Every Generation Needs Its Own Assembler! */2015-04-05T20:56:24Z<p><span class="autocomment">Every Generation Needs Its Own Assembler!</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:56, 5 April 2015</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Line 27:</td>
<td colspan="2" class="diff-lineno">Line 27:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I have to repeat myself: if you keep coding in [[JavaScript]], you end up like everyone who’s using assembler: feeling powerful at first, but constrained in the years to come.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>I have to repeat myself: if you keep coding in [[JavaScript]], you end up like everyone who’s using assembler: feeling powerful at first, but constrained in the years to come.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">== Every Generation Needs Its Own Assembler! ==</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">The history of mankind is repeating. In circles. Yet, according to [[wikipedia:Karl_Marx|Karl Marx]] it is repeating in spiral - the new generations are about to do the same mistakes as the previous ones, just on new (hopefully) higher level. A bit too optimistic conclusion, but as far as [[JavaScript]] goes, probably true.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">I learned programming while coding in the [[Karel]] language. But it felt not like a real programming language, [[Karel]] was a programming language for children. Still, everything I ever learned about programming I owe to [[Karel]]. Those who know the [[two sides]] essay by [[wikipedia:Edsger_W._Dijkstra|Dijkstra]] can imagine what was my computer to execute my programs. Yes, I was simulating all the computations in hand. How does a computer of young generation looks like? Right, it is a browser. And [[JavaScript]] runs naturally in a browser. What kind of impact this can have on like-to-be-programers?</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Every Generation Needs to Repeat Previous Mistakes ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Every Generation Needs to Repeat Previous Mistakes ==</div></td></tr>
</table>JaroslavTulach