3 ms·
Related: The levels of Scala knowledge, according to Martin Odersky[1] [1] http://www.scala-lang.org/old/node/8610 http://www.scala-lang.org/old/node/8610
by andr 10y ago
Related: The levels of Scala knowledge, according to Martin Odersky[1]
[1] http://www.scala-lang.org/old/node/8610 http://www.scala-lang.org/old/node/8610
- heavenlyhash 10y ago> Level A2: Intermediate application programmer > [...] > - XML literals nope nope nope nope I'm sorry; I really want to like novel languages, strongly typed language, portable languages, and a bunch of other boxes that scala does check. But stuff like this... what? This may be my most reddit-worthy comment in the history of Hacker News, but sometimes you see a spade, and you just have to call it a spade. Scala has the most utterly bizarre priorities.
- mattnewton 10y agoIs this bizarre, or do a lot of systems work with xml, like rendering HTML pages or reading a legacy api? Is this that different a feature than JSX in react? I am not a scala developer but this seems not out of place for a language that powers web servers.
- heavenlyhash 10y agoA lot of systems work with a lot of things. The question is what belongs in the compiler and core language, and why it's taking up time in my compile step -- this latter question being particularly fair game in the Scala ecosystem, with its almost-legendarily slow compile times. A tool to check that my XML is valid: great! Yes, please! Great; but that's not a language's job. Write a tool for it and invoke it in another step in your build process. Call it a linter because that's what it is: a linter is a process that checks other documents for correctness. Type inference for a language and XML grammar checking don't belong in the same process; they just don't. Only sadness and wasted (human, and machine alike) time can come of it.
- saosebastiao 10y agoCompile times aren't really affected by the language/library distinction. Its not like the compiler is slower even if you don't use them. The compiler would be better without them, sure...but I see that as more of a potential bug surface area problem as opposed to compiler performance.
- dragonwriter 10y ago> Scala has the most utterly bizarre priorities. This is from 2011, and in any case represents knowledge of Scala as it is, not Scala's priorities. In 2012, Odersky, discussing Scala's priorities going forward, pointed to XML literals as a language feature to ax for Scala 3, moving XML handling to libraries. https://groups.google.com/forum/m/#!topic/scala-language/PV4q6O1qIh8/discussion https://groups.google.com/forum/m/#!topic/scala-language/PV4...
- atemerev 10y agoXML literals are now deprecated. Which is too bad, in my opinion, as HTML is mostly XML, too, and they are immensely useful for HTML templates in Scala.js environment (like React's JSX on steroids). Who'd have guessed. I can only hope that thanks to the amazing work of Eugene Burmako, we'll have SQL literals, JSON literals, and whatever else, all properly typed, of course. Now _that_ would be something!
- saosebastiao 10y agoThis is my perspective as well. These things probably shouldn't exist at the language level, but with some thoughtful design, you don't need DSL grammar and type checking in the language. You still can have it in libraries or compiler plugins. The world would be better off, not worse off, having strong static reasoning and compiler enforced safety with the various DSLs we use on a daily basis: SQL, XML, Json, Protobuf, Regexp, etc., all the way down to things like Drools Rules, Datalog, Graphviz, Yacc.