Watching you, with a Vue to a Kill: Wikimedia developers dismiss React for JavaScript makeover despite complaints
- Reference: 1584695712
- News link: https://www.theregister.co.uk/2020/03/20/wikimedia_react_javascript/
- Source link:
The Wikimedia Foundation oversees Wikipedia which still relies on decade-old user interface elements built with technologies like jQuery and an internal framework called [1]OOUI . The non-profit has been formulating [2]a plan to update its platform to make it more manageable with automation, more easily measured, and more friendly for would-be contributors.
Part of that plan involves re-thinking the frontend interface technology used by MediaWiki, the software used to run Wikipedia. Late last year, the non-profit's Frontend Architecture Working Group (FAWG) put out a proposal to adopt a modern JavaScript framework to create web interface elements served by its PHP backend.
The Request for Comments ( [3]RFC ), published in December, 2019, summarizes the goals of the technology bake-off and recommends Vue.js, a popular JavaScript frontend framework, as the likely candidate. The only other contender that appears to have received much consideration is React, an even more popular framework open-sourced by Facebook in 2013.
Other JavaScript frameworks didn't make the initial cut. Angular and Ember were deemed insufficiently flexible while Svelte, Inferno, and Preact were dismissed for not being popular enough and Stimulus.js was binned for failing to support desired use-cases like server-side rendering.
The Pi who loved me: Licensed to SSL [4]READ MORE
"React and Vue.js share many features and philosophies," the proposal explains. "Both enable developers to build UIs in a declarative, reactive, and component-based way; both core libraries are fairly light-weight and performant; both possess large and active communities."
"We believe that the Foundation would be well-served by adopting either tool. However, we believe that Vue.js has a few key advantages that are relevant for the Foundation's use-cases."
Vue.js, the proposal says, has better support for front end build tools like Webpack and Babel, appears to allow code with fewer dependencies, and is evolving in a stable manner.
Also, the proposal suggests, React's parentage is a problem. Specifically, React was developed by Facebook, and between 2014 and 2017 the interface library was subject to a BSD + Patents license that other organizations viewed as a potential risk.
Facebook in 2017 [5]shifted React to the MIT license, but the company's business model and behavior remain a matter of concern for some developers.
The proposal notes, "Vue.js development is not led by a single corporation whose goals may diverge from those of the WMF."
The WMF was also unimpressed that another open-source Facebook project, the HipHop Virtual Machine (HHVM), used to convert PHP to machine code for better performance, stopped fully supporting PHP last year, forcing WMF to migrate away from it.
What's more, parts of the WMF already have experience with Vue.js: WMDE (Wikimedia Deutschland) has been [6]experimenting with the framework for the WikiData site.
There were dissenting voices while the move to Vue.js was being considered. Last month, developer Hyeon Kim, among others, [7]argued that React would be the better choice. But Vue.js creator Evan You joined the debate in an attempt to answer Kim's criticisms.
On Wednesday, [8]the comment period closed and the proposal to move forward with Vue.js was adopted.
Even so, the matter may not be settled. The decision has prompted other developers to urge the FAWG to reconsider, with some arguing that Web Components, a W3C standard, should be used instead, and others insisting that users' needs should be considered alongside those of developers.
There may not be a right answer, but there's always a wrong one. ®
[1] https://www.mediawiki.org/wiki/OOUI
[2] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Medium-term_plan_2019/Platform_evolution
[3] https://phabricator.wikimedia.org/T241180
[4] https://www.theregister.co.uk/2019/07/16/verity_stob_column_july/
[5] https://www.theregister.co.uk/2017/09/22/facebook_will_free_react_other_code_from_unloved_license/
[6] https://wikitech.wikimedia.org/wiki/WMDE/Wikidata/SSR_Service
[7] https://phabricator.wikimedia.org/T241180#5843150
[8] https://phabricator.wikimedia.org/T241180#5981873
Front-end development is a complete mess
...and I say that as someone who primarily does front-end development these days. Every three months someone will release an update to their package that has a breaking change simply so it fits into whatever the current opinion on Twitter is about some JavaScript feature. Education is largely run by people writing self-promoting, meme-filled posts on Medium called "x considered harmful".
I've had freelancers putting in the latest React features in seemingly in order to be able to put them on their CV. I've had to break up arguments about semi-colons and tab width. Someone insisted we switch testing framework because there was a new one out.
I'd love to say this was true of all environments but compare the web page for C++ GLM (https://glm.g-truc.net/0.9.9/index.html) with that of, say, GraphQL (https://graphql.org/) . Notice the difference in bullshit levels.
Anyway, Vue is totally fine, or is at least as good a way of fucking things up as any of the other options.
Re: Front-end development is a complete mess
I am relieved to see that there is at least one other person that considers framework churn to not be the bee's knees of development environments.
And, as for decisions, removing frameworks because of lack of popularity is the kind of thing that makes me wince. Popularity is more important than features and stability ? Everything seems to be a show these days. Unfortunately, sometimes it's a shit show.
Re: Front-end development is a complete mess
"...Tab width..."
Answer: Four (4)
Two is for people who sit too close to the screen, and who don't separate out any of their callbacks.
Eight is for writers, who tend to not have fixed width text.
Odd numbers are for summoning Cthulhu (all hail etc, but not before the client has paid)
I use tabs rather than spaces, but have succumbed to popular opinion, let the IDE do its autoconversion thing.
Re: Front-end development is a complete mess
I must say that I've been enjoying the hell out of react since picking it up a few months ago. But yes, as with all things front-end these days, its the dependencies that are annoying. Every second result when I search for "How to [anything] with React" starts with "Well first you'll just need to 'npm install [package-library]', and then..."
At least it's not "None of the above"
As usual with the WMF the whole effort didn't seem to be publicized well enough to draw in a wide crowd for informed comment. I mean, surely ElReg mentioned it... oh, not at all?
I do like the one comment (you linked to it) "Vue core is Evan You's one-person project, which poses a risk to MediaWiki's sustainability" to which someone asked why not have WMF just buy Evan You. Which is classic. But not WMF's way. They'll just switch over to Vue and then fork it when they want to do it their own way. Thus closing the loop with their reason not to use React - dark side ownership.
I'm just amazed they haven't forked something else *already* with NIH so embedded in WMF's DNA.