I’m developing a high-performance site using Node.js and in parallel I’m investigating Dart (on the server-side). First of all, it’s a Google project, so it could be dropped at any moment. It’s open source so without any Google involvement it could certainly form a community and thrive without any Google involvement. It has some very nice features that are ostensibly focused on developer productivity and testing. It makes sense that any *new*language would align to modern workflows and patterns. I think Dart aspires to that goal.
With Node.js and the patterns evolving from a single client/server language that is universally installed in the client I feel that same value proposition is core to Dart—except that it does not appear it will be adopted universally in the browser clients. That’s the major issue. Do we really want to be developing Dart on the server and JS on the client? Is the JS produced for the client by Dart something we want to support? Developer productivity and modern workflow patterns aside, what sort of performance advantages does Dart offer? Does the coding syntax reduce the possibility of error compared to js? Does it compile down to more efficient byte code? Does it take advantage of multi-core CPUs better than other languages? A fair and forensic comparison to Node.js may reveal an advantage here or there but I would say you’re going to need an order of magnitude improvement over what’s possible with Node.js to catch a fire. What happens if Intel optimizes a CPU and supporting chipset around Javascript execution and immediately the performance of all js programs increases by an order of magnitude? You may argue that they have not done that for other languages, but js is consumer-facing, so js optimization by chip makers would result in noticeable performance improvements in the devices on hand and desk. I like many of the features of Dart, but I’m hard pressed to find anything that is ten times better or faster than Node. I don’t see a ten time reduction in the amount of typing. I don’t see ten times fewer errors per thousand lines of code. There is absolutely nothing wrong with Dart and I think it is a very modern language with great features but, again, it’s not 10 times better than Node from what I see. I would consider Node as a growing teenager and rebel and that’s what makes it great. The community is experimenting and mixing conservative and radical patterns. The bottom line, to me, is bang for the buck and compared to other server-side languages I’m holding ten times the load on the same amount of hardware. Dart looks like it will provide similar performance and I intend to monitor the project closely. Kind regards, John From: [email protected] [mailto:[email protected]] On Behalf Of Pat Monardo Sent: Wednesday, March 05, 2014 9:23 AM To: [email protected] Subject: Re: [nodejs] node vs dart I agree. What was driving my thinking was that I was not buying that Dart on the server is a smart thing at the moment and ruminating on some things I'd need to see to agree that Dart is a smart move today. It's going to take a lot of politically sensitive moves on Google's part and I am not certain they quite know what Dart on the server means. For me, it means Mongoose.DART and Express.DART -- that would get my attention. A native MongoDB driver is just a start on what Gogle needs to do. In the meantime I looked at the code for Node 0.12 and my gosh already the --harmony- flags are looking pretty powerful. I can only imagine a couple more flags until there is --harmony-dart turns on the whole shebang. Also -- I looked at browserify and it does look like a global optimizer for JS of sorts. I was disappointed when I read that ES6 would not get library and module features -- now it looks like it will. So the next version of V8 from Google pretty much has to be feature complete. I will look into that soon enough. So I think Google's Polyfill and the raw talent of the community is making sure that Modules and Libraries come to ES6 -- and the global optimizatin pass before sending code down to client probably will become standard. so the module ordeal will be a thing of the past soon I think. Just an update on what this looks like. I dont think Node people are worried about --harmony-dart really. I left computing after learning Apache Java stuff. There is still a need for high powered App Servers it seems to me. I need to see what is going on there. What is an App Server in the modern JS sense -- Node can participate there no doubt. But new Express Components work is important and Mongoose middleware....I view Keystone as sort of a top-level master controller that helps me join mongoose an express. Node tooling is way ahead of Dart -- that is my conclusion and lots of work is still needed. On Wednesday, March 5, 2014 2:10:58 AM UTC-8, greelgorke wrote: well. first: express and mongoose are not node, but node-based 3rd party libs. Node.js has the advantage of the big and fast growing ecosystem of 3rd party libs. This because of Javascript and Nodes module system. And NPM. This i don't see in Dart environment. second: there is no competition. Node.js is an open source project, free to use and to contribute. Noone force you to use it. noone has financial interesst in domination or market share (though there are interests in successfull further development and maintainance). There are other Node-like tool already. Vertx on jvm, Luvit with lua, python and ruby has it's on async i/o approaches. also you can use something different on top of node, like Coffeescript. IF Google want to push Dart, they'll do, and nothing will happen with Node itself. If Dart become eventually such a huge thing, then so be it. Am Dienstag, 4. März 2014 17:56:15 UTC+1 schrieb Pat Monardo: Good points! I have real concerns though. I dont think it is in nodejs's interest to be first mover on Dart. If I cared enough, I would be watching Chrome, certainly they need to define "V10" not Node. Node can rightly point allegience to JS not Dart. However if Google is the one talking up Dart on the Server then I think Node needs to be concerned. As a JS user, Node does need to worry about servicing *Me* or rather *My Apps*. I now lean toward expecting competition and I expect Google to easily dominate -- if they aren't blinkered. I mean, wow, for one person to be able to have such a dramatic impact on JS world. The competion being over services to JS app builders in toto, then I have issues with Node's approach to JS -- it is non-trivial requirement. I dont like being "Node-Locked' and I dont think Node's module system is the right approach. So Dart could easily win -- if they do the right thing. It seems to do the right thing they need to promise that Mongoose.DART and Express.DART will exist. So Google doesnt do that they wont win (easily) it seems They do have a Native MongoDB driver. So their next move is important. If they dont move the middleware, they will be chosing to compete with Node -- otherwise I dunno. I cant see into Google's plans...google doesnt even have to win -- maybe we need to get past that thinking. just do the right thing -- what is that? On Sunday, March 2, 2014 11:55:59 PM UTC-8, greelgorke wrote: Ryan Dahl built node.js as a tool for fast server implementation. since v8 was the fastest at the time and it's open source, and it can be embedded, he used that. nothing to do with google. Node is not about languages. it is a tool for serverside js. I don't think Node will change any time soon. And Dart still need wider adoption. i think Rick is right, Dart will never replace js in the browser (unless all major browsers adopt it natively or Google drives them out of market) so Dart will be a niche as many other do. Node was never meant to go to Browsers, though there are tools and platforms which targeting this. I, personlay, dont think Dart is worth the effort to consider. but better profiling and monitoring, memory management and stability is definitly things to do in node. Am Sonntag, 2. März 2014 15:41:51 UTC+1 schrieb Pat Monardo: Mad advice for future of NodeJS: NodeDART. The reasons are: 1. I have looked at both source repos. Dart is a much higher quality code than V8. 2. But not far enough away from V8 that Node couldnt fork it and call it V10 3. Have a Long Beta cycle and incorporate V10 into NodeJS while staying at 0.10.x but name first release of Node Node V10 4. People will think what is this new Node thing, it is at V10 must be ready for prime time 5. The JavaScript optimizations have to irresistable. You have to bring global code analysis and tree pruning to the Node ecosystem 6. Embrace the Client and use Google to bring your ecosystem into the client 7. Compete in a non-evil way with Google I dont know. I dont understand the origins of Node! Did Google promote V8 on the server or was that just something that happened? On Sunday, March 2, 2014 6:23:42 AM UTC-8, Pat Monardo wrote: http://browserify.org/ I knew that. But I am questioning that. I have not explored the above link but I think that is the answer. I dont think it is in Node's interest to not "compete" in the so-called client / browser space. But moving into Browser space is also in a sense moving into Dart space. However, server world does not work that way. It is about sanity and it would require a lot for dart to make that type of platform appealing to confidence and availability. I think it is Google's interest to promote true Dartification like AngularDART and such. Sure Dart will have a MongoDB client if it doesnt already. It is interesting to see how Node reacts to dart -- I mean, Dart is as open source as V8....ummm will they reimport next gen language vm? On Sunday, March 2, 2014 12:42:48 AM UTC-8, ajlopez wrote: I don't know about Dart VM on the server. But you must know something: Express is bundle as Node.js package, and uses Node.js packages. All Node.js packages are strongly based on Node implementation of require('module') So, all Node ecosystem are Node package, that, in general, cannot run in other system that has no require function or a different implementation semantic. A interesting twist, is Meteor. It run a Node.js, but it modified the package system, to use another ecosystem (there are more details, like the use of fibers, but good enough for this discussion, you have a mixed of implementation and ideas) Then, to run Express on Dart VM, you must find a way to reproduce Node.js require semantic. Angel "Java" Lopez @ajlopez On Sun, Mar 2, 2014 at 3:16 AM, Pat Monardo <[email protected] <mailto:[email protected]> > wrote: This is sort of twisting my mind a bit. I could have Dart VM on the server. OK. Dart could run Express? Why not? There is browserify? see, that's twisting my head a bit. I guess I can just try it ... ok well I am not good enough ...lol..seriously ok I could run Express Keystone and Mongoose? in Dart VM. That machine optimizes JavaScript. And Dart VM could interface into the whole "web of things" handling everything. so it could move the web into a strange direction if it can handle through its metaprogramming the entire distribution machinery of proxies and whatever.... On Saturday, March 1, 2014 9:55:16 PM UTC-8, Pat Monardo wrote: Hmm. OK. I need to make progress here. Lets say I am running KeystoneJS as a Mongoose client on one side and a Dart client on another. I can have Dart on the Server handling express render()s. so my view engine would be Dart. Dart can call into JS so I can run special purpose thingies in the Dart VM using Angular as View Control. Angular.Dart even hmm. OK so Jade could run in Dart under Angular Control if that makes sense. It sort of does because I dont like <> and even Angular weird ng- x-data- ng barf stuff. I can code pure Jade have Angular compile the Jade itself and handle sophisticated Dart->"Chome Web App" interface with smart proxies hiding the server/client bridge what do you think? On Saturday, March 1, 2014 7:38:58 PM UTC-8, Rick Waldron wrote: On Saturday, March 1, 2014, Pat Monardo <[email protected] <mailto:[email protected]> > wrote: Struggling to understand these two technologies and I do enjoy both very much. My question is, do these guys compete? Is dart on the server going to be 'node-like' ? I admit I have been studying Angular more than Dart which is why I am interested by the talk recently (for me) of Dart on the server. Thanks! Generally speaking, Node.js is a platform for writing servers and services in JavaScript. Angular is a framework for writing web applications in JavaScript. Dart is a programming language that can be compiled to JavaScript. Dart purports to, but never will, replace JavaScript in the browser. Dart on the server is a much smarter strategy for an emerging language and platform. Learn them all, there is no reason no to. Rick -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:[email protected]> For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]> . For more options, visit https://groups.google.com/groups/opt_out. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:[email protected]> For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]> . For more options, visit https://groups.google.com/groups/opt_out. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:[email protected]> For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]> . For more options, visit https://groups.google.com/groups/opt_out. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
