Fossil SCM

Moved my rewrite of Stephan's "Compatibility Concerns" section of javascript.md down into the Q&A section.

wyoung 2020-08-19 23:45 js-policy-doc
Commit 026279496a4dca9b375d91cda58e6d081f0438c2fd56a5677c3157fc6f55a91f
1 file changed +22 -24
+22 -24
--- www/javascript.md
+++ www/javascript.md
@@ -66,31 +66,10 @@
6666
all of this; you can then override UBO’s stock rules as needed.
6767
6868
[ns]: https://noscript.net/
6969
[ub]: https://github.com/gorhill/uBlock/
7070
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
-
9271
9372
## <a id="debate"></a>Arguments Against JavaScript & Our Rebuttals
9473
9574
There many common arguments against the use of JavaScript. Rather than
9675
rehash these same arguments on the [forum][ffor], we distill the common
@@ -139,11 +118,11 @@
139118
their engines fast and competitive.
140119
141120
Once the scripts are cached, Ajax based page updates are faster than
142121
the alternative.
143122
144
-3. <a id="3pjs"></a>”**Third-party JavaScript cannot be trusted.**”
123
+3. <a id="3pjs"></a>“**Third-party JavaScript cannot be trusted.**”
145124
146125
Fossil does not use any third-party JavaScript libraries, not even
147126
very common ones like jQuery. Every bit of JavaScript served by the
148127
stock version of Fossil was written specifically for the Fossil
149128
project and is stored [in its code repository][fsrc].
@@ -152,11 +131,11 @@
152131
Fossil and mechanisms like [skin editing][cskin] don’t suffice for your
153132
purposes, you can hack on the JavaScript in your local instance
154133
directly, just as you can hack on its C, SQL, and Tcl code. Fossil
155134
is free and open source software, under [a single license][2cbsd].
156135
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.**”
158137
159138
There is no tracking or other snooping technology in Fossil other than
160139
that necessary for basic security, such as IP address logging on
161140
check-ins. (This is in part why we have no [comprehensive user
162141
statistics](#stats)!)
@@ -213,11 +192,11 @@
213192
jQuery to patch over the incompatibilities. Over time, the need for
214193
such libraries has dropped as browser vendors have fixed the
215194
incompatibilities. Cross-browser JavaScript compatibility issues
216195
which affect web developers are, by and large, a thing of the past.
217196
218
-7. “**Fossil UI works fine without JavaScript.**”
197
+7. “**Fossil UI works fine today without JavaScript. Why break it?**”
219198
220199
While this is true today, and we have no philosophical objection to
221200
it remaining true, we do not intend to limit ourselves to only those
222201
features that can be created without JavaScript. The mere
223202
availability of alternatives is not a good justification for holding
@@ -257,13 +236,32 @@
257236
a few of these part-timers are responsible for the bulk of the code
258237
in Fossil. If you want Fossil to support such niche use cases, then
259238
you will have to [get involved with its development][cg]; it’s
260239
*your* uncommon itch.
261240
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
+
262258
[2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt
259
+[ciu]: https://caniuse.com/
263260
[cskin]: ./customskin.md
264261
[dcsp]: ./defcsp.md
262
+[es2015]: https://ecma-international.org/ecma-262/6.0/
265263
[fcgi]: /help?cmd=cgi
266264
[ffor]: https://fossil-scm.org/forum/
267265
[flic]: /doc/trunk/COPYRIGHT-BSD2.txt
268266
[fshome]: /doc/trunk/www/server/
269267
[fsrc]: https://fossil-scm.org/home/file/src
270268
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button