| All these arguments seem like lowly excuses to not do proper work and instead blame the framework you are using.
If you have any kind of interactiveness the feel of a fat client is so much better then template rendering. Look at the site:
https://sourcegraph.com/github.com/tomchristie/django-rest-f...? Is that the best interface you can get?
In 2014 everything I click reloads the page? a tabbed interface that doesn't load the content in the window is noticeable by users these days.
No pop ups of any kind? why do I need to reload the page to see a list of 4 contributers.
You've gained maintainability at the cost of user experience, a lot of user experience for very little maintainability. There are sites that benefit little from client-side rendering- blogs and news site for instance, but most will gain a lot. 1) Indexing with PhantomJs is a breeze, truely. Not only are there a ton of libraries that already do it, there are even SAASes that will do it for you for a fee.
If you are really unable to come to terms with this, you can use react.js, which solve the SEO indexing issue completely. 2) If the only thing that you are doing on the site is measuring page loads then your site either lacks interactiveness completely or you aren't measuring everything you should.
You aren't measuring to where a user left your site (and incredibly important metric) or any action he does (assuming there is any he can do) that isn't navigation. With Angularytics (and a thousand other libraries) adding analytics is maybe 5 lines of code, and you get declarative analytics on any link you want. 3) This site's js is neither minimized nor concatenated, so I'm not sure what build tools you need for angular either then the ability to serve static content?
But in any case it's js, you are going to need to minimize and concatenate it at some point for performance, doesn't matter if you use a fat client or some custom jQuery plugin.
Even with Grunt, though I don't like it very much, the build file is maybe 10 lines long, and the build process takes miliseconds. 4) And the alternative is what? using manual QA on every build? You have a website with even minimal interactivity you are going to need to use a browser based testing solution.
Karma is a breeze, and with the new setup, the only thing you need to install is node and karma. Takes exactly 3 seconds, and you get one of the best isolated unit testing framework for client side code.
Angular is actually built around the ability to unit test it. 5) So your saying that the solution to slowness is to have 43 unique resources loaded and rendered on every navigation? Page reload slowness is one of the major hassles that Ajax, and fat clients as a consequence, are trying to overcome.
Your site takes, to me, about 3 seconds to load from page to page (6 seconds to finish rendering), there is obviously no wait time indicator that you can add and no tricks to minimize this.
Not to mention that rendering is slow, and server-side rendering is not only extremely slow it can also cause parallel load which will make things worse.
If you don't care about your speed it doesn't matter what framework you use. For the sake of this you are losing interactiveness, speed and lower bandwidth to name just a few. |