Fossil SCM
Moved my rewrite of Stephan's "Compatibility Concerns" section of javascript.md down into the Q&A section.
Commit
026279496a4dca9b375d91cda58e6d081f0438c2fd56a5677c3157fc6f55a91f
Parent
b76427bb2082093…
1 file changed
+22
-24
+22
-24
| --- www/javascript.md | ||
| +++ www/javascript.md | ||
| @@ -66,31 +66,10 @@ | ||
| 66 | 66 | all of this; you can then override UBO’s stock rules as needed. |
| 67 | 67 | |
| 68 | 68 | [ns]: https://noscript.net/ |
| 69 | 69 | [ub]: https://github.com/gorhill/uBlock/ |
| 70 | 70 | |
| 71 | - | |
| 72 | -## <a id="compat"></a>Compatibility Concerns | |
| 73 | - | |
| 74 | -The Fossil project’s developers aim to remain relatively compatible with | |
| 75 | -the largest portions of the client-side browser base. We use only | |
| 76 | -standards-defined JavaScript features which are known to work in the | |
| 77 | -overwhelmingly vast majority of browsers going back approximately 5 | |
| 78 | -years, at minimum, as documented by [Can I Use...?][ciu] We avoid use of | |
| 79 | -features added to the language more recently or those which are still in | |
| 80 | -flux in standards committees | |
| 81 | - | |
| 82 | -We set this threshold based on the amount of time it typically takes for | |
| 83 | -new standards to propagate through the installed base. | |
| 84 | - | |
| 85 | -As of this writing, this means we are only using features defined in | |
| 86 | -[ECMAScript 2015][es2015], colloquially called “JavaScript 6.” That is a | |
| 87 | -sufficiently rich standard that it more than suffices for our purposes. | |
| 88 | - | |
| 89 | -[ciu]: https://caniuse.com/ | |
| 90 | -[es2015]: https://ecma-international.org/ecma-262/6.0/ | |
| 91 | - | |
| 92 | 71 | |
| 93 | 72 | ## <a id="debate"></a>Arguments Against JavaScript & Our Rebuttals |
| 94 | 73 | |
| 95 | 74 | There many common arguments against the use of JavaScript. Rather than |
| 96 | 75 | rehash these same arguments on the [forum][ffor], we distill the common |
| @@ -139,11 +118,11 @@ | ||
| 139 | 118 | their engines fast and competitive. |
| 140 | 119 | |
| 141 | 120 | Once the scripts are cached, Ajax based page updates are faster than |
| 142 | 121 | the alternative. |
| 143 | 122 | |
| 144 | -3. <a id="3pjs"></a>”**Third-party JavaScript cannot be trusted.**” | |
| 123 | +3. <a id="3pjs"></a>“**Third-party JavaScript cannot be trusted.**” | |
| 145 | 124 | |
| 146 | 125 | Fossil does not use any third-party JavaScript libraries, not even |
| 147 | 126 | very common ones like jQuery. Every bit of JavaScript served by the |
| 148 | 127 | stock version of Fossil was written specifically for the Fossil |
| 149 | 128 | project and is stored [in its code repository][fsrc]. |
| @@ -152,11 +131,11 @@ | ||
| 152 | 131 | Fossil and mechanisms like [skin editing][cskin] don’t suffice for your |
| 153 | 132 | purposes, you can hack on the JavaScript in your local instance |
| 154 | 133 | directly, just as you can hack on its C, SQL, and Tcl code. Fossil |
| 155 | 134 | is free and open source software, under [a single license][2cbsd]. |
| 156 | 135 | |
| 157 | -4. <a id="snoop"></a>”**JavaScript and cookiers are used to snoop on web users.**” | |
| 136 | +4. <a id="snoop"></a>“**JavaScript and cookiers are used to snoop on web users.**” | |
| 158 | 137 | |
| 159 | 138 | There is no tracking or other snooping technology in Fossil other than |
| 160 | 139 | that necessary for basic security, such as IP address logging on |
| 161 | 140 | check-ins. (This is in part why we have no [comprehensive user |
| 162 | 141 | statistics](#stats)!) |
| @@ -213,11 +192,11 @@ | ||
| 213 | 192 | jQuery to patch over the incompatibilities. Over time, the need for |
| 214 | 193 | such libraries has dropped as browser vendors have fixed the |
| 215 | 194 | incompatibilities. Cross-browser JavaScript compatibility issues |
| 216 | 195 | which affect web developers are, by and large, a thing of the past. |
| 217 | 196 | |
| 218 | -7. “**Fossil UI works fine without JavaScript.**” | |
| 197 | +7. “**Fossil UI works fine today without JavaScript. Why break it?**” | |
| 219 | 198 | |
| 220 | 199 | While this is true today, and we have no philosophical objection to |
| 221 | 200 | it remaining true, we do not intend to limit ourselves to only those |
| 222 | 201 | features that can be created without JavaScript. The mere |
| 223 | 202 | availability of alternatives is not a good justification for holding |
| @@ -257,13 +236,32 @@ | ||
| 257 | 236 | a few of these part-timers are responsible for the bulk of the code |
| 258 | 237 | in Fossil. If you want Fossil to support such niche use cases, then |
| 259 | 238 | you will have to [get involved with its development][cg]; it’s |
| 260 | 239 | *your* uncommon itch. |
| 261 | 240 | |
| 241 | +10. <a id="compat"></a>“**Fossil’s JavaScript code isn’t compatible with my browser.**” | |
| 242 | + | |
| 243 | + The Fossil project’s developers aim to remain relatively compatible with | |
| 244 | + the largest portions of the client-side browser base. We use only | |
| 245 | + standards-defined JavaScript features which are known to work in the | |
| 246 | + overwhelmingly vast majority of browsers going back approximately 5 | |
| 247 | + years, at minimum, as documented by [Can I Use...?][ciu] We avoid use of | |
| 248 | + features added to the language more recently or those which are still in | |
| 249 | + flux in standards committees | |
| 250 | + | |
| 251 | + We set this threshold based on the amount of time it typically takes for | |
| 252 | + new standards to propagate through the installed base. | |
| 253 | + | |
| 254 | + As of this writing, this means we are only using features defined in | |
| 255 | + [ECMAScript 2015][es2015], colloquially called “JavaScript 6.” That is a | |
| 256 | + sufficiently rich standard that it more than suffices for our purposes. | |
| 257 | + | |
| 262 | 258 | [2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt |
| 259 | +[ciu]: https://caniuse.com/ | |
| 263 | 260 | [cskin]: ./customskin.md |
| 264 | 261 | [dcsp]: ./defcsp.md |
| 262 | +[es2015]: https://ecma-international.org/ecma-262/6.0/ | |
| 265 | 263 | [fcgi]: /help?cmd=cgi |
| 266 | 264 | [ffor]: https://fossil-scm.org/forum/ |
| 267 | 265 | [flic]: /doc/trunk/COPYRIGHT-BSD2.txt |
| 268 | 266 | [fshome]: /doc/trunk/www/server/ |
| 269 | 267 | [fsrc]: https://fossil-scm.org/home/file/src |
| 270 | 268 |
| --- www/javascript.md | |
| +++ www/javascript.md | |
| @@ -66,31 +66,10 @@ | |
| 66 | all of this; you can then override UBO’s stock rules as needed. |
| 67 | |
| 68 | [ns]: https://noscript.net/ |
| 69 | [ub]: https://github.com/gorhill/uBlock/ |
| 70 | |
| 71 | |
| 72 | ## <a id="compat"></a>Compatibility Concerns |
| 73 | |
| 74 | The Fossil project’s developers aim to remain relatively compatible with |
| 75 | the largest portions of the client-side browser base. We use only |
| 76 | standards-defined JavaScript features which are known to work in the |
| 77 | overwhelmingly vast majority of browsers going back approximately 5 |
| 78 | years, at minimum, as documented by [Can I Use...?][ciu] We avoid use of |
| 79 | features added to the language more recently or those which are still in |
| 80 | flux in standards committees |
| 81 | |
| 82 | We set this threshold based on the amount of time it typically takes for |
| 83 | new standards to propagate through the installed base. |
| 84 | |
| 85 | As of this writing, this means we are only using features defined in |
| 86 | [ECMAScript 2015][es2015], colloquially called “JavaScript 6.” That is a |
| 87 | sufficiently rich standard that it more than suffices for our purposes. |
| 88 | |
| 89 | [ciu]: https://caniuse.com/ |
| 90 | [es2015]: https://ecma-international.org/ecma-262/6.0/ |
| 91 | |
| 92 | |
| 93 | ## <a id="debate"></a>Arguments Against JavaScript & Our Rebuttals |
| 94 | |
| 95 | There many common arguments against the use of JavaScript. Rather than |
| 96 | rehash these same arguments on the [forum][ffor], we distill the common |
| @@ -139,11 +118,11 @@ | |
| 139 | their engines fast and competitive. |
| 140 | |
| 141 | Once the scripts are cached, Ajax based page updates are faster than |
| 142 | the alternative. |
| 143 | |
| 144 | 3. <a id="3pjs"></a>”**Third-party JavaScript cannot be trusted.**” |
| 145 | |
| 146 | Fossil does not use any third-party JavaScript libraries, not even |
| 147 | very common ones like jQuery. Every bit of JavaScript served by the |
| 148 | stock version of Fossil was written specifically for the Fossil |
| 149 | project and is stored [in its code repository][fsrc]. |
| @@ -152,11 +131,11 @@ | |
| 152 | Fossil and mechanisms like [skin editing][cskin] don’t suffice for your |
| 153 | purposes, you can hack on the JavaScript in your local instance |
| 154 | directly, just as you can hack on its C, SQL, and Tcl code. Fossil |
| 155 | is free and open source software, under [a single license][2cbsd]. |
| 156 | |
| 157 | 4. <a id="snoop"></a>”**JavaScript and cookiers are used to snoop on web users.**” |
| 158 | |
| 159 | There is no tracking or other snooping technology in Fossil other than |
| 160 | that necessary for basic security, such as IP address logging on |
| 161 | check-ins. (This is in part why we have no [comprehensive user |
| 162 | statistics](#stats)!) |
| @@ -213,11 +192,11 @@ | |
| 213 | jQuery to patch over the incompatibilities. Over time, the need for |
| 214 | such libraries has dropped as browser vendors have fixed the |
| 215 | incompatibilities. Cross-browser JavaScript compatibility issues |
| 216 | which affect web developers are, by and large, a thing of the past. |
| 217 | |
| 218 | 7. “**Fossil UI works fine without JavaScript.**” |
| 219 | |
| 220 | While this is true today, and we have no philosophical objection to |
| 221 | it remaining true, we do not intend to limit ourselves to only those |
| 222 | features that can be created without JavaScript. The mere |
| 223 | availability of alternatives is not a good justification for holding |
| @@ -257,13 +236,32 @@ | |
| 257 | a few of these part-timers are responsible for the bulk of the code |
| 258 | in Fossil. If you want Fossil to support such niche use cases, then |
| 259 | you will have to [get involved with its development][cg]; it’s |
| 260 | *your* uncommon itch. |
| 261 | |
| 262 | [2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt |
| 263 | [cskin]: ./customskin.md |
| 264 | [dcsp]: ./defcsp.md |
| 265 | [fcgi]: /help?cmd=cgi |
| 266 | [ffor]: https://fossil-scm.org/forum/ |
| 267 | [flic]: /doc/trunk/COPYRIGHT-BSD2.txt |
| 268 | [fshome]: /doc/trunk/www/server/ |
| 269 | [fsrc]: https://fossil-scm.org/home/file/src |
| 270 |
| --- www/javascript.md | |
| +++ www/javascript.md | |
| @@ -66,31 +66,10 @@ | |
| 66 | all of this; you can then override UBO’s stock rules as needed. |
| 67 | |
| 68 | [ns]: https://noscript.net/ |
| 69 | [ub]: https://github.com/gorhill/uBlock/ |
| 70 | |
| 71 | |
| 72 | ## <a id="debate"></a>Arguments Against JavaScript & Our Rebuttals |
| 73 | |
| 74 | There many common arguments against the use of JavaScript. Rather than |
| 75 | rehash these same arguments on the [forum][ffor], we distill the common |
| @@ -139,11 +118,11 @@ | |
| 118 | their engines fast and competitive. |
| 119 | |
| 120 | Once the scripts are cached, Ajax based page updates are faster than |
| 121 | the alternative. |
| 122 | |
| 123 | 3. <a id="3pjs"></a>“**Third-party JavaScript cannot be trusted.**” |
| 124 | |
| 125 | Fossil does not use any third-party JavaScript libraries, not even |
| 126 | very common ones like jQuery. Every bit of JavaScript served by the |
| 127 | stock version of Fossil was written specifically for the Fossil |
| 128 | project and is stored [in its code repository][fsrc]. |
| @@ -152,11 +131,11 @@ | |
| 131 | Fossil and mechanisms like [skin editing][cskin] don’t suffice for your |
| 132 | purposes, you can hack on the JavaScript in your local instance |
| 133 | directly, just as you can hack on its C, SQL, and Tcl code. Fossil |
| 134 | is free and open source software, under [a single license][2cbsd]. |
| 135 | |
| 136 | 4. <a id="snoop"></a>“**JavaScript and cookiers are used to snoop on web users.**” |
| 137 | |
| 138 | There is no tracking or other snooping technology in Fossil other than |
| 139 | that necessary for basic security, such as IP address logging on |
| 140 | check-ins. (This is in part why we have no [comprehensive user |
| 141 | statistics](#stats)!) |
| @@ -213,11 +192,11 @@ | |
| 192 | jQuery to patch over the incompatibilities. Over time, the need for |
| 193 | such libraries has dropped as browser vendors have fixed the |
| 194 | incompatibilities. Cross-browser JavaScript compatibility issues |
| 195 | which affect web developers are, by and large, a thing of the past. |
| 196 | |
| 197 | 7. “**Fossil UI works fine today without JavaScript. Why break it?**” |
| 198 | |
| 199 | While this is true today, and we have no philosophical objection to |
| 200 | it remaining true, we do not intend to limit ourselves to only those |
| 201 | features that can be created without JavaScript. The mere |
| 202 | availability of alternatives is not a good justification for holding |
| @@ -257,13 +236,32 @@ | |
| 236 | a few of these part-timers are responsible for the bulk of the code |
| 237 | in Fossil. If you want Fossil to support such niche use cases, then |
| 238 | you will have to [get involved with its development][cg]; it’s |
| 239 | *your* uncommon itch. |
| 240 | |
| 241 | 10. <a id="compat"></a>“**Fossil’s JavaScript code isn’t compatible with my browser.**” |
| 242 | |
| 243 | The Fossil project’s developers aim to remain relatively compatible with |
| 244 | the largest portions of the client-side browser base. We use only |
| 245 | standards-defined JavaScript features which are known to work in the |
| 246 | overwhelmingly vast majority of browsers going back approximately 5 |
| 247 | years, at minimum, as documented by [Can I Use...?][ciu] We avoid use of |
| 248 | features added to the language more recently or those which are still in |
| 249 | flux in standards committees |
| 250 | |
| 251 | We set this threshold based on the amount of time it typically takes for |
| 252 | new standards to propagate through the installed base. |
| 253 | |
| 254 | As of this writing, this means we are only using features defined in |
| 255 | [ECMAScript 2015][es2015], colloquially called “JavaScript 6.” That is a |
| 256 | sufficiently rich standard that it more than suffices for our purposes. |
| 257 | |
| 258 | [2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt |
| 259 | [ciu]: https://caniuse.com/ |
| 260 | [cskin]: ./customskin.md |
| 261 | [dcsp]: ./defcsp.md |
| 262 | [es2015]: https://ecma-international.org/ecma-262/6.0/ |
| 263 | [fcgi]: /help?cmd=cgi |
| 264 | [ffor]: https://fossil-scm.org/forum/ |
| 265 | [flic]: /doc/trunk/COPYRIGHT-BSD2.txt |
| 266 | [fshome]: /doc/trunk/www/server/ |
| 267 | [fsrc]: https://fossil-scm.org/home/file/src |
| 268 |