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.

Reply via email to