You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _sips/minutes/2018-08-30-sip-minutes.md
+57-37Lines changed: 57 additions & 37 deletions
Original file line number
Diff line number
Diff line change
@@ -51,16 +51,20 @@ Minutes were taken by Darja Jovanovic.
51
51
### Opening Remarks
52
52
53
53
**Jorge** opens the meeting, explains SIP dynamics:
54
+
54
55
Selected batches (proposals for language change in Scala 3) are published on Contributors
56
+
55
57
Community has 1 month deadline to discuss the proposals
58
+
56
59
Committee summarises the comments and discusses during the meeting
60
+
57
61
Decision / voting / postponing the discussion
58
62
59
-
[More in May 2018 minutes](https://docs.scala-lang.org/sips/minutes/2018-05-18-sip-minutes.html)]
63
+
[More in May 2018 minutes](https://docs.scala-lang.org/sips/minutes/2018-05-18-sip-minutes.html)
60
64
61
65
### Summaries of discussions of the First Scala 3 batch
62
66
63
-
###[“Proposal to remove auto application from the language”](https://contributors.scala-lang.org/t/proposal-to-remove-auto-application-from-the-language/2145)
67
+
###[“Proposal to remove auto application from the language”](https://contributors.scala-lang.org/t/proposal-to-remove-auto-application-from-the-language/2145)
**Miles Sabin** summarised discussion on Contributors thread.
@@ -142,47 +146,63 @@ Summary:
142
146
143
147
**Conclusion****Jorge** takes the task to merge the proposals and extend the motivation.
144
148
145
-
**Sébastien**[YouTube time” 14’53’ - 40’10’’](https://youtu.be/gnlL4PlstFY?t=891) summarised discussion on Contributors thread [“Proposal to remove XML literals from the language”](https://contributors.scala-lang.org/t/proposal-to-remove-xml-literals-from-the-language/2146)
149
+
150
+
### [“Proposal to remove XML literals from the language”](https://contributors.scala-lang.org/t/proposal-to-remove-xml-literals-from-the-language/2146)
151
+
152
+
**Sébastien**[YouTube time” 14’53’ - 40’10’’](https://youtu.be/gnlL4PlstFY?t=891) summarised discussion on Contributors thread.
153
+
146
154
Summary:
147
-
In favor of the removal
148
-
Significant language specification weight, as well as compiler implementation. The whole XML spec must be embedded in Scala!
149
-
scala-xml is very complicated, and has serious usability problems
150
-
Adding the extra xml"""...""" shouldn’t be a bother
151
-
For JSX-style support, maybe a jsx"" interpolator could have the same semantics as JSX, rather than that of scala-xml
152
-
Direct language support for XML only existed because string interpolators did not exist back then (supposedly). It seems to be an obviously better design to build on string interpolators.
153
-
Removes XML as a special case. With interpolators, one can embed arbitrary languages within Scala.
154
-
Similar argument: XML should have no higher place in the language than YAML, JSON, etc.
155
-
JSX-style use cases should use ScalaTags-style libraries anyway.
156
-
XML being part of the language is the reason that XML libraries have stalled, and that JSON ones have flourished
157
-
Counter-argument: lib stalling is due to the “symbol”-based translation. A name-based translation would not have this issue.
155
+
156
+
In favor of the removal:
157
+
158
+
- Significant language specification weight, as well as compiler implementation. The whole XML spec must be embedded in Scala!
159
+
160
+
- scala-xml is very complicated, and has serious usability problems
161
+
162
+
- Adding the extra xml"""...""" shouldn’t be a bother
163
+
- For JSX-style support, maybe a jsx"" interpolator could have the same semantics as JSX, rather than that of scala-xml
164
+
- Direct language support for XML only existed because string interpolators did not exist back then (supposedly). It seems to be an obviously better design to build on string interpolators.
165
+
- Removes XML as a special case. With interpolators, one can embed arbitrary languages within Scala.
166
+
- Similar argument: XML should have no higher place in the language than YAML, JSON, etc.
167
+
- JSX-style use cases should use ScalaTags-style libraries anyway.
168
+
- XML being part of the language is the reason that XML libraries have stalled, and that JSON ones have flourished
169
+
- Counter-argument: lib stalling is due to the “symbol”-based translation. A name-based translation would not have this issue.
170
+
158
171
Against the removal
159
-
Difficulty of syntax highlighting
160
-
Shouldn’t be a real issue as long as editors are on board
161
-
The promised XML interpolator was never materialized
162
-
JSX is now in widespread use in languages for front-end development. It is ironic that Scala would drop support for a similar feature now. It is even built in some languages, e.g., TypeScript.
163
-
JSX is simpler than scala-xml, though: no namespace support, in particular.
164
-
For front-end devs looking at Scala/Scala.js, string interpolators will look horrible compared to JSX, and it might be one of those “no-no” things that will push them away.
165
-
Being able to just copy-paste examples from the Net is nice. (8 Likes on this one)
166
-
No one uses XML anymore, right?
167
-
Some answer that they do. Especially in non-greenfield projects.
168
-
Kojo uses XML literals as building blocks for the Storytelling feature.
172
+
173
+
- Difficulty of syntax highlighting
174
+
- Shouldn’t be a real issue as long as editors are on board
175
+
- The promised XML interpolator was never materialized
176
+
- JSX is now in widespread use in languages for front-end development. It is ironic that Scala would drop support for a similar feature now. It is even built in some languages, e.g., TypeScript.
177
+
- JSX is simpler than scala-xml, though: no namespace support, in particular.
178
+
- For front-end devs looking at Scala/Scala.js, string interpolators will look horrible compared to JSX, and it might be one of those “no-no” things that will push them away.
179
+
- Being able to just copy-paste examples from the Net is nice. (8 Likes on this one)
180
+
- No one uses XML anymore, right?
181
+
- Some answer that they do. Especially in non-greenfield projects.
182
+
- Kojo uses XML literals as building blocks for the Storytelling feature.
183
+
169
184
Counter-proposal
185
+
170
186
Named-based XML desugaring: https://contributors.scala-lang.org/t/pre-sip-name-based-xml-literals/2175
171
-
Less complexity in the language/compiler
172
-
Open for library competition
173
-
Compared to a string interpolator, flavors can be implemented using normal library code, without (whitebox) macros.
174
-
Whiteboxness is necessary for xml”””<button …></button>””” to return a more precise type such as `xml.tags.Button` rather than `xml.Node`
187
+
188
+
- Less complexity in the language/compiler
189
+
- Open for library competition
190
+
- Compared to a string interpolator, flavors can be implemented using normal library code, without (whitebox) macros.
191
+
- Whiteboxness is necessary for xml”””<button …></button>””” to return a more precise type such as `xml.tags.Button` rather than `xml.Node`
192
+
175
193
Other ideas
176
-
Can it be a compiler plugin or a macro?
177
-
No, a compiler plugin cannot hook into the parser, neither can a macro.
194
+
- Can it be a compiler plugin or a macro?
195
+
- No, a compiler plugin cannot hook into the parser, neither can a macro.
196
+
178
197
Related links
179
-
Other XML libraries:
180
-
https://note.github.io/xml-lens/
181
-
One in scalaz-deriving: https://gitlab.com/fommil/scalaz-deriving/tree/master/examples/xmlformat/src/main/scala/xmlformat (link behind a login wall, it seems)
Binding.scala, TODO app: https://scalafiddle.io/sf/dGkVqlV/9
185
-
Ammonite script to convert HTML to the VDOM DSL of scalajs-react (a ScalaTags flavor):
198
+
199
+
- Other XML libraries:
200
+
-https://note.github.io/xml-lens/
201
+
- One in scalaz-deriving: https://gitlab.com/fommil/scalaz-deriving/tree/master/examples/xmlformat/src/main/scala/xmlformat (link behind a login wall, it seems)
0 commit comments