addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwchatcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrosseditemptyheartfacebookfolderfullheartglobegmailgoogleimagesinstagramlinklocation-pinmagnifying-glassmailminusmoremuplabelShape 3 + Rectangle 1outlookpersonplusprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

Re: [newtech-1] What's your experience with Node.JS and the supporting MVC frameworks?

From: Ross S.
Sent on: Wednesday, June 19, 2013 3:35 PM
gracefully handled, shaun.

kudos.

On Jun 19, 2013, at 3:28 PM, Shaun Springer <[address removed]> wrote:

I am not sure why you got snippy or why you tried to insult my reading skills, BUT Meteor and Derby are MVVM frameworks, despite them commonly being called MVC frameworks. They support two-way model-view binding, just like Angular and Knockout. That is how MVVM works and is at its core, the fundamental architecture change from MVC.

I haven't used Geddy, or Tower but from the looks of it they are more akin to classical MVC patterns.

You did mention that "Node.JS is appealing since there's a lot of external wait state" which to be fair, I really don't understand, but to me it mean't that your application doesn't require websockets, or constant polling of a server (e.g. not a high concurrency application). 

As you said in latter emails (and I said in my first one), Node is best suited for high concurrency applications. Even if your application required hundreds or thousands of concurrent connections, Node still might be a poor choice. Python, Go, and Lua are all poised to handle similar load (if not more) and the former has a ton of frameworks and community support around it.

I personally would shy away from all of the aforementioned frameworks because they are not battle tested yet, but they offer some serious promise to the node community. Meteor and Derby being the ones with the most funding, and highest chances of changing how we look at web application development in the future. A future I am certainly excited to see.




On Wed, Jun 19, 2013 at 1:17 PM, rburton <[address removed]> wrote:
Shaun, I totally agree that not all the frameworks are MVC; that's why I listed them as "Frameworks". 

Note: Compound.js isn't the only MVC framework. Tower.js, Geddy.js and others are also MVC frameworks. In fact, it'll be easier to name the ones that are not MVC.. Please name which ones are not MVC and I bet you get two (one of which I already named for you.)

My reasons for wanting to use Node.js are poor? I hope you're not making that statement off of my initial e-mail since I didn't provide any detail reasons why I was looking at Node.js. I gave two very high level items. The subsequent e-mails go into more details as to why. My original e-mail was more of a "What frameworks have you used in Node.js". 

I think your reading skills are poor since I never said I wanted to use Node.js for it's MVC and ORM frameworks.

:: Sigh :: the moment you realize why most projects fail.

On Wed, Jun 19, 2013 at 12:58 PM, Shaun Springer <[address removed]> wrote:

Firstly, none of the frameworks you listed aside from compound are actually MVC frameworks. Most of these technologies do way more than just give you an MV* architecture, and a lot of them actually follow MVVM architectures. This sounds similar, but is distinctly different from MVC.

With that said, all the reasons you listed for wanting to use node are pretty poor, ORM and MV* frameworks are ubiquitous. There are way better reasons to consider node...

Node is designed for highly concurrent applications. It can handle tens of thousands of concurrent connections making it perfect for a game and other real-time applications. Additionally node is built on asynchronous evented i/o, which makes it harder for a developer with no experience designing such systems to be successful. This offers vastly different problems to solve than a PHP architecture might have.

Looking at all the frameworks you listed, I think it will be helpful if you list your applications needs first, because picking a library/framework/technology is like picking the right tool for the job. A screw driver simply won't help you hammer a nail into the wall... that is what a hammer is for.

I personally would recommend not using any frameworks to start because from there you will better understand your applications needs, node, and javascript -- if you aren't a strong javascript developer then you will be struggling with node. Using something for asset management and routing should be enough to get you started.

I recommend Express for routing, and Connect-Assets for your asset pipeline. 

If you insist on going down the ORM/ODM path, first understand why you are doing so, because there are a ton of performance considerations to be had. Abstraction is always desired when interacting with a database, but if you have pretty simple models, it might be overkill. Mongoose is a killer ODM for MongoDB, and it handles relationships as well as validation rather elegantly.

I have written about a half dozen modules for node and about two dozen applications in the last two years, so if you want to pick my brain offline, email me personally. 

Also this is a good opportunity to shamelessly plug for my newest open source project, Wraith, an MVVM framework for the front-end written in coffeescript can be found here: http://bit.ly/11iOYUM (direct repo link here: https://github.com/shaunspringer/wraith). It is very much a work in progress, and I will be updating it with two-way model binding, routing, and ajax support for models in the near future.


On Jun 18,[masked]:34 PM, "rburton" <[address removed]> wrote:
Seems like Node.JS still struggles with mature MVC frameworks. Compound.JS has a very nice Rails feel to it, but it comes short on the ORM side. They use JugglingDB which doesn't support things like Many-to-Many.

In a system I'm looking to build, Node.JS is appealing since there's a lot of external wait state which is a great reason to use Node. In addition to that, I plan to use Angular.JS and having a consistent technology stack all the way through is appealing.

Frameworks I have been looking at are:

1. Express - It's not a full blow framework so it won't work.
2. Compound.JS - Falls short on the ORM side. basically hasMany and belongs to
3. TowerJS
4. GeddyJS
5. DerbyJS
6. Meteror

and a few others. None of these really provide nice features at the ORM level.

I'm interested in hearing what frameworks people are using with node.js and what limitations they are encountering.

--
-Richard L. Burton III




--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by rburton ([address removed]) from NY Tech Meetup.
To learn more about rburton, visit his/her member profile
Set my mailing list to email me As they are sent | In one daily email | Don't send me mailing list messages

Meetup, POB 4668 #37895 NY NY USA 10163 | [address removed]




--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Shaun Springer ([address removed]) from NY Tech Meetup.
To learn more about Shaun Springer, visit his/her member profile



--
-Richard L. Burton III




--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by rburton ([address removed]) from NY Tech Meetup.
To learn more about rburton, visit his/her member profile
Set my mailing list to email me As they are sent | In one daily email | Don't send me mailing list messages

Meetup, POB 4668 #37895 NY NY USA 10163 | [address removed]



--
Shaun Springer




--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Shaun Springer ([address removed]) from NY Tech Meetup.
To learn more about Shaun Springer, visit his/her member profile
Set my mailing list to email me As they are sent | In one daily email | Don't send me mailing list messages

Meetup, POB 4668 #37895 NY NY USA 10163 | [address removed]

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy