| Drupal at least provides you with a fast prototyping experience. Data fields for everything, and connectors to all kinds of external services, validated in some cases by years of production grade usage. Caching, databases, clustering, high-availability... All solved and mature. The only thing you don't get for free with Drupal is a backend which you can speak to if you're deciding to go the SPA route later on. Which, in my personal opinion, is a pretty stupid trend anyway. SPAs tend to grow to Java Enterprise levels of complexity very very fast, and things break All. The. Time. Not to mention you're putting huge amounts of work to the frontend, where you virtually cannot account for cross-browser behavior, people with multiple-year-old browsers... and people with devices older than two years! Leave a Drupal project idle and unmaintained for a year, and you'll be able to pick up where you left it. Good luck doing the same with an AngularJS SPA - you might get away if you used npm shrinkwrap when you left, but the first npm update WILL kill your code with a billion possible places to fix. Drupal is mature, and maturity is something that the entire Javascript development and tooling community is missing unless you stick to plain jQuery. Stability and reliability IS a thing, especially in enterprise. Go the hipster way when your target audience is hipsters, go the proven, old-school way when your target audience is enterprise. edit: ad maturity of Drupal and support... D6 got released in 2008-Q1 and support ended in 2016-Q1. That's EIGHT YEARS of continuous support and security fixes, and I expect similar if not better support timeframes for D7. Good luck finding a Backbone.js or Ember.js (and maybe even AngularJS) developer in four years from now; not to mention that during the entire D6/7 lifetime backwards-compatibility-breaking changes were a rarity in Drupal when all of the mentioned JS frameworks have had more than their fair share of clusterfucks stemming from bad design. Or just the tooling environment, breaking changes everywhere and (gut feeling) every month there's a new tool to learn or best practices revamped. Wonder why PHP, server-side rendering and SQL is so prevalent? You can rely on buying a solution and having support and developers even in multiple years from now. Enterprise doesn't want ever-changing piles of crap layered in more piles of crap, enterprise wants stability and maintainability. And enterprise is where the money is, not some SV startup only surviving on VC or with 90% of its customers startups only surviving on VC. |
If you want to ever have a safe upgrade path that doesn't involve months of testing then you absolutely need a type system, IMO. The only framework I've felt completely safe doing major upgrades on is Wicket - which, not coincidentally, is the only framework I've ever known to make extensive use of final classes and final methods (Java), to enforce that it's only possible to use it in supported ways.