61 Comments

  1. Carl Hancock

    “Considering which is easier to learn is the wrong focus for determining what WordPress’ future interfaces will need.”

    This quote shows a massive disconnect with exactly why WordPress is what it is and why it has been so successful: low barrier to entry. For developers more so than users. It’s why the theme and plugin ecosystem evolved the way it has. And you can complain about code quality all you want… but the theme and plugin ecosystem is a massive reason why WordPress has the market share it does. Low barrier to entry had A LOT to do with that.

    I’m fine with React or Vue.js from a business standpoint because I know we’ll be handle whichever direction it goes.

    But from a community and ecosystem standpoint it’s a bit concerning to see arguments being made that ease of use and barrier to entry are not a concern and being shrugged off as a non-factor.

    “What got us here won’t necessarily get us there.” is correct. However, “there” might end up being a higher barrier to entry for new and existing developers and that could have a profoundly negative impact on the WordPress.org ecosystem.

    I guess that isn’t so much a concern when you are looking at it from a WordPress.com/Calypso standpoint. But it should be for everyone else.

    I’m not saying Vue.js should be used over React. Or React should be used over Vue.js. But I am saying you have to take into account maintaining a low barrier to entry as part of the criteria when making a decision like this.

    Report

    • Mike Schinkel

      Amen Carl.

      Report

    • Christopher

      Well said Carl.

      Report

    • Andreas Nurbo

      “Considering which is easier to learn is the wrong focus for determining what WordPress’ future interfaces will need.”

      The statement also rejects all the claims by more seasoned developers that they have an easier time to get working with Vue than React and are more productive in Vue than React. If one point is to get more people involved with the JS part of WP I’d say ignoring the more seasoned devs experience is not a good way to proceed.

      Report

    • Gerasimos

      Well said. IMHO low barrier to entry should be the number #1 criterion.

      Report

    • Jacob

      I think the “ease of use” argument is not just to reduce the entry barrier (which is very low for WordPress developers) but also to point out that working with Vue is a pleasure while even seasoned developers struggle with React.

      On the other hand, the argument in favour of React “it teaches Javascript, instead of something else” is ignorant because with Vue you can use JSX (which is not Javascript, btw) just like with React.

      Report

    • Jeffrey

      You nailed it Carl.

      Report

    • Rick

      “It is adding the culture, business practices, and code base led by a tech giant..”

      As we, as a community incorporate Vue.js, we don’t have the same weight? Former quote suggest that we need Facebook and thus makes us dependent.

      Report

    • David Anderson

      I agree with Carl.

      WordPress becomes a platform for teaching JavaScript to new programmers

      It’s hard not to see this as anything other than wishful thinking. Not to say, somewhat perverse. Should pre-school maths start with calculus? So that budding new mathematicians have something meaty to get their teeth into?

      we need to look at robust programming paradigms and an expressive approach to coding interface

      My personal take on this: If the metaphysical expression coupling widgets aren’t aligned with the throughput of the paradigmatic class generator, then going forwards the typical developer normalisation process is going to bust the frobilisation interface into reverse taint drive.

      Report

  2. Mike Schinkel

    I am not a Javscript developer. I happen to like programming in PHP a lot more than in JS, both from developer experience (PhpStorm + XDEBUG) and because I like the PHP language lot better. So I don’t have a predisposed opinion for one vs. another, but I know that I will probably have to work with JS at some point.

    Actually, our company does use React for client projects and not Vue, so that is one factor.

    But looking in from the outside I can’t help but be troubled by the fact the “much harder to learn” solution is “winning,” especially in the WordPress world.

    Now if the harder-to-learn solution is actuallly a lot more capable then I would grudgingly agree, but it seems a fallacious agrument to argue for “rich interfaces” that “require a deeper understanding of the technologies used” simply (it appears) because they feel more complex when according to all that I have read here that Vue can do anything React can do, but with an easier learning curve.

    We certainly could avoid overarchitecting it if it means many more plugin and theme developers will be able to learn and start using it sooner than later. And even more would have successes sooner that’s they would otherwise give up

    The idea that by using React more JavaScript developers will come and work on WordPress is a false dream. Ain’t gonna happen, just like hardcore PHP framework developers who spend their days on packagist.org ain’t going to fall in love with WordPress either.

    But what could happen, if we make JavaScript a LOT more approachable to existing WP professionals is they could become productive in JS quickly enough they would start working on JS projects for WP and the WP community can start growing our own JS developers, just like we did with PHP.

    But the flip side is, make JS in WP too hard and we will continue to see the dearth of JS developers for WordPress. As it has been since we added BackboneJS. Just building it won’t make them come, unfortunately.

    As for the “only one man” problem, well in open-source, that is certainly easy enough. If he goes away, or diverges from our needs we fork it and roll into WP complete with future WP-specific enhancements over time. (That) problem, solved.

    FWIW

    Report

    • Álvaro

      I’m not a dev myself so I can’t argue for A or B. But I do relate to what you mention about making it easier for new adopters. That’s the story of WordPress, right?

      Report

    • Jacob

      I don’t think React is “a lot more capable” than Vue, and I’m very curious to get a proper answer by some experienced developer on what React can do that Vue doesn’t.

      In fact, the opposite is true: in Vue you can choose how to manage templates (HTML+CSS or JSX), while in React you’re stuck with JSX and JSCSS.

      Report

  3. Jason Bahl

    I think one big part that’s missing from the discussion is State management. . .regardless of Vue or React, I think a good state management layer needs to be added to the WP-Admin.

    Some plugins (Jetpack, for example) have started to include their own Redux store, but I think a solid Redux (or similar) store should be added to the WP-Admin as a whole that establishes a standard way for handling state, so that components, (VUE, React, other) can easily communicate with each other in a predictable way (much like we store data in the WordPress database in a predictable way)

    I think without a good plan for consistent state management in the WP-Admin it’ll be tough to build solid JS interfaces that work cohesively across the admin no matter what view layer(s) are used.

    Report

    • Peter Tasker

      I agree, I think state management is a key component what should be looked at. It also plays into how developers can extend (or not) whichever solution is decided upon. Having public access to a global “WP_State” would be awesome and help plugin authors to integrate into WordPress.

      Report

  4. Rhys Clay

    I’ve not tried vue.js but i’ve done a fair bit of work with react and have found it actually pretty easy to pickup so vue must be amazing. What makes react hard is babel, webpack etc. The react cli abstracts this away.

    Having said this by the time wp makes a move on this es6 could be pretty well universally supported so you might be able to use react without webpack.

    I also want to say that either way both are great choices and i will support 100%.

    Report

    • Jami

      I have to agree. I didn’t find React so insurmountably difficult that I couldn’t create a small app over a couple of days. It probably helps that there are so many tutorials (including the React docs themselves which are pretty great). It’s when I started to dive into whatever other layers in the stack that it got challenging but I think that’s true for all MVC’s. Having worked through Angular before, I can attest to that.

      Report

    • Chris

      I’ve been learning React for over a month now and it’s actually pretty easy to understand once you learn the fundamentals.

      Report

  5. Rarst

    Ease of learning is not among the criteria contributors identified for selecting a new framework

    What.

    WordPress becomes a platform for teaching JavaScript to new programmers

    It won’t. Just like it did not become application platform, web operating system, and whatever else grandiose label of the year.

    By this point WP grew into its peak comfortable role — legacy framework for content sites, in obsolete dialect of PHP.

    And there is a huge problem that we are routinely not honest about this. One solution cannot be simultaneously be chained to absolute backwards compatibility with a decade+ of code and be flexible cutting edge trendy platform.

    The great idea of JavaScript bailing WP out of its legacy is utopian and it is my strong wish it wasn’t pushed so hard. It bends internal perception of the project for worse and it compromises decisions like this one.

    Report

    • Peter Tasker

      By this point WP grew into its peak comfortable role — legacy framework for content sites, in obsolete dialect of PHP.

      Yep, bang on @Rarst

      Report

    • Kaiser

      Too true, but still funny.

      The sad story is: We can code a complete CMS in any
      Nodejs/JS frameworks in less time
      than we need for adding a modal with a form to the WP admin UI these days.

      Report

      • George Stephanis

        You seem to have a strange definition of `complete`

        Report

      • mark k.

        $george, it seems like you have kind of weird definition of CMS. In your definition a CMS is something that includes an editor and then all the possible kitchen sinks in the world.
        Why would a CMS need a rest api, oembed server, react etc.

        Actually even as CMS wordpress is not a very good one, images made public right when uploaded? No way to edit a published post and check the impact on the site without actually publishing the changes, no revision control for widget, and post meta, no user permission checks for shortcodes…

        WordPress puts the bar very low when it comes to have a CMS that is at about the same level of it.

        Report

      • mark k.

        To put what $rarst and $kaiser said in my own words, If wordpress wants to be an application framework, well there are better alternatives that do not carry the baggage of historical decisions and the need to retain backward compatibility.

        WordPress is a legacy tool, and there is actually nothing wrong with that, its power comes from the knowledge accumulate about how to spice it up, whether if it is in tutorials, themes, plugin, thousands of people with all kind of levels of understanding how it works.
        You can not just decide “wordpress is a cool web app platform” and by magic transform all of that into something that will support it. Even the obsolete codex is still coming in google before the “new” dev site, just an evidence how hard it is to **successfully** change course when you have such a big momentum.

        Report

  6. Robert

    Doesn’t anyone find it disconcerting that lately there have been two movements inside WP at odds with each other? In one side we have the proponents of not removing the Hello Dolly plugin because it helps newbies get started with plugin development and in the other we have the advocates of learning JS deeply because modern web applications require modern design methodologies. Funnily, there are even some people upholding these two opposing views at the same time.

    Report

  7. ripul

    Sad to see that Angular is not on the list ! Whatever technology is picked in the WordPress core will definitely get a massive boost and I strongly disagree that this is for the core team only. React’s patent grant is a big disadvantage, you can not build new ideas using react. Vue.js is good, have not used it to full potential like angular but I feel itis not exactly a framework. But at the end, shifting to JS frameworks is the need of the hour, so I am happy.

    Report

  8. Stephen Edgar

    I quit Facebook 7 years ago today, the following from Peter Knight in Slack overnight echoes much of my opinion of React and the patent clause Facebook includes in React.

    Just a parting note here, I develop on WordPress because it is pure OSS, to help democratize the web, empower users, inclusive, low barrier to entry, stands for the right things: an open web and unencumbered by the machinations of corporate philosophy. These things matter to me. Choosing React sullies those principles to me, it makes a material difference to whether I feel great about coding on this platform or not. I know this is subjective but hey. This is not just about making a cool pragmatic choice that the current crop of core developers find agreeable to work with in the moment.

    Src: https://wordpress.slack.com/archives/C02RQBWTW/p1496154046889104

    If Facebook removed the patent clause I doubt I’d have any issue with choosing React…

    Report

  9. Luca Bertaiola

    My 2 cents

    Vue can do anything React can do
    Vue has a very low entry barrier and is much easier to learn
    Vue can handle animations way better than React
    Vue works fine without any transpiling while React force you to use Jsx (can work in plain js but is like using the native js dom functions… very unusable)

    Report

    • Kevin Bauman

      We choose Vue over React and Angular for a project last year, and have not regretted it. In fact, we’ve continued to use it on two more projects since.

      It’s been a joy to use. Personally, I’m okay with either Vue or React, but would certainly push for Vue.

      Report

  10. Omaar Osmaan

    In one hand, most core-contributor having the greater knowledge of React. And lots of work already done in Calypso also happened over React. Dipping these efforts aside, is not something you can decide easily. :)

    On the other hand, Vue.js is promising and attractive enough for so many reasons that you should not dismiss it for the React. There is “only one man” should encourage you to put more resources into it, that’s the beauty of Open Source, and that’s how WordPress grew back in the days- by asking more people to volunteer.

    Report

    • nimmolo

      Good point Omaar. WP backing seems like it could totally change the adoption and support dynamics for Vue.js.

      Report

      • Rupert

        Totally agree… Not that Vue’s increase in popularity is all that shabby, indeed I’m reading in a LOT of places that folks have chosen it over React/Angular2 or 4 as it is seems to have jumped a version (rather disconcertingly again!), but if it was adopted by the WP community, it would go stratospheric, which from my experience with Vue would be great – it just works!

        Report

  11. chuck

    Two points I’d like to make. First this:

    [React] backed and licensed by Facebook

    should be enough to make it a non-starter. Second, the notion that the developer of Vue.js doesn’t have “any corporate backing”. Ummm…so Automattic doesn’t have enough free cash to fix that, if Vue.js becomes the choice? Seriously?

    Report

    • Benjamin

      We need to not forget that jQuery was really John Resig’s personal side project when it was getting started. (https://johnresig.com/blog/selectors-in-javascript/) Look where it is now. Just because a framework/library is a “one-person” operation without “corporate backing”… doesn’t mean it will stay that way.

      Report

    • jeffc

      Also Vue is being backed by Alibaba, with their weex framework…

      https://weex.apache.org/

      Nevermind Automattic, what about this group of companies:

      Alibaba
      Taobao
      TMall
      Youku

      Now I may be biased as based in China, but if you don’t know how huge these online companies are, then please check them out….

      Sales on Taobao and TMall during 11/11 dwarf Black Friday sales on Amazon by an order of magnitude.

      Vue is going nowhere.

      Report

  12. Thiago

    Let’s face reality.

    The decision was already made long time ago when React was chosen to build Calypso and it has been used since that. The adoption of React by the core will only reflect that.

    This public discussion about selecting a new framework is bullshit. They aren’t asking community opinion, they are just informing their decision.

    And about rising the entry level barriers, well, it will, and that is intentional.

    I’ve been hearing this crap of “learning javascript properly” since the jQuery’s days when the elite of web development started crying about designers getting shits done using jQuery without knowing javascript properly and decided that jQuery was a bad thing because that. Pure elitism, now inside WordPress community. It is a shame.

    Report

  13. Quince

    Build out a wp.js framwork!!! That is the only way to make it work perfectly with wordpress look longterm. It will work how wordpress needs it to; not how someone else needs thier framework to.

    Report

  14. Peter

    I am not sure, if all these basic websites and blogs build with WordPress need something like Vue or or React framework behind it. It will be interesting to see where WordPress will be in few years if there is continuously “adding” without any “removing”. Do 80% of users need this kind of framework for their “about page” and sharing buttons? Anything I install (plugin, theme) the biggest job for me is to removing extra scripts, files and junk around. Currently after some tests of alternatives to WP I ask myself, do I really need to host and manage that WP monster for simple websites? I feel that for basic website is WP too much and for something more complicated it’s not enough. I see the advantage with that low barrier to entry and huge community – plugins, themes, tweaks, but WP at core does not looks so cool from my perspective. I can even say, that WP is only about that community around. Maybe this community can say to WP (code) where to move, not that WP will force them to do something.

    Report

  15. Iain Poulson

    At this point in time I have no preference either way, but I find Ryan’s argument against using Vue.js more than a tad hypocritical, as he is the solo maintainer of a couple of libraries used by WordPress core. I wrote more about that here: https://polevaultweb.com/2017/06/key-person-dependency-oss-projects-need-talk-ryan-mccue/.

    Report

  16. stephen

    WordPress engineers need to grow up and accept the fact that they need to learn new tools. With that comes and expectation that these new tools include JavaScript and their associated frameworks ( React / Vue ). React does teach sound JavaScript principles, and it is not harder to grasp than any other framework. Those that feel it’s more difficult are unfamiliar or scared of working with JavaScript.

    Being a WordPress engineer, tasks us with not just being PHP dev or a theme developer, but a full stack engineer. This means we should be comfortable in dealing with all aspects of a proper WordPress install, from the server / database / PHP and frontend. Anything else in this day and age is sloppy. The days of simply installing a theme and calling yourself a dev are long past. Grow up or find a new line of work. Your clients demand more of you.

    Failure to grasp these concepts is one reason WordPress engineers get a bad name among the community.

    Vue basically took the same concepts of AngularJS without really adding anything new. React built upon those concepts. React coupled with Redux gives us a clear cut way to handle state changes.

    Sure Vue gives us a nice way to write HTML, and CSS in their appropriately “named” files, but React gives us a way to write testable and abstractable code and components.

    The argument about Facebook being a tech giant and WordPress hitching a wagon to it is superfluous as far as I am concerned. Any company adopting WordPress or Automattic as part of their app / web solution is doing the same thing. When you “own” 25% of the internet, you are just as much of a tech giant as other large silicon valley companies. Secondly, any person that adds a FB login /Like button to their WP theme is just as much “hitching their wagon” to a large tech giant. You still adopt the same license agreement regardless of what pieces of FB you wish to use in your code.

    All the same, WordPress failing to adopt React feels like WordPress failing to cycle out older versions of PHP. The idea that we should continue to support EOL libraries, because adoption is poor ( ie, too difficult to learn ) if we don’t is a horrible argument. If we support tried and true libraries, the web world will follow and adopt accordingly. Yes, by adopting React, more developers will learn JavaScript.

    Report

    • Peter Knight

      Ranty, dismissive, straw-manning anonymous dudes rubbishing as many things they can in a few paragraphs while distorting other people’s views are what give ‘engineers’ a bad name. But it’s a good thing you’re not particularly representative as the vast majority of people that contribute to WordPress in one way or another don’t self-identify as ‘engineer’.

      Report

    • chuck

      Show me the Ts &Cs where it says Facebook can terminate your license to a FB login or like button, if you bring a patent infringement action against FB. I have never seen that.

      However, for React, if you or your ‘affiliates’ brings an action then the license is automatically terminated. So down the road if FB were to infringe on WP intellectual property and WP filed an action — then it’s very likely that anyone on the WP platform will have their React license revoked. The converse might be true but it’s not clear: if someone using WP as a dev platform brings an action against FB, will that be enough to revoke WP core use of React.

      https://github.com/facebook/react/blob/master/PATENTS

      This is a big deal and should not be brushed aside; if anything it needs a competent IP attorney (or two) to render an opinion. I hope whoever the team is that is deciding on a framework is having this integrated legal discussion.

      Report

    • Mike Schinkel

      There once was a village next to a huge damn that had been built 50 years before. The mountainous area behind the damn filled up with water but was not really the reason for the damn. The reason for the damn was to allow for controlled release of water over time.

      However, the village started having economic problems and some residents of the area came up with the idea that if they got rid of the damn it would result in killer rapids in the area and downstream, and they believed it would create an economic development boom.

      But many of the other residents of the area really wanted the damn to stay as is. They didn’t think that rapids would provide the economic development value that the others believed it would, and thus did not want to potentially allow for flooding during parts of the year in hopes for some elusive economic development ideals.

      The debate got so heated that they had several town hall meetings about it, and the most respected local townspeople all got up and argued passionately for their preferred outcome to win the day. But even though these debates were vigorous the leaders of the debate knew and respected each other, and never stooped to personal attacks. They each just believed strongly in their preferred approach.

      Then at the last town hall, one guy showed up who appeared
      to come out of nowhere; none of the townspeople knew him. And he proceeded to tell the people who wanted to keep the damn that they needed to put their big boy pants on and get serious because they would see an economic boom if they got rapids. And he said that anyone who felt otherwise were just whiners.

      Then he made a startlingly proposal, and that is they should just blow up the damn that weekend so the village would not have to wait any longer for its economic windfall.

      At which point others who wanted the damn gone started to ask him it he understood what blowing up the damn would mean. And he said “Of course I so, some people just did not like change.” At which point many people started
      to point out to Mr. Blow-Up-The-Damn that his idea completely ignored all the people who lived in villages downstream and that blowing up the damn would pretty much wipe them all out with wall of water, all the way to the ocean. They did their best to explain that in a community decisions are often much more complex then they first appear.

      But Mr. Blow-Up-The-Damn was not to be deterred. To him
      it was simple, and that anyone who didn’t see it his way was obviously either flawed or just mentally lazy. At which point everyone else in the town hall realized that his tirades added no value to the debate and so they all just ignored him and, working together, finally came up with a viable plan.

      #FWIW

      Report

  17. Jon Brown

    There is not a single most important factor here everyone is going to agree on and drive a clear decision.

    While I’ve argued in the past we should use Composer and “barrier to entry” should not preclude that, that does not mean barrier to entry is irrelevant even in that arguement. It just means Composer is a wildly used and easy enough to use tool that we should adopt it.

    While JS is still challenging for me and my gut says the answer here should be Preact or Vue, React (or even Angular) doesn’t have such a high barrier to entry that it should be dismissed on the topic reason alone.

    Everyone here has a different rubric and needs to accept that what is important to them individually isn’t the same as what is be the for the project long term. I’m still unclear what is best for the project long term or that anyone can agree on the rubric.

    The best surge think I’ve seen is actual prototypes of dashboard modules and how to extend them with any of the proposed frameworks. WP’s most key feature has always been it’s extensibility and the reliability that those extensions would continue to work through years of updates. Maybe a contest is in order to do some small thing both ways, see what shakes out.

    I will say the the I think Calypso/Automattic’s familiarity with React should _not_ weigh heavily here. I get the temptation for that but WP’s choice should always stand on thier own.

    Other than that, looking forward to whatever color the bikeshed ends up.

    Report

    • Mike Schinkel

      Oh, don’t get us started on the “Add Composer to WordPress” debate now… :-D

      Report

      • Jon Brown

        Oh god no! My point is simply the the barrier to entry isn’t black and white, it’s a thing that needs to be weighed against the benefits. React doesn’t sound like an insurmountable barrier (I’ve played with it) , but Vue sounds awesome. Of course React sounded awesome coming from Angular so maybe that’s clouded by grass is greener thinking.

        I wanted to point again out again though that Calypso is/was a totally different beast, and really shouldn’t factor here. I totally understand using React for Calypso, it’s an app. Vue does however seem a better fit WP core. Again barely groking this stuff just on the surface Vue does seem more with keeping with WP’s paradigms.

        Report

  18. Brendan

    Not sure that my commenting here will help anything, but having used Vue: I sure hope they choose Vue.

    Report

  19. Luke Cavanagh

    This comment from Josh Pollock sums it up very well.

    https://make.wordpress.org/core/2017/05/24/javascript-chat-summary-for-may-23rd/#comment-32530

    Report

  20. nguyen

    Vue sounds awesome. In my view, Vue is the best fit for wordpress. Easy to learn is important.

    Report

  21. Espen Bratberg

    “The ‘easier to get started’ [argument] seems a bit fallacious to me,” Ventura said. “Easier to whom? At what cost to properly learning JavaScript? The demands of rich interfaces in web applications require a deeper understanding of the technologies used.

    The fact that a framework is easier to learn does not mean that its users does not have (or does not want to have) a deeper understanding of the underlying technology. Ease of use could in fact have the opposite effect; it makes you want to learn more, not less.

    Report

  22. thong tin so hoa

    Very good written post. It will be beneficial to anyone who utilizes it,
    including myself. Keep doing what you are doing – for sure i will check out more posts.

    Report

Comments are closed.

%d bloggers like this: