2 ms·
I apologise for the "weasel words". But to be fair they were in response to this relatively dismissive comment: "Dart and any real-world usage data from it are
by xxgreg 12y ago
I apologise for the "weasel words". But to be fair they were in response to this relatively dismissive comment:
"Dart and any real-world usage data from it are nowhere, while StrongScript is "on" and should generate V8-based data this year."
I'm watching with interest to see how Soundscript turns out. In the meantime, Dart and its tooling has helped me be productive. And I hope you and your colleagues at TC39 are able to bring the same feeling of productivity to ES.
I'm not hugely excited about the casts required in Typescript (and I assume Soundscript) when interacting with the DOM. For example as a developer I don't find it helpful that the following is a static warning:
var input : HtmlInputElement = document.querySelector('input');
A cast fixes the warning, but is pretty verbose and ugly:
var input : HtmlInputElement = <HtmlInputElement> document.querySelector('input');
I believe this was one of the motivations behind the implicit downcasts in Dart. But I will give Soundscript a shot, and see if a sound type system helps me catch more bugs and be productive.
I also wonder how much complexity variance will bring to generics in Soundscript. I believe they are invariant in the initial doc that I saw.
Thanks for taking the time to share your views - I do honestly appreciate it. And I am very grateful that you got first class functions into JS1 - so that we've all had an ok language since the start. Definitely not accusing you of being a slacker.
> I'm still right that this took too long by 5 years at least
I think you overstate your case. But I've used enough of your valuable time already.
It also sounds like you're now happy with the outcome, the Aarhus leadership sidelined, and new people on V8 with views more similar to your own. Go for it - get optional types shipped!
- BrendanEich 12y agoWe're overindented -- thanks for this comment, anyway. I'm not happy with anyone "sidelined", including Aarhus people, even if self-sidelined by too much funding, loathing of JS, and desire to work from a cleaner slate. This was far from optimal or necessary, even if you dig the tooling. Many Googlers agree with me. /be
- BrendanEich 12y agoA Google friend with Polish-American accent pronounces "the DOM" as "the Dumb", and I agree. Don't fret about usability of future DOM APIs in an evolution of SoundScript. I'm 100% sure they can be as sweet as Dart's Dumb, er, DOM. :-) /be
- dargle 12y agoThe way that people are using the DOM: 1) Large interdependent libraries that try to "fix" the DOM (and provide widgets, MVW, etc. 2) The common practice of loading scripts over external domains. This compromises privacy & security and is possible because of the same-origin policy. The DOM is not idiot-proof. But the way that they are using it causes undue problems.
- xxgreg 12y agoIsn't this problem inherent in the Soundscript type system, rather than a problem of the DOM? For example: class Node { ... } class FancyNode extends Node { ... } function createNode() : Node => new FancyNode(); function doStuff(Node n) { ... } doStuff(createNode()); // Static error - developer scratches his head - how do I fix this doStuff(<FancyNode>createNode()); // There I fixed it. But at what cost to productivity. Or perhaps (Not sure how Any<T> works - just guessing): function doStuff2(Any<Node> n) { ... } // Developer - hey what's this Any<T> thing? More head scratching. Is the extra complexity worth it, what benefits does it bring, and what are the productivity costs? Will soundness actually help runtime performance (Not proven). Will it make security harder? i.e. performance optimisations that rely on the sound type system mean that type spoofing can lead to vulnerabilities. I keep on rambling - sorry - I find this stuff fascinating. Fun job you've got ;)
- BrendanEich 12y agoThere's no type error in what you wrote, with or without the cast. But we're way over-indented now. Suggest trying ed-discuss for direct convo with Andreas R. /be