
React is the new Dojo - ingve
https://medium.com/@mikeal/react-is-the-new-dojo-18bd9059378f
======
codingdave
Really? Dojo won? jQuery never accomplished anything? For 10 years, people
have been going to web conferences talking about how Dojo already did all
this?

Apparently, I've been living in a completely different corner of the web than
this guy.

~~~
rublev
.

------
oldboyFX
This guy is a WebComponents evangelist of some sort.

I don't understand why so many people sweat over libraries, frameworks, and
which one is going to "win". Once you learn to program properly, choosing a
framework becomes a non-issue.

The bigger problem right now is the tooling ecosystem (webpack, babel etc).
It's too difficult to set up and customize, especially for beginners. The
packages change too often and you run into bugs all the time. Sometimes I wish
we had a dumb-ass GUI to set up all this stuff. Customizability comes with
complexity I guess.

~~~
gwright
I agree and I disagree.

From an individual developer standpoint, you should be able to transition
between frameworks, libraries, and so on. You don't have to pick a single
"winning" tech stack, although there are obviously transactional costs to
becoming productive in a new tech stack.

From the point of view of a product or business, it is very expensive to
switch between tech stacks. Most businesses can't afford to re-implement their
product because there is a new 'hot framework'. I think there was an article
on HN just within the last week about why Fortran is still a thing in some
development circles.

So while I don't think it is necessary for there to be a single "winner",
discerning which tech stacks have some long term stability and when the
benefits of a transition outweigh the transactional costs of switching can be
important.

~~~
oldboyFX
> From the point of view of a product or business, it is very expensive to
> switch between tech stacks.

I totally agree with you. I was talking about the developers perspective.

When it comes to companies, not only is it difficult to transition from an
unpopular tech stack, but it's also difficult to hire great developers because
none of them want to work on such stack.

------
irrational
"The Web didn’t win because it was the favorite among enterprises and “real
developers.” It won because it scaled down better than it scaled up. It won
because it amateurized software development and unlocked the creativity of an
entire generation of programmers that couldn’t participate in software until
The Web."

This is what worries me about WebAssembly. If most web code goes binary, then
it is no longer possible for the next generation of developers to View Source
to see how things are built. Over the decades of doing web development, I've
learned so much from looking at the source of other people's web sites. Even
now with minimization and obfuscation it is pretty easy to run the code
through some tools to get it back to a readable state.

~~~
jordache
For all apps, other than graphic intensive 3D, there is no need to implement
something using WebAssembly. The performance gain is simply not worth it.

This will be even more true as browser JS performance increases

~~~
crimsonalucard
This is not true at all. WebAssembly does not exist solely for performance. It
exists because javascript is the sole ecosystem for web application
development. By making WebAssembly a compile target we expand the universe of
web development into something similar to Desktop development. Hopefully we
can introduce the newer generation of developers into realizing how bad
javascript really is as a programming language.

~~~
jordache
if you don't want to use JS to build CRUD apps, you can do that today.. just
use .NET MVC and use C# and Razor. I happen to hate using the latter though

------
chrisco255
jQuery is still around and still useful for a certain class of applications.
But to say that jQuery won for rich web apps is to ignore all the churn we
went through in frameworks and tooling to finally end up with Webpack, NPM,
Babel and React.

React's target is complex apps. It's designed to scale both with application
complexity and team size. jQuery never was designed to scale. And anyone who
started with jQuery and built a rich single page app will generally tell you
of all the imperative pitfalls you'll find.

The thing is, the web has evolved. The simple tools that attracted us to the
web when web was mostly a presentation layer just don't cut it.

The "old" web is still there for beginners. If you want to learn to build
basic websites without having to learn package management, numerous libraries
and frameworks... jQuery is still a great option.

I'm always skeptical of loose analogies. 2017 isn't 2010. React is not Dojo.
I'm not even saying React is the end all be all...but it works really well and
it will continue to hold its position unless something better comes along that
enough people are excited about to beat React's ecosystem.

For beginners there are tools like Next.js and Gatsby which allow you to
create server rendered React apps with minimal config, setup, etc.

React also has React Native going for it, which is still young and booming.

~~~
trumbitta2
The one "designed to scale both with application complexity and team size" is
actually Angular.

------
jordache
"It’s used not only by hipster San Francisco startups but gigantic companies
like Facebook"

Uhhh... Obviously Facebook would be using it. That was useless filler insight.
What other large implementations of React is out there?

~~~
chrisco255
AirBNB, Twitter mobile, Walmart app, Spotify, Atlassian, Skype, Discord
mobile, many more...

~~~
ctvo
Microsoft, Amazon, Apple, Netflix.

It's easier to ask what large company isn't using React. The PATENTS talk was
odd because those same companies had and continue to use it with or without
the new licensing.

------
pdfernhout
And Mithril.js for rendering with Tachyons for CSS is the new jQuery? :-)
[https://mithril.js.org/](https://mithril.js.org/)
[http://tachyons.io/](http://tachyons.io/)

An example using that combination:
[https://github.com/pdfernhout/Twirlip7](https://github.com/pdfernhout/Twirlip7)

------
mhd
If we're following that analogy, why isn't React the new JQuery, with Angular
taking the Dojo role?

~~~
Touche
I think the article explains it well, jQuery scaled down in a way that Dojo
couldn't. I don't think you can fairly say that either Angular or React scale
down in a way to enable the sort of amateurism that jQuery provided.

~~~
ch4s3
I'm not the biggest fan of react, but it's pretty easy to slap a single
component into a project using the cdn, a single require and a single jsx
file. I mean it isn't as easy as jquery, but it feels like it's in the some
order of magnitude of difficulty.

~~~
Touche
You're too much in-the-know. You skipped the build chain required to make this
work. And if you make one mistake or do something not by the book you could
easily wind up shipping the development version of React to your users (which
is slower).

I think the analogy is so apt because Dojo users made the same arguments back
in the day; that it really was easy if you ignore all of the parts that were
not easy. They weren't wrong! But that didn't make it ideal as a scaled down
solution.

~~~
pknopf
No pre-deploy build chain is required.

Even jsx can be compiled on the browser, seamlessly.

~~~
Touche
Yep, and it wasn't required of Dojo either. Optional complexity doesn't make
something any easier to understand, especially when most documentation and
community expects you to use the complex parts.

~~~
pknopf
You are right, I see why OP's initial statement was wrong about React being
"simple" because you _could_ make it simple.

Did Dojo expect the community to use the "optional complexity"?

------
water42
> used by hipster startups to Facebook

Well, yeah, it's developed by and for Facebook...that was a weird line.

------
gwt4life
People who can't or won't invest the time to learn a tool that will boost
their productivity...these are the people who determine the leading
tools/frameworks??

------
irrational
At some point there has to be a next generation of web tools/frameworks. It's
not like React will be around forever. Eventually it will bloat up just like
these things always do and people will start asking themselves, "Isn't there a
better easier way to do this"? I hope the author is right and the next
generation of tools does away with a lot of the current complexity (especially
the build step! - please no more need for cli, node.js, a "toolchain", etc.)

~~~
jordache
>>I hope the author is right and the next generation of tools does away with a
lot of the current complexity (especially the build step! - please no more
need for cli, node.js, a "toolchain", etc.)

If that's what you want, then it's not a function of a new framework to enable
the vision you articulated. I think evolutions in the HTTP protocol is needed
to allow unbuilt/unbundled code to be effectively delivered over the wire.

There is a clear distinction between how developers need to abstract and
organize code vs how code is more efficiently processed by programs. The
framework that the developer uses will always be designed to cater to what the
user needs. If there is the need for a build/bundling step, then so be it.
Framework designer should never sacrifice the former for an easier
build/bundling step

~~~
stefano
What about a web server that does the build step automatically, with no
configuration required?

Something like webpack-dev-server, but usable both in production and
development.

To deploy, drop your typescript/html/css files under /srv/www/ and your web
server will take care of everything.

~~~
krapp
If you already have html/css files, then "dropping them under /src/www" will
already just work - that's how servers have worked since time immemorial, no
"build step" required.

But compiling isn't what a web server does, and it seems like having the
server automatically do what a developer is going to do anyway when they push
to production, and likely not very often, isn't a significant gain in
efficiency. The point of having a separate build chain for these types is that
you're emitting what are meant to be static resources anyway.

------
d2kx
Maybe if you live in a bay area startup filter bubble?

I don't see React "winning" on a major scale at corporations here in Europe.

Tbh I am quite shocked whenever I read about advances in React that Angular
has had for quite a while.

~~~
k__
Like a small API surface or a tiny set of concepts to learn? Oh wait...

------
zappo2938
React, Redux, Apollo, GraphQL, Express, Sequalize, and Postgres ecosystem
seems like it is the new Drupal while Medium, Wix, and Shopify are the new
Wordpress.

------
zerr
And why one wouldn't use Dojo over React or Angular nowadays?

~~~
jordache
the Dojo AMD pattern sucks when you have too large of a collection of
dependencies.. With Dojo you need to have exact matching order between your
require collection and the parameters for your callback.

