Thankfully, it's not en either/or situation.
The principle that site designers need to start abiding by is to not reinvent the browser--there's no need to use JS for routing or single page apps. The browser does that fantastically already. All that's needed of JS is to add asynchronicity to pages that need to update state without interrupting a running service.