So, I’ve started working with the MEAN stack and I’ve seen that while express promotes the use of jade as templating engine, developers say that you shuoldn’t do any interface work on the server side. While I get the point that ui is for the client and the acutal logic is for the server, how wrong is it to work with jade still? Is there that much of performance difference?
I can’t answer your question but I’m always a bit cautious about advice from anyone who thinks there is an absolute boundary between ‘a client side’ and ‘a server side’. There don’t have to be sides. The client and server processes could run on the same box, which might be diskless and using a remote file server. Is that disk then on the client or the server side?
Think it through, listen to advice from others who know your tech better than me but decide for yourself whether it is sensible, in your context. Not all the ‘experts’ on the Internet know what they’re talking about and that certainly includes me.
Check out this article by Tim Kadlec:
Yeah, that linked article is a good summary of why just doing browser-side rendering is a problem for performance and the associated UX. Particularly on mobile devices, which is a lot of your audience these days likely as not.
Anything that gets trapped by the Request > Parse > Execute > Render cycle can be a problem if you don’t happen to be on a top-end developer machine. Even having cached JS, means you just skip the first step of that. There’s a perf hit on time to interaction, one devs often don’t see.
Do some user testing with actual people on real setups and you’ll see this more clearly. We actually integrated with a competitor’s API recently, our plain old server-created HTML solution is orders of magnitude faster to use than their Angular-based client side solution. Users notice that speed and have a better reaction to the app.
These things always vary though. It depends what your site does and how it’s used. Nothing is absolute. It is worth checking if your setup can do a server-bootstrapped render, isomorphic is a keyword to look for.