How would you guys feel about switching from Express to Sails? It's built on Express but with modeling as well. I need to look into it more, but just putting it out there.
bookzombie
[bookbrainz-site] LordSputnik pushed 2 new commits to master: http://git.io/p6LK
bookbrainz-site/master e156e0e Ben Ockmore: Fixed errors in relationship editor caused by missing ko field, and copy/pasted code from another form.
Leftmost
Hmm. We could just pull in Waterline from Sails.
Freso
I think we should just go with Oars.
Ben|Nexus joined the channel
Ben|Nexus
Leftmost: yes let's switch to sails
It looks like it does lots of things right, and we'll be better in the long run
We'll want to swap in gulp for grunt though - let's talk more about switching at the meeting
LordSputnik, oh dear. I am sad to hear that he has died.
Freso
I wouldn't be against him as the first row in the database, as a tribute.
(Well, I'm just assuming it's Pratchett.)
Leftmost
Freso, we'll be holding a vote for that, but such tributes are perfectly valid reasons for nomination. :)
LordSputnik, do you know enough about sails to know what it brings above express + waterline?
Freso
I know you will.
Leo_Verto
I don't really have that much node experience, but I'm kinda feeling like this dependency stuff is getting kinda overboard, we recently switched to gulp and now going back to grunt is being talked about. Now throwing express overboard and going with something else is being discussed again...
LordSputnik
Leo_Verto: no, the point I was making earlier is we'll need to tweak Sails to use gulp
But Sails is pretty good, it can handle all of the front end compilation when we launch it
It also uses express, so all of our code will require very little modification
From the test I did earlier, it seems to be fairly easy to set up, even with gulp
The main thing is, I feel like we'll end up implementing a lot of the stuff in Sails ourselves if we don't use it, which would be a waste of time
Oh, and it has built in support for multiple languages, apparently
The whole point of taking some time right now to stabilize the base is to figure out what we need to throw away and what we should keep so that we're not trying to do this once we've started collecting data.
LordSputnik
It's better that we structure the app in the best way now, so that we don't end up with 20 different root directories, each with 20 subdirectories containing mixtures of filetypes for various purposes like MusicBrainz has
Leftmost
One of the reasons I suggested sails is because we wouldn't have to throw the baby out with the bathwater.
LordSputnik
It can also do nice things like precompile our Jade templates
Leo_Verto
hmm, jade caching does sound like a good idea
Leftmost
It also gets us data models, which prevents me from having to write them.
One thing I noticed was that it talks about being a "backend" framework rather than a "frontend" framework. I don't know what the hell that means, but okay.
Leo_Verto
o_O
Leftmost
Hmm?
Leo_Verto
that's kinda weird, maybe just people using a different definition of "backend"
Leftmost
The docs suggest that it's best used for REST APIs and whatnot instead of requests.
LordSputnik
It means "server-side" rather than "client-side"
It can be used for REST APIs, or serving HTML, just like express can
(since there's no real difference between those two anyway)
Leftmost
LordSputnik, no, they don't mean server-side versus client-side, they mean HTML UI versus REST. Which is why I am confused about it.
Okay, some notes on sails looking through their "concepts" page: there seems to be a certain amount of migration baggage that we would have to undertake, whether we choose to do things our way or the sails way, since it prefers to expose its own controller objects rather than the express router.
LordSputnik
Leftmost: "A "back-end web" framework helps you do things like build APIs, serve HTML files, and handle hundreds of thousands of simultaneous users. Sails is "that kind" of web framework."
"Sometimes, when we refer to the "web", we mean the "front-end web." We think of concepts like web standards, or HTML 5, or CSS 3; and frameworks like Backbone, or Angular, or jQuery."
Leftmost
LordSputnik, perhaps I misread that, then.
It also has some additional baggage that I don't think we really need, like their middleware stack thing, which appears to be sugar for app.use(), and kind of annoying sugar at that. The two things I see us needing from it would be models and i18n, both of which it handles with external libraries.
(waterline and i18n-node, respectively.)
LordSputnik
I kinda liked its middleware configuration thing
I think it'll be easier to use it all together than take parts of it and bolt it on to what we have
Leftmost
I don't think we'd be bolting, really. We'd use it in much the same way we'd have to use it with sails without really any additional work, as far as I can see.
Their i18n module also appears to use custom JSON files instead of a standard format like PO.
LordSputnik
JSON for translations isn't that bad, it's what I did for waveplot
Leftmost
It's bad in that I can't use any of my standard translation tools to do the translation work.
I'd much rather we use a gettext-based lib.
LordSputnik
Ok, I'm sure there are others
Perhaps let's just user waterline for now then
Leftmost
A quick google came up with node-gettext, which looks workable.
LordSputnik, I think that makes the most sense. Worse comes to worst, I think that we'll be able to switch to sails without too much difficulty since we'd still just be using its ORM.
I think I'm just wary of using solutions that try to do too much for us, since my experience with such solutions has been that I typically want to do things differently.
One of the guiding principles I want to propose also is to, as much as we can, avoid relying on any one technology. A better one always comes along, and I think MB has struggled a fair bit from that sort of reliance.
LordSputnik
Leftmost: Ok, let's talk more about that tomorrow, I have to go now
Leftmost
Alright, works for me.
See you tomorrow.
LordSputnik has left the channel
bookzombie
[bookbrainz-site] leftmostcat pushed 1 new commit to master: http://git.io/pD7O
bookbrainz-site/master 0f1a860 Seán de Búrca: Set configuration based on environment
Ben|Nexus joined the channel
Ben|Nexus
Hey, just came back to say, I'm not convinced waterline will be as suited to defining models as backbone - waterline doesn't seem to be aimed at using a web service, while backbone is
Leftmost
LordSputnik, I don't think there would be any issue at all with using a REST adapter for it, whereas backbone would pull in a whole lot of other stuff we don't need or want.