SlideShare a Scribd company logo
1 of 90
Download to read offline
The Case for
React.js and
ClojureScript
Murilo Pereira
@mpereira
May2, 2014
Problem
Building UIs is
difficult.
Modern Web UIs
visualrepresentationsofdatachangingovertime
respondtoasynchronoususerevents
transitionboththeunderlyingdataanditselftonew states
"Data changing over time is the
root of all evil."
Incidental Complexity
JavaScriptisn't
DOM is stateful
reactive
What if the JavaScript DOM
API was reactive?
functiontweetScore(tweet){
return(tweet.favorites_count+tweet.retweets_count);
}
functioncompareTweetsByScore(a,b){
return(tweetScore(b)-tweetScore(a));
}
functionrenderApplication(tweets){
return(document.dom.ul(
{class:'tweets'},
tweets
.sort(compareTweetsByScore)
.slice(0,5)
.map(function(tweet){
return(document.dom.li({class:'tweet'},tweet.text);
})
));
}
vartweets=fetchTweets({username:'mpereira'},{limit:20});
document.dom.render(renderApplication(tweets),document.body);
Possible solution: Data binding
Data Binding
Observables
Computed properties
Backbone, Ember, Meteor, etal.
Contemporary data binding is
not simple.
Simple
Notto be mistaken for "easy"
Easiness = Familiarity(subjective)
Simplicity= "Does/is one thing"(objective)
Data Binding
Application logic entangled with observables
Forces us to compose our programs with framework
constructs instead of language constructs (functions and data
structures)
"How often are you fighting the
framework?"
Dirty-checking (Angular)
Also susceptible to the problems of databinding.
https://docs.angularjs.org/guide/concepts
Complex
Even with shortcomings it's
still possible to build complex,
modern UIs using
contemporary MVC
frameworks.
"We can create precisely the
same programs we're creating
right now with drastically
simpler tools."
Rich Hickey
A different solution to the same
problem.
React.js
React.js
Libraryfor creatingUIs
Renders the DOM and responds to user events
Can be thoughtof as the Vin MVC
Remember our utopic example
a few slides back?
functiontweetScore(tweet){
return(tweet.favorites_count+tweet.retweets_count);
}
functioncompareTweetsByScore(a,b){
return(tweetScore(b)-tweetScore(a));
}
functionrenderApplication(tweets){
return(document.dom.ul(
{class:'tweets'},
tweets
.sort(compareTweetsByScore)
.slice(0,5)
.map(function(tweet){
return(document.dom.li({class:'tweet'},tweet.text);
})
));
}
vartweets=fetchTweets({username:'mpereira'},{limit:20});
document.dom.render(renderApplication(tweets),document.body);
It's actually valid React.js code
functiontweetScore(tweet){
return(tweet.favorites_count+tweet.retweets_count);
}
functioncompareTweetsByScore(a,b){
return(tweetScore(b)-tweetScore(a));
}
functionrenderApplication(tweets){
return(React.DOM.ul(
{className:'tweets'},
tweets
.sort(compareTweetsByScore)
.slice(0,5)
.map(function(tweet){
return(React.DOM.li({className:'tweet'},tweet.text);
})
));
}
vartweets=fetchTweets({username:'mpereira'},{limit:20});
React.renderComponent(renderApplication(tweets),document.body);
React gives us a minimally
leaky abstraction for a reactive
JavaScript/DOM environment.
Data
Component
DOM
Model
View
DOM
M3
V2
DOM
M2 M4 M5M1
V1 V3
Data
C3
DOM
C4C2 C5C1
Components
Components
Idempotent functions that describe your
UI at any point in time.
component(data) = VDOM
component(data_1) = VDOM_1
*user inputchanges datafrom data_1 to data_2*
component(data_2) = VDOM_2
diffVDOMs(VDOM_1, VDOM_2) = diff
DOMOperations(diff) = operations
applyDOMOperations(operations, document.body)
Best part? You don't even have
to worry about this. Just build
components.
Every place data is displayed is
guaranteed to be up-to-date. 
No need for KVO or marking
HTML templates with
framework directives.
Frees the programmer from
doing manual, explicit DOM
operations.
But what about the
performance?
Isn't diffing VDOMs slow?
Why have VDOMs if the
browser already has a DOM?
The DOM is slow.
The DOM is slow
Queryingmayrequire tree traversal
Mutations trigger viewportreflows, relayouts, repaints (CSS
engine, etc.)
Can also invalidate caches, requiringthe entire DOM to be
reconstructed on the viewport
Having in-memory
representations of the DOM
allows React to have extremely
fast UIs.
Virtual DOM (VDOM)
Allows for components to have adeclarative API
Performs the minimum amountof actualDOM operations
through computingdiffs
Handles DOM operations for you
"Performance isn't the [main]
goal of the VDOM, but if you're
worried with performance,
most workloads are as fast or
faster [than the MVC
alternatives] out of the box."
Pete Hunt
Components
Components allow you to
express your program in the
language of your problem
domain.
Rather than on the language of
a particular framework.
Bill O'Reilly
Tide comesin,tide goesout.
You can'texplain that!
Top Tweets
Justhad #breakfast.
@troll yes,definitelyplan on
that.
pic.twitter.com/asd23 #selfie
#instagram
Good# morning.
Bill O'Reilly
Top Tweets
Tide comesin,tide goesout.
You can'texplain that!#tides
Justhad #breakfast.
@troll yes,definitelyplan on
that.
pic.twitter.com/asd23 #selfie
#instagram
Good# morning.
Header
Profile
Tweets
Top Tweets
varProfile=React.createClass({
render:function(){
return(React.DOM.div(null,[
React.DOM.img(null,this.props.user.image),
React.DOM.p(null,this.props.user.name)
]);
}
});
varTweets=React.createClass({
render:function(){
return(React.DOM.ul(null,this.props.tweets.map(function(tweet){
return(React.DOM.li(null,tweet.text));
});
}
});
varTopTweets=React.createClass({
render:function(){
return(React.DOM.div(null,[
React.DOM.h1(null,'TopTweets'),
Profile({user:this.props.user}),
Tweets({tweets:this.props.user.tweets})
]);
}
});
React.renderComponent(TopTweets({user:user}),document.body);
varProfile=React.createClass({
render:function(){
return(
<div>
<imghref={this.props.user.image}/>
<p>{this.props.user.name}</p>
</div>
);
}
});
varTweets=React.createClass({
render:function(){
return(
<ul>
{this.props.tweets.map(function(tweet){
return(<li>tweet.text</li>);
})};
</ul>
);
}
});
varTopTweets=React.createClass({
render:function(){
return(
<div>
<h1>TopTweets</h1>
<Profileuser={this.props.user}/>
<Tweetstweets={this.props.user.tweets}/>
</div>
);
}
TopTweets(data) = Header() + Profile(data_1) + Tweets(data_2)
Components are reusable and
composable declarative
representations of your UI.
Collateral
Benefits
Collateral Benefits
Render the application on the server (node.js, Java8's
Nashhorn, etc.)
UI testabilityfor free
No templates!
React.js takeaways
Declarative, fastUIs
Express your programs in the language of your problem
domain
ClojureScript
Problem
JavaScript sucks
We needJavaScript
JavaScript sucks
No integers
No module system
Verbose syntax
Confusing, inconsistentequalityoperators
Confusing, inconsistentautomatic operator conversions
Lack of block scope
Non-uniform iterators
Globalvariables bydefault
NaN
this
No macros (yet...)
etc.
We Need JavaScript
Runtime is everywhere
Runtime is improving(Web Sockets, geo-location, FS API, RAF,
push notifications, WebRTC, WebGL, SVG, Canvas, Web
Workers, IndexedDB, etc.)
Build better languages on top
of JavaScript.
Compilers!
Lots of them alreadyexist
Onlyafew bringsignificantimprovements
Popular ones
CoffeeScript: mostlysyntax sugar
TypeScript: typed supersetof JavaScript. Brings type checking,
compile time errors
ClojureScript
ClojureScript is a Clojure
compiler that targets
JavaScript.
Why ClojureScript?
Why Clojure?
Why LISP?
Clojure is just a better
language.
Numberofdays
spentdesigning
the language v1
JavaScript Clojure
ClojureScript
LISP
STM
Runtime polymorphism
The REPL
Functionalprogramming
Immutable datastructures
Uniform API over immutable datastructures
Macros
Lazysequences
Destructuring
State VS Identity
etc.
core.async
(go(try
(let[tweets (<?(get-tweets-for"swannodette"))
first-url(<?(expand-url(first(parse-urlstweets))))
response (<?(http-getfirst-url))]
(.js/console(log"Mostrecentlinktext:"response)))
(catchjs/Errore
(.js/console(error"Errorwiththetwitterverse:"e)))))
Asynchronous Error Handling
The possibility of having
access to the power of Clojure
in the browser is immensely
valuable.
Value
To programmers, who willbe able to build better programs, with
less bugs, faster.
To the people and companies who willbenefitfrom those
programs.
The developer experience has
improved significantly.
Developer Experience
Source maps
Easilyreproducible tutorials
Browser-connected in-editor REPLs
Fastcompilation cycles
Compatible libraries
Recommend you to check it
out
(butyou probablyhave, already)
Om
ClojureScript interface to React.
"Because of immutable data
Om can deliver even better
performance than React out of
the box."
David Nolen
30-40X faster than JS MVCs nothing to do with
ClojureScript. Ditch stateful objects, ditch events. Be
declarative. Immutability. That's it.
5:39 AM - 15 Dec 2013
David Nolen
@swannodette
Follow
41 RETWEETS 39 FAVORITES
???
ClojureScript
Compiled, slower than hand-written JavaScript
Uses immutable datastructures, slower than JavaScriptdata
structures
And yet
Om's performance beats that
of most JavaScript MVC
frameworks
"Ideas have fundamental
performance properties."
Pete Hunt
Immutable data structures
make React's diffing algorithm
really smart.
 And more...
Takeaways
"Ideas have fundamental
performance properties."
"Don't trade simplicity for
familiarity."
And  .give it five minutes
Thanks!@mpereira
Learn React.js
Why?
Be Predictable, NotCorrect
React: RethinkingBestPractices
WhyReact?
How
GettingStarted
Introduction to React.js
Tutorial
Learn ClojureScript
Why?
ClojureScriptRationale
The Future of JavaScriptMVC Frameworks
Clojure Rationale
WhyClojure?
Beatingthe Averages
How
ClojureScript101
Translations from JavaScript
LightTable ClojureScriptTutorial
Om Tutorial

More Related Content

What's hot

Type script, for dummies
Type script, for dummiesType script, for dummies
Type script, for dummiessantiagoaguiar
 
Javascript session 01 - Introduction to Javascript
Javascript session 01 - Introduction to JavascriptJavascript session 01 - Introduction to Javascript
Javascript session 01 - Introduction to JavascriptLivingston Samuel
 
JavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptJavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptLaurence Svekis ✔
 
From User Action to Framework Reaction
From User Action to Framework ReactionFrom User Action to Framework Reaction
From User Action to Framework Reactionjbandi
 
Introduction to Javascript programming
Introduction to Javascript programmingIntroduction to Javascript programming
Introduction to Javascript programmingFulvio Corno
 
Introduction To JavaScript
Introduction To JavaScriptIntroduction To JavaScript
Introduction To JavaScriptReema
 
Introduction to Javascript By Satyen
Introduction to Javascript By  SatyenIntroduction to Javascript By  Satyen
Introduction to Javascript By SatyenSatyen Pandya
 
Introduction to nodejs
Introduction to nodejsIntroduction to nodejs
Introduction to nodejsJames Carr
 
Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)sourav newatia
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An IntroductionManvendra Singh
 
An Introduction to JavaScript
An Introduction to JavaScriptAn Introduction to JavaScript
An Introduction to JavaScripttonyh1
 
Mobile Day - React Native
Mobile Day - React NativeMobile Day - React Native
Mobile Day - React NativeSoftware Guru
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIICS
 
JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...
JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...
JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...Edureka!
 
JavaScript in Object-Oriented Way
JavaScript in Object-Oriented WayJavaScript in Object-Oriented Way
JavaScript in Object-Oriented WayChamnap Chhorn
 

What's hot (20)

Type script, for dummies
Type script, for dummiesType script, for dummies
Type script, for dummies
 
Javascript session 01 - Introduction to Javascript
Javascript session 01 - Introduction to JavascriptJavascript session 01 - Introduction to Javascript
Javascript session 01 - Introduction to Javascript
 
JavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptJavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScript
 
From User Action to Framework Reaction
From User Action to Framework ReactionFrom User Action to Framework Reaction
From User Action to Framework Reaction
 
Introduction to Javascript programming
Introduction to Javascript programmingIntroduction to Javascript programming
Introduction to Javascript programming
 
Introduction To JavaScript
Introduction To JavaScriptIntroduction To JavaScript
Introduction To JavaScript
 
Introduction to Javascript By Satyen
Introduction to Javascript By  SatyenIntroduction to Javascript By  Satyen
Introduction to Javascript By Satyen
 
Introduction to nodejs
Introduction to nodejsIntroduction to nodejs
Introduction to nodejs
 
Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)Javascript - Ebook (A Quick Guide)
Javascript - Ebook (A Quick Guide)
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
 
React
React React
React
 
An Introduction to JavaScript
An Introduction to JavaScriptAn Introduction to JavaScript
An Introduction to JavaScript
 
Mobile Day - React Native
Mobile Day - React NativeMobile Day - React Native
Mobile Day - React Native
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part III
 
Web programming
Web programmingWeb programming
Web programming
 
Java script
Java scriptJava script
Java script
 
Java Script ppt
Java Script pptJava Script ppt
Java Script ppt
 
Lecture 5 javascript
Lecture 5 javascriptLecture 5 javascript
Lecture 5 javascript
 
JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...
JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...
JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Programm...
 
JavaScript in Object-Oriented Way
JavaScript in Object-Oriented WayJavaScript in Object-Oriented Way
JavaScript in Object-Oriented Way
 

Similar to The Case for React.js and ClojureScript

Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programmingDmitry Buzdin
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassSpike Brehm
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsSpike Brehm
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007lucclaes
 
JavaScript on the server - Node.js
JavaScript on the server - Node.jsJavaScript on the server - Node.js
JavaScript on the server - Node.jsRody Middelkoop
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwtsupertoy2015
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornMaxime Najim
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?jbandi
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDevelcz
 

Similar to The Case for React.js and ClojureScript (20)

Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programming
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master Class
 
Huge web apps web expo 2013
Huge web apps web expo 2013Huge web apps web expo 2013
Huge web apps web expo 2013
 
Mlocjs buzdin
Mlocjs buzdinMlocjs buzdin
Mlocjs buzdin
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007
 
Node js
Node jsNode js
Node js
 
Gwt Presentation1
Gwt Presentation1Gwt Presentation1
Gwt Presentation1
 
JavaScript on the server - Node.js
JavaScript on the server - Node.jsJavaScript on the server - Node.js
JavaScript on the server - Node.js
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwt
 
GWT
GWTGWT
GWT
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with Nashorn
 
SFScon 21 - Davide Montesin - Typescript vs. Java
SFScon 21 - Davide Montesin - Typescript vs. JavaSFScon 21 - Davide Montesin - Typescript vs. Java
SFScon 21 - Davide Montesin - Typescript vs. Java
 
GWT Extreme!
GWT Extreme!GWT Extreme!
GWT Extreme!
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Groovy & Grails
Groovy & GrailsGroovy & Grails
Groovy & Grails
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Best javascript course
Best javascript courseBest javascript course
Best javascript course
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
 

Recently uploaded

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 

Recently uploaded (20)

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 

The Case for React.js and ClojureScript