Atila | Scholarships Automated. The Right Way.
Hey everyone,
I wrote a blog post on how our startup atila.ca chose and built our tech stack and some advice on how to choose a tech stack for your startup.
Our team is all students and most of us started programming just 2 years ago so we'd also love to get your thoughts on our stack and advice on how we can improve.
"Choosing Angular as our front end framework is essentially a bet on the jockey and not necessarily the horse."
Personally I think that's the exact opposite of where you should be placing your bet.
Google will be a successful company for years and years, and they will probably always push some framework. But that framework won't always be Angular: just look at how they already abandoned Angular in favor or Angular 2? 3? 4? You can also look of the corpses of other failed web tech from Google (eg. Dart, Google Gears, GWT, etc.).
In other words, betting on Google in no way ensures the future of your technology stack. Quite to the contrary, the company has a history of leaving people who made the same bet as you hanging out to dry.
Just to be clear, I'm not hating on Angular or judging it from a technology standpoint. I just think the logic of "it's from a big company and therefore is safe" is deeply flawed logic for any company, but especially one like Google who has shown they are perfectly willing to abandon their own technology (and anyone using it).
If you want to justify picking Angular you should instead use something like its marketshare/mindshare (https://insights.stackoverflow.com/survey/2017#technology-most-popular-technologies--of-professional-developers2).
Yeah, I see where you're coming from. Though I did add this caveat to the blog post:
"Angular is a framework and not a library, so it has a very opinionated way of doing some things. While the Google/Angular team is very competent and generally very supportive of the developer community; frankly, we would still rather let the open source community decide the best way to build certain things than follow the edicts of one company."
Yeah newer developers don't remember or never been bitten by GWT and what a disaster of a framework that was. My bet is firmly on the horse because you actually have to ride the horse every day. And if we are betting on horses then i'll put all my money on vue.js. I think a lot of people who jumped on the React bandwagon who grow really complex apps will regret it in a couple of years. If a UI framework hasn't been around at least 5 years then there won't be enough stories out there of what it's really like as a tech stack choice and all the baggage that comes with it. React blew up cos it offered components which is a step in the right direction and people jumped on it because of the jockey Facebook is a big name. However it was made at Facebook by Facebook for Facebook and when you don't have their engineering challenges or their engineering talent then the incentives to use React are very likely missaligned for you. In your case I think Angular is a better choice than React but I would really rethink your reasoning behind it. vue.js has blown up crazy because it brings the latest and greatest thinking about UI frameworks but without being crazy over engineered to Facebook level.
Anyway just my 2 cents.
I'm interested to know why you think Angular is a better choice for us than react?
Also, I guess my point is that there are pros and cons tradeoffs of using "big company approved frameworks". See my reply to @machineghost above, a paragraph from the blog post:
"Angular is a framework and not a library, so it has a very opinionated way of doing some things. While the Google/Angular team is very competent and generally very supportive of the developer community; frankly, we would still rather let the open source community decide the best way to build certain things than follow the edicts of one company."
Because the trade-offs of React are unacceptable to me under almost any circumstances. The only acceptable case being Angular fails to scale to the level required because the two-way data binding performance penalty. Most companies won't ever get there, so I would pick Angular every time if I only had a choice between the two. Angular itself is not great because of just extremely opinionated and heavy weight it is, but it doesn't violate my core principle of UI frameworks so it's still acceptable and there are plenty of use cases where it's weight might be justified.
It's always been my experience that the more layers of indirection and opinion UI frameworks have the more expensive they are to implement and maintain. Hence my core principle (among other considerations) is can the final output of what this will look like be visualized quickly? With Angular that's a yes for me, with React that is a resounding no. The best set of trade-offs currently on the market is vue.js IMO. I'm likely to be happy to use that for a very long time. Before vue.js knockout.js usually had the right balance for me.