SlideShare a Scribd company logo
#Devoxx @deepu105 | @mraible#Devoxx17
By Deepu K Sasidharan, XebiaLabs and Matt Raible, Okta
November 9, 2017
About Deepu
Javascript Evangelist
Co-lead
Senior product developer
Robotics & Astronomy enthusiast
https://www.packtpub.com/application-development/full-stack-development-jhipster
#Devoxx @deepu105 | @mraible#Devoxx17
About Matt
Hick from the Sticks
Open Source Connoisseur
Web Framework Aficionado
Developer Advocate
VW Buses and Vans
Java Hipster
#Devoxx @deepu105 | @mraible#Devoxx17
What about you?
How many folks are Java developers?
How many are web developers?
Who likes JavaScript? Who likes TypeScript better?
Are you a fan of:
Angular
React
Vue.js
#Devoxx @deepu105 | @mraible#Devoxx17
Today’s Agenda
The History of Angular and React
Learning Angular and React
Our favorite and not-so-favorite features
Framework Fight!
Lies, damned lies, and statistics
Our Recommendations
#Devoxx @deepu105 | @mraible#Devoxx17
The Rise of MV* Frameworks
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
How many of you have experienced
“Yet Another Framework Syndrome”
#Devoxx @deepu105 | @mraible#Devoxx17
The History of Angular
Started as AngularJS in 2009 by Miško Hevery
GWT == 3 developers, 6 months
AngularJS == 1 developer, 3 weeks
Announced Angular 2, September 2014
2.0 Released in September 2016
5.0 Released November 1, 2017
#Devoxx @deepu105 | @mraible#Devoxx17
https://angular.io/guide/quickstart
The History of React
React was created by Jordan Walke in 2011 &
Open sourced in May 2013
Inspired by XHP, an HTML components
framework for PHP
Within one year, had large sites
Khan Academy, New York Times, Airbnb
+ Facebook and Instagram
16.0 released on September 26, 2017
#Devoxx @deepu105 | @mraible#Devoxx17
https://codepen.io/gaearon/pen/ZpvBNJ
https://vimeo.com/213710634
#Devoxx @deepu105 | @mraible#Devoxx17
Getting Started Comparison
#Devoxx @deepu105 | @mraible#Devoxx17
Angular CLI vs Create React App
Minimal dependencies
ES6 by default
Yarn by default
325 Lines of code (not counting
README)
PWA Score: 55/82
ng new app-name --minimal
TypeScript by default
npm by default
225 Lines of code
PWA Score: 18/36 (dev/prod)
ng generate component | service
#Devoxx @deepu105 | @mraible#Devoxx17
Your Favorite Angular Features?
#Devoxx @deepu105 | @mraible#Devoxx17
Matt’s Favorite Angular Features
Dependency Injection
Angular CLI
Resembles Java MVC Frameworks
Two-way Binding
Components, Services, and Directives
TypeScript
Ionic Framework
Webpack compiling TypeScript
Searchability: Angular vs AngularJS
Release Candidates in 2016
Testing Infrastructure
#Devoxx @deepu105 | @mraible#Devoxx17
Your Favorite React Features?
#Devoxx @deepu105 | @mraible#Devoxx17
Deepu’s Favorite React Features
One way binding
Virtual DOM
JSX
Flexibility
Component based composability
Smart & Dumb components
React Native
One way binding
Dependency fatigue
JSX
Too many options for state management
No official style guide
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
Framework vs Library
Angular = Full fledged MVVM framework
React = View rendering library
Angular = React + Redux + React Router … (React & Friends)
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
Let’s get the similarities out of the way
Both Angular and React are component-based
Both are client side MVVM frameworks for building SPAs
Both support server-side rendering
Both supports native mobile app development
Both requires a build tool like webpack for optimal usage
Both have comparable performance
Both are backed by big companies (Google & Facebook)
Both are MIT licenced (Finally!)
#Devoxx @deepu105 | @mraible#Devoxx17
It’s Time to Vote!
#Devoxx @deepu105 | @mraible#Devoxx17
Technical Differences?
#Devoxx @deepu105 | @mraible#Devoxx17
Follows EL in HTML approach
Uses regular DOM
Typescript based (Possible to write in plain JS
but not recommended)
Supports dependency injection
Supports Lazy loading & AOT
State management by default supports one
way and 2 way binding
Technical Differences
Follows HTML in JS (JSX) approach
Uses Virtual DOM
ES6 + JSX based (Possible to use Typescript
+ TSX as well)
Does not have the concept
Lazy loading is possible, No AOT
State management is only one way binding
and libraries like Redux or MobX is used more
often for state management
#Devoxx @deepu105 | @mraible#Devoxx17
Philosophical Differences?
#Devoxx @deepu105 | @mraible#Devoxx17
An opinionated framework
Promotes object-oriented approach
Offers everything required to build an SPA
Differing Philosophies
A view rendering library
Promotes functional approach
Requires use of a many 3rd party libraries like
Redux, React router etc.
#Devoxx @deepu105 | @mraible#Devoxx17
Usability?
#Devoxx @deepu105 | @mraible#Devoxx17
Less flexible
Often results in more code for same task
compared to React
Usability
Very flexible
Often results in less code for same task
compared to Angular
#Devoxx @deepu105 | @mraible#Devoxx17
Which one is easier to learn?
#Devoxx @deepu105 | @mraible#Devoxx17
Learning
Angular is a framework with lot of concepts
and hence is complex to learn causing JS
fatigue
Opinionated and provides guidance for most
use cases
React itself is easier to learn but since it is
only a view renderer it would require many
other libraries for state management, routing
etc ending up in same fatigue
Limited guidance. Requires one to choose a
stack and decide on 3rd party libraries and
approaches to follow
#Devoxx @deepu105 | @mraible#Devoxx17
Which one has a better ecosystem?
#Devoxx @deepu105 | @mraible#Devoxx17
Ecosystem
Ecosystem is not that huge
Easier to set up for a full fledged application
out of the box
Limited choice when it comes to alternative
approaches for example state management
Huge ecosystem
Difficult to set up for a full fledged application
due to above point
Lot of choices in approaches
#Devoxx @deepu105 | @mraible#Devoxx17
Best way to compare?
With <code>!
How We Did It
Generated apps with both Angular and React
Used JHipster, because we’re hip!
Gathered statistics:
Performance
Accessibility
Lines of Code
#Devoxx @deepu105 | @mraible#Devoxx17
JHipster Angular vs React
PWA Score: 91
Performance: 66
Accessibility: 100
Best Practices: 81
Lines of code: 12416 (55 TypeScript)
Number of tests: 3
PWA Score: 91
Performance: 75
Accessibility: 100
Best Practices: 81
Lines of code: 15177 (126 TypeScript files)
Number of tests: 9
#Devoxx @deepu105 | @mraible#Devoxx17
Demo Time!
#Devoxx @deepu105 | @mraible#Devoxx17
Angular vs React - Pretty Graphs
#Devoxx @deepu105 | @mraible#Devoxx17
Popularity - Google Trends
#Devoxx @deepu105 | @mraible#Devoxx17
Angular React
Popularity - Hot Frameworks
#Devoxx @deepu105 | @mraible#Devoxx17
https://hotframeworks.com/#top-frameworks
Popularity - Github stars
#Devoxx @deepu105 | @mraible#Devoxx17
http://www.timqian.com/star-history
Popularity - NPM downloads
#Devoxx @deepu105 | @mraible#Devoxx17
Usage - Libscore
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
So who wins?
#Devoxx @deepu105 | @mraible#Devoxx17
Our Recommendation
If you have a lot of state: React
If you’re familiar with Java MVC frameworks: Angular
If you work at Facebook: React
If you work at Google: Angular
If you like structure and a helping hand: Angular
If you like flexibility: React
#Devoxx @deepu105 | @mraible#Devoxx17
Other Opinions
https://medium.com/unicorn-supplies/angular-vs-react-vs-vue-a-2017-comparison-c5c52d620176
Other Opinions
https://hackernoon.com/angular-vs-react-the-deal-breaker-7d76c04496bc
What You Learned
The History of Angular and React
Hello World in Angular and React
Our favorite and not-so-favorite features
Similarities and Differences
Lies, damned lies, and statistics
Learning is the real skill, not knowing a web framework!
#Devoxx @deepu105 | @mraible#Devoxx17
Want to learn more about JHipster?
Come to our BOF tonight!
#Devoxx @deepu105 | @mraible#Devoxx17
Questions?
JHipster Sample Apps on GitHub
github.com/hipster-labs/devoxx17-jh-angular
github.com/hipster-labs/devoxx17-jh-react
Presentation at speakerdeck.com/mraible
Contact us!
@deepu105 || deepu.js.org
@mraible || raibledesigns.com
#Devoxx @deepu105 | @mraible#Devoxx17
#Devoxx @deepu105 | @mraible#Devoxx17
The JHipster Mini-Book
Written with Asciidoctor
Quick and to the point, 130 pages
Developed a real world app:
www.21-points.com
Free Download from
infoq.com/minibooks/jhipster-4-mini-book
@jhipster_book
#Devoxx @deepu105 | @mraible#Devoxx17
Thank you!

More Related Content

What's hot

Continuous Integration & Development with Gitlab
Continuous Integration & Development with GitlabContinuous Integration & Development with Gitlab
Continuous Integration & Development with Gitlab
Ayush Sharma
 
React vs angular
React vs angularReact vs angular
React vs angular
500Tech
 
Pivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start GuidePivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start Guide
Amit Ranjan
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
Noa Harel
 
Going Cloud Native
Going Cloud NativeGoing Cloud Native
Going Cloud Native
David Schmitz
 
Choosing Between Cross Platform of Native Development
Choosing	Between Cross Platform of Native DevelopmentChoosing	Between Cross Platform of Native Development
Choosing Between Cross Platform of Native Development
CodeOps Technologies LLP
 
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksUsing Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Geoff Varosky
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
Allen Dean
 
Hands on react native
Hands on react nativeHands on react native
Hands on react native
Jay Nagar
 
Api fundamentals
Api fundamentalsApi fundamentals
Api fundamentals
AgileDenver
 
Pivotal Tracker Overview
Pivotal Tracker OverviewPivotal Tracker Overview
Pivotal Tracker Overview
Dan Podsedly
 
Pivotal tracker presentation 10-13-2010
Pivotal tracker presentation   10-13-2010Pivotal tracker presentation   10-13-2010
Pivotal tracker presentation 10-13-2010
pivotjoe
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
Jirayut Nimsaeng
 
Codemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps DisasterCodemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps Disaster
Bert Jan Schrijver
 
Scala from the Trenches
Scala from the Trenches Scala from the Trenches
Scala from the Trenches
Kfir Bloch
 
GitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabGitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLab
Fatih Acet
 
Enterprise build tool gradle
Enterprise build tool gradleEnterprise build tool gradle
Enterprise build tool gradle
Deepak Shevani
 
JHipster, modern web application development made easy
JHipster, modern web application development made easyJHipster, modern web application development made easy
JHipster, modern web application development made easy
Raphaël Brugier
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
Taisuke Inoue
 

What's hot (20)

Continuous Integration & Development with Gitlab
Continuous Integration & Development with GitlabContinuous Integration & Development with Gitlab
Continuous Integration & Development with Gitlab
 
React vs angular
React vs angularReact vs angular
React vs angular
 
Pivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start GuidePivotal Tracker - Quick Start Guide
Pivotal Tracker - Quick Start Guide
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Going Cloud Native
Going Cloud NativeGoing Cloud Native
Going Cloud Native
 
Choosing Between Cross Platform of Native Development
Choosing	Between Cross Platform of Native DevelopmentChoosing	Between Cross Platform of Native Development
Choosing Between Cross Platform of Native Development
 
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksUsing Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
 
Hands on react native
Hands on react nativeHands on react native
Hands on react native
 
Api fundamentals
Api fundamentalsApi fundamentals
Api fundamentals
 
Pivotal Tracker Overview
Pivotal Tracker OverviewPivotal Tracker Overview
Pivotal Tracker Overview
 
Pivotal tracker presentation 10-13-2010
Pivotal tracker presentation   10-13-2010Pivotal tracker presentation   10-13-2010
Pivotal tracker presentation 10-13-2010
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
Codemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps DisasterCodemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps Disaster
 
Scala from the Trenches
Scala from the Trenches Scala from the Trenches
Scala from the Trenches
 
GitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabGitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLab
 
Enterprise build tool gradle
Enterprise build tool gradleEnterprise build tool gradle
Enterprise build tool gradle
 
JHipster, modern web application development made easy
JHipster, modern web application development made easyJHipster, modern web application development made easy
JHipster, modern web application development made easy
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 

Similar to Angular vs React - Devoxx BE 2017

The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
Matt Raible
 
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
Matt Raible
 
Devoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST APIDevoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST API
Vladimir Dejanovic
 
Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203
Laurent Broudoux
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
Boyd Hemphill
 
Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018
Deepu K Sasidharan
 
TechSEO Boost 2018: Research Competition
TechSEO Boost 2018: Research CompetitionTechSEO Boost 2018: Research Competition
TechSEO Boost 2018: Research Competition
Catalyst
 
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for goodDevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
Steve Poole
 
Webinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT StrategyWebinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT Strategy
Edureka!
 
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016
Codemotion
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15
Edureka!
 
The Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixThe Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, Wix
Codemotion Tel Aviv
 
Continuous Testing using Shippable and Docker
Continuous Testing using Shippable and DockerContinuous Testing using Shippable and Docker
Continuous Testing using Shippable and Docker
Mukta Aphale
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs Vue
Marudi Subakti
 
DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
Cisco DevNet
 
ruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdf
ruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdfruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdf
ruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdf
Narola Infotech
 
The building blocks of the next web
The building blocks of the next webThe building blocks of the next web
The building blocks of the next web
Pier Paolo Orioli
 
The building blocks of the next web, from Customer Journey to UI Components. ...
The building blocks of the next web, from Customer Journey to UI Components. ...The building blocks of the next web, from Customer Journey to UI Components. ...
The building blocks of the next web, from Customer Journey to UI Components. ...
Codemotion
 
Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016
Kfir Bloch
 
提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?
Chen Cheng-Wei
 

Similar to Angular vs React - Devoxx BE 2017 (20)

The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
The Ultimate Getting Started with Angular Workshop - Devoxx UK 2017
 
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
 
Devoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST APIDevoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST API
 
Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203Talk EclipseSirius Con - EIP Designer - 20151203
Talk EclipseSirius Con - EIP Designer - 20151203
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
 
Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018
 
TechSEO Boost 2018: Research Competition
TechSEO Boost 2018: Research CompetitionTechSEO Boost 2018: Research Competition
TechSEO Boost 2018: Research Competition
 
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for goodDevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
 
Webinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT StrategyWebinar: DevOps - Redefining your IT Strategy
Webinar: DevOps - Redefining your IT Strategy
 
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016
The art of decomposing monoliths - Kfir Bloch - Codemotion Amsterdam 2016
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15
 
The Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixThe Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, Wix
 
Continuous Testing using Shippable and Docker
Continuous Testing using Shippable and DockerContinuous Testing using Shippable and Docker
Continuous Testing using Shippable and Docker
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs Vue
 
DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”DEVNET-1125	Partner Case Study - “Project Hybrid Engineer”
DEVNET-1125 Partner Case Study - “Project Hybrid Engineer”
 
ruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdf
ruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdfruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdf
ruby-on-rails-vs-nodejs-which-is-the-best-backend-framework.pdf
 
The building blocks of the next web
The building blocks of the next webThe building blocks of the next web
The building blocks of the next web
 
The building blocks of the next web, from Customer Journey to UI Components. ...
The building blocks of the next web, from Customer Journey to UI Components. ...The building blocks of the next web, from Customer Journey to UI Components. ...
The building blocks of the next web, from Customer Journey to UI Components. ...
 
Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016Scala from the Trenches - Java One 2016
Scala from the Trenches - Java One 2016
 
提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?
 

Recently uploaded

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 

Recently uploaded (20)

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 

Angular vs React - Devoxx BE 2017

  • 1. #Devoxx @deepu105 | @mraible#Devoxx17 By Deepu K Sasidharan, XebiaLabs and Matt Raible, Okta November 9, 2017
  • 2. About Deepu Javascript Evangelist Co-lead Senior product developer Robotics & Astronomy enthusiast https://www.packtpub.com/application-development/full-stack-development-jhipster #Devoxx @deepu105 | @mraible#Devoxx17
  • 3. About Matt Hick from the Sticks Open Source Connoisseur Web Framework Aficionado Developer Advocate VW Buses and Vans Java Hipster #Devoxx @deepu105 | @mraible#Devoxx17
  • 4. What about you? How many folks are Java developers? How many are web developers? Who likes JavaScript? Who likes TypeScript better? Are you a fan of: Angular React Vue.js #Devoxx @deepu105 | @mraible#Devoxx17
  • 5. Today’s Agenda The History of Angular and React Learning Angular and React Our favorite and not-so-favorite features Framework Fight! Lies, damned lies, and statistics Our Recommendations #Devoxx @deepu105 | @mraible#Devoxx17
  • 6. The Rise of MV* Frameworks #Devoxx @deepu105 | @mraible#Devoxx17
  • 7. #Devoxx @deepu105 | @mraible#Devoxx17
  • 8. How many of you have experienced “Yet Another Framework Syndrome” #Devoxx @deepu105 | @mraible#Devoxx17
  • 9. The History of Angular Started as AngularJS in 2009 by Miško Hevery GWT == 3 developers, 6 months AngularJS == 1 developer, 3 weeks Announced Angular 2, September 2014 2.0 Released in September 2016 5.0 Released November 1, 2017 #Devoxx @deepu105 | @mraible#Devoxx17
  • 11.
  • 12.
  • 13.
  • 14. The History of React React was created by Jordan Walke in 2011 & Open sourced in May 2013 Inspired by XHP, an HTML components framework for PHP Within one year, had large sites Khan Academy, New York Times, Airbnb + Facebook and Instagram 16.0 released on September 26, 2017 #Devoxx @deepu105 | @mraible#Devoxx17
  • 17.
  • 18. #Devoxx @deepu105 | @mraible#Devoxx17
  • 19. Getting Started Comparison #Devoxx @deepu105 | @mraible#Devoxx17
  • 20. Angular CLI vs Create React App Minimal dependencies ES6 by default Yarn by default 325 Lines of code (not counting README) PWA Score: 55/82 ng new app-name --minimal TypeScript by default npm by default 225 Lines of code PWA Score: 18/36 (dev/prod) ng generate component | service #Devoxx @deepu105 | @mraible#Devoxx17
  • 21. Your Favorite Angular Features? #Devoxx @deepu105 | @mraible#Devoxx17
  • 22. Matt’s Favorite Angular Features Dependency Injection Angular CLI Resembles Java MVC Frameworks Two-way Binding Components, Services, and Directives TypeScript Ionic Framework Webpack compiling TypeScript Searchability: Angular vs AngularJS Release Candidates in 2016 Testing Infrastructure #Devoxx @deepu105 | @mraible#Devoxx17
  • 23. Your Favorite React Features? #Devoxx @deepu105 | @mraible#Devoxx17
  • 24. Deepu’s Favorite React Features One way binding Virtual DOM JSX Flexibility Component based composability Smart & Dumb components React Native One way binding Dependency fatigue JSX Too many options for state management No official style guide #Devoxx @deepu105 | @mraible#Devoxx17
  • 25. #Devoxx @deepu105 | @mraible#Devoxx17
  • 26. #Devoxx @deepu105 | @mraible#Devoxx17
  • 27. Framework vs Library Angular = Full fledged MVVM framework React = View rendering library Angular = React + Redux + React Router … (React & Friends) #Devoxx @deepu105 | @mraible#Devoxx17
  • 28. #Devoxx @deepu105 | @mraible#Devoxx17
  • 29. Let’s get the similarities out of the way Both Angular and React are component-based Both are client side MVVM frameworks for building SPAs Both support server-side rendering Both supports native mobile app development Both requires a build tool like webpack for optimal usage Both have comparable performance Both are backed by big companies (Google & Facebook) Both are MIT licenced (Finally!) #Devoxx @deepu105 | @mraible#Devoxx17
  • 30. It’s Time to Vote! #Devoxx @deepu105 | @mraible#Devoxx17
  • 32. Follows EL in HTML approach Uses regular DOM Typescript based (Possible to write in plain JS but not recommended) Supports dependency injection Supports Lazy loading & AOT State management by default supports one way and 2 way binding Technical Differences Follows HTML in JS (JSX) approach Uses Virtual DOM ES6 + JSX based (Possible to use Typescript + TSX as well) Does not have the concept Lazy loading is possible, No AOT State management is only one way binding and libraries like Redux or MobX is used more often for state management #Devoxx @deepu105 | @mraible#Devoxx17
  • 34. An opinionated framework Promotes object-oriented approach Offers everything required to build an SPA Differing Philosophies A view rendering library Promotes functional approach Requires use of a many 3rd party libraries like Redux, React router etc. #Devoxx @deepu105 | @mraible#Devoxx17
  • 35. Usability? #Devoxx @deepu105 | @mraible#Devoxx17
  • 36. Less flexible Often results in more code for same task compared to React Usability Very flexible Often results in less code for same task compared to Angular #Devoxx @deepu105 | @mraible#Devoxx17
  • 37. Which one is easier to learn? #Devoxx @deepu105 | @mraible#Devoxx17
  • 38. Learning Angular is a framework with lot of concepts and hence is complex to learn causing JS fatigue Opinionated and provides guidance for most use cases React itself is easier to learn but since it is only a view renderer it would require many other libraries for state management, routing etc ending up in same fatigue Limited guidance. Requires one to choose a stack and decide on 3rd party libraries and approaches to follow #Devoxx @deepu105 | @mraible#Devoxx17
  • 39. Which one has a better ecosystem? #Devoxx @deepu105 | @mraible#Devoxx17
  • 40. Ecosystem Ecosystem is not that huge Easier to set up for a full fledged application out of the box Limited choice when it comes to alternative approaches for example state management Huge ecosystem Difficult to set up for a full fledged application due to above point Lot of choices in approaches #Devoxx @deepu105 | @mraible#Devoxx17
  • 41. Best way to compare? With <code>!
  • 42. How We Did It Generated apps with both Angular and React Used JHipster, because we’re hip! Gathered statistics: Performance Accessibility Lines of Code #Devoxx @deepu105 | @mraible#Devoxx17
  • 43. JHipster Angular vs React PWA Score: 91 Performance: 66 Accessibility: 100 Best Practices: 81 Lines of code: 12416 (55 TypeScript) Number of tests: 3 PWA Score: 91 Performance: 75 Accessibility: 100 Best Practices: 81 Lines of code: 15177 (126 TypeScript files) Number of tests: 9 #Devoxx @deepu105 | @mraible#Devoxx17
  • 44. Demo Time! #Devoxx @deepu105 | @mraible#Devoxx17
  • 45. Angular vs React - Pretty Graphs #Devoxx @deepu105 | @mraible#Devoxx17
  • 46. Popularity - Google Trends #Devoxx @deepu105 | @mraible#Devoxx17
  • 47. Angular React Popularity - Hot Frameworks #Devoxx @deepu105 | @mraible#Devoxx17 https://hotframeworks.com/#top-frameworks
  • 48. Popularity - Github stars #Devoxx @deepu105 | @mraible#Devoxx17 http://www.timqian.com/star-history
  • 49. Popularity - NPM downloads #Devoxx @deepu105 | @mraible#Devoxx17
  • 50. Usage - Libscore #Devoxx @deepu105 | @mraible#Devoxx17
  • 51. #Devoxx @deepu105 | @mraible#Devoxx17
  • 52. #Devoxx @deepu105 | @mraible#Devoxx17
  • 53. #Devoxx @deepu105 | @mraible#Devoxx17
  • 54. So who wins? #Devoxx @deepu105 | @mraible#Devoxx17
  • 55. Our Recommendation If you have a lot of state: React If you’re familiar with Java MVC frameworks: Angular If you work at Facebook: React If you work at Google: Angular If you like structure and a helping hand: Angular If you like flexibility: React #Devoxx @deepu105 | @mraible#Devoxx17
  • 58. What You Learned The History of Angular and React Hello World in Angular and React Our favorite and not-so-favorite features Similarities and Differences Lies, damned lies, and statistics Learning is the real skill, not knowing a web framework! #Devoxx @deepu105 | @mraible#Devoxx17
  • 59. Want to learn more about JHipster? Come to our BOF tonight! #Devoxx @deepu105 | @mraible#Devoxx17
  • 60. Questions? JHipster Sample Apps on GitHub github.com/hipster-labs/devoxx17-jh-angular github.com/hipster-labs/devoxx17-jh-react Presentation at speakerdeck.com/mraible Contact us! @deepu105 || deepu.js.org @mraible || raibledesigns.com #Devoxx @deepu105 | @mraible#Devoxx17
  • 61. #Devoxx @deepu105 | @mraible#Devoxx17
  • 62. The JHipster Mini-Book Written with Asciidoctor Quick and to the point, 130 pages Developed a real world app: www.21-points.com Free Download from infoq.com/minibooks/jhipster-4-mini-book @jhipster_book #Devoxx @deepu105 | @mraible#Devoxx17