I'm on HN as an individual, as I was before I joined Google. My intention when I post here is always to share my personal point of view, which now happens to include a lot more information from inside this company that I work for.
I'm not here to "convince" people to use Dart. That will only happen because of it's utility to developers, and I'm more than fine with slower organic growth if it develops more from actual problems being solved, and less from hype. If anything there's a ton of anti-hype around Dart, so it has a lot to overcome with some people even if does address their problems. Such is life.
I'm pretty sure there will be such an explicit commitment to Dart communicated externally, but since I'm speaking for me, and since the question at hand had to do with what would happen _if_ Dart were canceled I addressed the hypothetical situation. Maybe a PR departments would have danced around that and simply said, "we're committed to Dart. Next question", but I'd much rather dig in say that we're committed, but sure, "what if". To me that's a real discussion, not a rhetoric, not a pitch.
As for my tone, can you imagine what it's like to have the company you work for called "evil" because they shut down a RSS reader or move away from using XMPP in their chat app? Or that you can't rely on Google because of the Reader shutdown, or the price increase on App Engine when it came out of preview. I hardly agree with every things Google does, but the hyperbole surrounding it is incredible. Not every product that any company makes will be successful, not every product can be kept alive indefinitely. Google receives an inordinate amount of flak for it's changes, mainly I think because we have so many products that it's easy to keep seeing a small fraction of them change it's still seems like a lot because it's all under Google. Meanwhile there's multiple instances a day of some other companies products changing, or shutting down, or being bought to be shuttered later, but because they're spread out over many brands. The recent constant chime of "evil" and "unreliable" is so often drawn on really warped and rushed comparisons that don't make sense if just a little thought is put into analysis, so yes, it gets really old, to me, personally.
Not only that, it could cause a "the sky is falling" perception of communities like HN. This is a real concern of mine because many times there are legitimate points here and several of us like to represent them back into the company. If HN reflexively interprets everything that Google does as evil and bad, it becomes harder for the Google members of the community to go internally and say "this isn't being received well, is there room for improvement?". We haven't reached that point yet, but it's something I worry about. The reaction to the "no servers on Fiber" rule is the type of thing that several of us try to represent back to the company. I, and many Googlers, respect the hell out of this community, but the more ridiculous the FUD and conspiracy theories get, the more the reputation erodes. I don't want to see that happen, so I actively combat it when I can, by trying to dispel the falsehoods, and also by chiming in when I agree with some of the negative sentiments. But yes, it gets really, really old.
"...my personal point of view, which now happens
to include a lot more information from inside this
company that I work for. ... "
More like you are sharing your personal view, having drunk the Kool-Aid.
You said Dart VM is free and can be added to any browser -- except it has deep roots into the Chrome code so this is a ton of work to do (global garbage collector between Dart, JS, DOM for instance).
You said you "ensure that programs behave the same in dart2js and the VM, and that the JS output is very fast" when dart2js doesn't support big integers or operator overloading on any numbers, among other differences, and it's ~30% slower than normal JavaScript (is much slower than TypeScript code for instance).
Dart designers have for a year now knowingly lied about dart2js DeltaBlue benchmark performance (they optimized DeltaBlue when porting it to Dart, then compared the optimized version back to the original JS). For me, I would never use a product who's designers lie to me about it.
can you imagine what it's like to have the company you work for called "evil"...
I really can't. When I work for a company it doesn't become part of my Self, and I don't feel the need to spin its actions to make them look positive. If it's a company that 'does know evil' then get out, or get over it.
Remove OrderedCollection from JavaScript or add it to Dart, then compare. This extra level of indirection on every container is very costly in V8 and Ion. At least four of your coworkers are aware of this. They should have communicated it to you a long time ago.
> This extra level of indirection on every container is very costly in V8 and Ion.
It is very costly only if JIT is particularly bad at eliminating redundancies. Crankshaft is not and (I hope) neither is IonMonkey.
If you try removing it yourself from JavaScript version and replace every new OrderedCollection() with [], .add with .push, and so on then you will discover to your amazement that resulting code became 7-10% slower on V8 [try it, I am not joking :-)]
Now if you replace [] with new Array() then you get code that overall is 3-5% faster on V8. That is about how "costly" this indirection is.
Overall it seems that this is irrelevant in the large picture of things: Dart VM is around 195% of V8, dart2js is somewhere around 100%.
I do agree however that this OrderedCollection looks completely out of place and it is not clear to me why it appeared in the original JavaScript benchmark code at the first place. It is not idiomatic.
> you will discover to your amazement that resulting code became 7-10% slower on V8
I found both V8 and Ion to be >10% faster using array. I no longer have the results but IIRC it was 11% for V8 and 14% for Ion on i7 (ivy bridge). I moved remove() from OrderedCollection to Array prototype. Perhaps you made some other change.
> Overall it seems that this is irrelevant in the large picture of things: Dart VM is around 195% of V8,
There are 3 benchmarks. That is not enough data to say anything meaningful about Dart VM performance.
> dart2js is somewhere around 100%.
How can dart2js results be compared to the original JS if the data structures used are different? It makes no sense.
I tried with both global remove and remove on the Array prototype.
V8 has recently improved DeltaBlue score by, I think, ~6% so it can be that before this improvement OrderedCollection overhead was more noticeable. (some of that improvement comes from tweaks in the inlining heuristics AFAIK).
> There are 3 benchmarks.
I was stating performance numbers for DeltaBlue only. Sorry for not being clear.
> How can dart2js results be compared to the original JS if the data structures used are different?
Substract 5%. dart2js is around 95%. Does it make sense now?
HN is a mix of serious complaints and trolling, and it's often difficult to separate the two just by reading what's written on the page.
Ultimately, everything everyone does can be considered evil. Plant a tree? That tree is turning CO2 into oxygen that a murderer will one day breathe. How could you aid and abet a murderer like that? You're evil!
Maybe Google will someday be truly evil, but you don't have to make that decision now. Ultimately, you're deriving income and enjoyment working on a programming language that will improve software engineers' ability to produce high-quality computer programs. The language, libraries, and discussions are open for anyone in the world to participate in. You're not doing anything wrong, and you shouldn't have to justify your actions to anyone but yourself.
I think the real criticisms of Dart boil down to: "I don't want to learn a new programming language, and if some random crackpot was making Dart, I wouldn't have to. But with Google's engineering prowess behind the project, it's probably going to be popular, and I'll have to learn it. Better kill it while I still can."
Really, that's a completely reasonable reaction to a new technology. If the new technology replaces the old technology, it means someone invested in the old technology loses everything: their reputation in the community of programmers, their familiarity with tools and libraries, and everything they've ever done with their life as a programmer. That's pretty scary, so there's going to be resistance on programming forums when you suggest a new way to do things, and I think that's what this thread has devolved into. FUD is a good way to make other people emotional, and there's safety when other people share your views. Doesn't mean the views are correct, however.
You believe that anyone critical of Dart is deliberately trying to sabotage it because they are too lazy to learn another language ? Give us a break with this ridiculous drivel.
I am critical of it because I am sick of companies coming up with their own proprietary technologies and trying to force it as a defacto standard. It hurts developers. It hurts consumers. It has real economic and productivity costs. It undermines the fabric and stability of the web as a platform for humanities' information.
Google, Microsoft, Mozilla and Apple have a responsibility to work together to create open, widely adopted standards. And they all deserve criticism when they deviate from this.
"Coming up with their own proprietary technologies" - Considering Dart is completely OSS and is being developed in the open and has a goal to standardize the language after its release, by "proprietary" I'm assuming you mean it was actually realized and physically developed by engineers and sponsored by a Company?
Dunno, wanting standards is one thing, but I don't think it would result in these long rants. I have to think they're motivated by fear, and I'm only speculating as to what that fear is.
You're saying the reputation of the hacker news community is weakening in the eyes of Google because they're losing trust in Google based on the company's actions?
I think he's saying that Google gets negative a million HN points for everything bad they do, and zero points for everything good they do. I've certainly noticed this, but people are programmed to react to controversy and sensationalism, so I'm not surprised to see controversy and sensationalism highly-rated on HN. Just a little sad.
Reddit is the same way, but at least people on Reddit don't take themselves so seriously.
This is just plain nonsense. Go and AngularJS are two of the most popular technologies on HN. And I can't imagine anyone not believing Google's DB work (BigTable, BigQuery, Dremel) for example is anything but impressive.
Go was pretty much bad received when it pops over here..
after a long and difficult road, its receiving its deserved momentum
But unlike Go, Dart is in the web terrain.. things will be much more difficult.. because there are much more people married with javascript .. and the fanatism and emotional reaction is much worse
I see lots of negativity in Go and AngularJS articles, too. And most of these articles never make it to the front page, while these rants get instant upvotes. Certainly, there is a happy silent majority, but that is much harder to measure and react to than constant angry hate.
> can you imagine what it's like to have the company you work for called "evil" because they shut down a RSS reader or move away from using XMPP in their chat app?
I worked for EA for 7 years. We were called evil for every reason under the sun (Day 0 DLC?! EVIL!).
One of the best jobs I ever had, and never responded in public to threads like this. FWIW, I avoided the forums were I would read them. Not worth it.
I'm not here to "convince" people to use Dart. That will only happen because of it's utility to developers, and I'm more than fine with slower organic growth if it develops more from actual problems being solved, and less from hype. If anything there's a ton of anti-hype around Dart, so it has a lot to overcome with some people even if does address their problems. Such is life.
I'm pretty sure there will be such an explicit commitment to Dart communicated externally, but since I'm speaking for me, and since the question at hand had to do with what would happen _if_ Dart were canceled I addressed the hypothetical situation. Maybe a PR departments would have danced around that and simply said, "we're committed to Dart. Next question", but I'd much rather dig in say that we're committed, but sure, "what if". To me that's a real discussion, not a rhetoric, not a pitch.
As for my tone, can you imagine what it's like to have the company you work for called "evil" because they shut down a RSS reader or move away from using XMPP in their chat app? Or that you can't rely on Google because of the Reader shutdown, or the price increase on App Engine when it came out of preview. I hardly agree with every things Google does, but the hyperbole surrounding it is incredible. Not every product that any company makes will be successful, not every product can be kept alive indefinitely. Google receives an inordinate amount of flak for it's changes, mainly I think because we have so many products that it's easy to keep seeing a small fraction of them change it's still seems like a lot because it's all under Google. Meanwhile there's multiple instances a day of some other companies products changing, or shutting down, or being bought to be shuttered later, but because they're spread out over many brands. The recent constant chime of "evil" and "unreliable" is so often drawn on really warped and rushed comparisons that don't make sense if just a little thought is put into analysis, so yes, it gets really old, to me, personally.
Not only that, it could cause a "the sky is falling" perception of communities like HN. This is a real concern of mine because many times there are legitimate points here and several of us like to represent them back into the company. If HN reflexively interprets everything that Google does as evil and bad, it becomes harder for the Google members of the community to go internally and say "this isn't being received well, is there room for improvement?". We haven't reached that point yet, but it's something I worry about. The reaction to the "no servers on Fiber" rule is the type of thing that several of us try to represent back to the company. I, and many Googlers, respect the hell out of this community, but the more ridiculous the FUD and conspiracy theories get, the more the reputation erodes. I don't want to see that happen, so I actively combat it when I can, by trying to dispel the falsehoods, and also by chiming in when I agree with some of the negative sentiments. But yes, it gets really, really old.