At Fullstack, we're always looking for ways to improve our students learning and job search experiences, and we're really excited to be making the switch from Angular.js to Reach.
As instructors, we strongly believe that one of our key roles is to continuously curate.
If thinking about the pedagogical differences of React versus Angular excites you, we'd love to have you as an instructor.
Keep reading to learn why we made the change and why we think it’s important to continuously update our curriculum.
React-ing to the Market
Fullstack Academy has switched from Angular 1.x to React throughout our immersive curriculum.
We believe this change improves both curriculum relevancy and career outcomes and we’re already receiving positive feedback from our graduates.
MEAN to the NERDS
In 2016 we converted from the MEAN (Mongo, Express, Angular, Node) stack to the NERDS stack (Node.js, Express, React, Databases using SQL).
When we first started Fullstack Academy, we were excited about how we could respond quickly as technology changed and the market moved.
We want our students to enter the job market with the most up-to-date skills and also with very solid CS fundamentals.
We believe this switch helps us improve on both of those aspects.
Right Place/Right Time
Here's why we think React is the best technology to learn right now.
1. The developers of all the major libraries have converged on the idea of using virtual DOMs as a high-performance abstraction for describing and storing application states
We also like JSX as a templating language as opposed to custom syntaxes like Handlebars or Angular's $parse service.
2. The React ecosystem has converged on a same set of standards—React, React-Router, Redux, and Webpack+Babel
3. React is smaller library than Angular and has a better learning curve for adding new capabilities like routing and state management
Even without Redux, React is a powerful library that does a lot out-of-the-box. You can start with React (and JSX) and develop pretty sophisticated apps before having to add other libraries.
4. React’s abstractions are easier to comprehend than Angular’s
This is not a knock at Angular—Angular is an amazing technical achievement that one could argue accomplishes a harder task than React.
However, we believe that React’s abstractions are less “leaky.” For example, JSX is easier to mentally model than Angular’s $parse, and React components are better than Angular directives—it's harder to mess up performance with React's tree-diffing than with Angular’s $digest loop.
The React community’s focus on using functional programming concepts allows us to continue teaching advanced concepts like immutability.
The gain in readability of the Angular syntax is quickly negated by the mental weight of understanding, referencing, and debugging an entirely new language for students.
5. Redux is awesome
Single source of truth and deterministic (replayable) mutations to that state are a great way to create maintainable apps.
Redux also happens to map well to the types of real-time, collaborative projects (and games) that our students like to build during their capstone projects.
We’ve also seen students excited by the ideas in FRP and are looking at integrations with RxJS/BaconJS.
6. The automated testing story in React is easier and more fun than in Angular
The focus on functional components, virtual DOM, and modules simplifies writing and maintaining tests.
While testing was a big emphasis in Angular 1.x, and it had lots of good facilities for supporting testing and mocking, they always felt a bit heavy to our students.
7. We’re seeing many of our hiring partners moving toward React, and there’s a pretty good migration strategy from Angular 1
Even our engineers inside Fullstack are migrating our large learning platform codebase from Angular1 to React and using libraries like ng-react and react-router to ease the migration path.
Questions We Considered
Q: What about Angular 1?
A: We're still seeing lots of interest in Angular 1.x developers, and there are a lot of companies with very large Angular 1.x codebases out there.
Many of our alumni are working with Angular 1 and are happy with it. We also are keeping our extensive Angular 1.x curriculum for students who want to see how the applications that we build in React would also work in Angular.
Q: Why not Angular 2.0?
A: We thought about this for a long time, but there were a few too many bridges to cross.
While we really like TypeScript, I don't think its adoption has picked up enough to add it to our list (it's on our radar though).
Also, we're not seeing as much excitement or stability around Angular 2.0 from our partners as we are about React.
Q: How long do you think this technology mix will last?
A: Our Academic Team still spends a significant amount of time programming, and based on our recent experiences, we think this mix will be stable for quite some time.
That being said, even tools like React-Router are constantly in flux (a version 3 and version 4 with different architectures are being developed right now). We think the Redux/React combination will be pretty stable for some time.
One thing we really appreciate about Redux is how it encourages the developer to separate Redux from React itself—this makes it easy for us to let students build their own state management or transition down the road to something like MobX.
Q: What other technologies are you looking at?
We're constantly working with our Hiring Partners and Technical Advisory Board to understand demand around these technologies and when it will make sense to migrate.
If you’d like to learn React, we start a new cohort every eight weeks. Check out our upcoming cohorts page for more info.