Hello everyone and welcome to another round of Front-End News.
- The main headline is about the controversy over using terminal ads to fund Open Source maintainers.
- Mozilla CEO will step down at the end of 2019
- Microsoft announces TypeScript 3.6
- Dojo 6 is now available
Next is a larger than usual software updates section, as well as a special Developer Of The Week. So stay with me until the end to find out all the details.
As always, I have also prepared a video version for those that prefer listening instead of reading. If you enjoy this format, I would appreciate it if you would subscribe to the YouTube channel as well.
Controversy over using terminal ads to fund Open Source maintainers
Last week I mentioned how StandardJS v14 included an “open source experiment that helps maintainers get paid”. This was due to a project funding
that was created by Feross, one of the StandardJS maintainers. The idea behind Funding is that companies buy ad space in people’s terminals, and the Funding project then shares its profits with open-source projects who signed-up to show the ads.
It’s no surprise that the move created fierce debates with strong arguments on both sides. While the vast majority agrees that Open Source software and maintainers need better funding, many developers were not pleased with these ads, who made their way into the installation logs.
On the surface, Funding is similar to OpenCollective, another project that displayed donation requests via an npm terminal post-installation message. This also caused a lot of outrage at the time, but most developers ended up accepting the practice.
Having full-blown adds in the terminal seems though to be a step too far for many people. As a result, the first ad-blocker for npm packages was created. Also, due to the online pressure, Linode, one of the two companies who purchased ads on Funding, decided to back out of the project and retire their ads. The other company, LogRocket, also backed out silently. Both companies though expressed their support towards exploring new ways to help the open source maintainers.
Linode@linode@voxpelli @dawnerd We reconsidered after reflecting on the developer community's reaction. We still passionately support open source software along with @feross, but we'll be more careful about experimenting in the future while continuing to innovate. On that note:
github.com/feross/funding…21:08 PM - 26 Aug 2019
Things escalated to the point where npm, Inc, the company maintaining the npm repository, decided to step in. The online magazine ZDNet reports that Ahmad Nassri, the CTO of npm, made a statement via email:
We are always working on improving our policies and expand on our commitments to the community. […] To that end, we’re making updates to our policies to be more explicit about the type of commercial content we do deem not acceptable.
According to these upcoming updates, npm will ban:
- Packages that display ads at runtime, on installation, or at other stages of the software development lifecycle, such as via npm scripts.
- Packages with code that can be used to display ads are fine. Packages that themselves display ads are not.
- Packages that themselves function primarily as ads, with only placeholder or negligible code, data, and other technical content.
The announcement came right after Feross announced that he is ending his experiment. He published a very detailed article on his blog describing the reasons that started the whole thing, how events unfolded over these days and what his future plans are.
Npm also published an article on their blog where they express their support for Open Source maintainers and their intention to create and launch an Open Source funding platform by the end of 2019. They invited anyone interested to participate in the process to get in touch.
Overall it is undeniable that Feross and the Funding experiment managed to disturb the status quo and to raise further awareness over the often thankless work as Open Source maintainers. I am looking forward to seeing what solutions will arise as a result.
Sources and references:
- https://www.zdnet.com/article/popular-javascript-library-starts-showing-ads-in-its-terminal/
- https://www.zdnet.com/article/npm-bans-terminal-ads/
- https://twitter.com/npmjs/status/1167558875521966080
- https://blog.npmjs.org/post/187382017885/supporting-open-source-maintainers
- https://feross.org/funding-experiment-recap/
Mozilla CEO will step down at the end of the year
Mozilla CEO, Chris Beard, announced to step down from the helm of the company. He has been leading Mozilla Corporation for the last 5 years and a half and he will continue to do so until a new CEO can be appointed.
Chris declared himself pleased with the current state the company and thinks that now it’s a good moment for a change in leadership.
It’s with that backdrop that I made the decision that it’s time for me to take a step back and start my own next chapter. This is a good place to recruit our next CEO and for me to take a meaningful break and recharge before considering what’s next for me. It may be a cliché — but I’ll embrace it — as I’m also looking forward to spending more time with my family after a particularly intense but gratifying tour of duty.
Mitchell Baker, the executive chairwoman of Mozilla Foundation also published a public message of gratitude. She announced that Chris Bear will continue to be involved as an advisor to the board and she assured everyone that Mozilla will continue on the current path.
Sources and references:
- https://blog.mozilla.org/blog/2019/08/29/my-next-chapter/
- https://blog.mozilla.org/blog/2019/08/29/thank-you-chris/
Microsoft announces TypeScript 3.6
Microsoft developers announced the release of TypeScript v3.6. The update brings a number of features like stricter generators, a more accurate array spread, improved UX around promises and many other changes.
The TypeScript playground also got improved, with a lot of new options like all the strictness flags or support for plain JavaScript files. The auto-import process got a bit smarter too and it is now better at deciding how to import other modules based on your existing code.
Before you update your existing code, make sure to account for all the breaking changes.
Source:
Welcome to Dojo 6
Dojo is a progressive framework for modern web apps using TypeScript and modern web APIs and the development team just announced the release of its 6th major version.
This milestone brings a number of important updates. In addition to the existing class-based widget API, a new function-based API is being added. There is also a new concept of middleware
which is designed to replace all existing supplemental widget patterns, mixins, metas, and decorators. For more information, you can check the Dojo middleware reference guides or some of the middleware examples available.
Other changes include faster development builds, building widget libraries, glob support for code splitting or updating the minimum TypeScript requirement to 3.4.
The team has been eating their own dog food as well. The Dojo website is statically generated using the latest patterns while the documentation content is automatically imported from the repository and rendered statically.
If you are already using Dojo or want to start using it, go read the release notes and the migration guide to make use of all the new features.
Source:
Software updates and releases
StandardJS 14.1.0
Following the close of the funding
experiment, StandardJS released another update, to version 14.1.0 where that package is no longer included. This also upgrades eslint
to v.6.2.2 and adds support for ES2020, the latest version of ECMAScript specification.
react-native 0.61.0-rc.0
We get a glimpse at the next version of React Native with v0.61.0-rc.0 The main feature present in this update is the integration of React v16.9 More details are to be published soon in another blog post and the full set of change notes will be made available before the stable release.
Feathers v4.0
Feathers is a web-framework for creating real-time applications and REST APIs using JavaScript or TypeScript with Node.JS, React Native and the browser. It works with any backend supporting many databases out of the box and with any frontend technology like React, VueJS, Angular, Android or iOS.
This week we got the release of the 4th major iteration, code-named Crow. The highlight of the major changes is available in a blog post together with the recording of the live launch and a Q&A session with the creator of the framework.
- https://blog.feathersjs.com/introducing-feathers-4-a-framework-for-real-time-apps-and-rest-apis-afff3819055b
- https://feathersjs.com/
The Developer of the Week
The Developer of the Week for this episode is Val Head. Val is a designer and web animation consultant with a talent for getting designers and developers alike excited about the power of animation.
She wrote two books on this topic. The first one is a free ebook named “Pocket Guide to CSS Animation” and it’s meant for web designers or developers who are new to CSS animations and want to start using them in their own work or experiments.
The second one is titled “Designing Interface Animation” and is a crash course in motion design theory and practice for web designers, UX professionals, and front-end developers alike.
Val also writes articles, both on her own website and on other well-known platforms like Smashing Magazine or A List Apart. She is the curator of the “UI Animation Newsletter”, she hosts the “All The Right Moves” screencast and is a cohost of the “Motion and Meaning” podcast.
You can also see Val speaking and doing workshops at conferences all over the world. If you’ve got an event that could use a design talk or web animation talk, don’t hesitate to get in touch with her.
- https://valhead.com/
- https://twitter.com/vlh
- https://cssanimationspocketguide.com/
- https://rosenfeldmedia.com/books/designing-interface-animation/
Question of the Day
What are your thoughts about helping finance Open Source maintainers? Please leave your answers in the comment section or send them to https://twitter.com/frontendnexus
That’s all there is in this edition. Follow Front End Nexus on Twitter at https://twitter.com/frontendnexus to be notified as soon as a new update happens. I also want to encourage you to subscribe to the YouTube channel at https://www.youtube.com/channel/UCgACtqiDmnSaskDIBsK54ww. I can unlock some more options once the channel hits 100 subscribers, so your support is highly appreciated.
Have a great and productive week and I will see you next time!
Top comments (12)
I agree that the terminal is not the best place for advertising. I’ve supported a few OSS projects both with money and contributions, but that’s just a drop in the ocean. The best way to get proper funding would be to find corporate sponsors, like Linux does, but that’d be impossible for a small niche project. I wonder what else will people come up with 🍿
Also thanks for mentioning Val’s books!
The main problem is visibility for essential packages that are used as dependencies and are hard to "see" from the point of view of the end-user. I don't do "heavy" JavaScript programming and whenever I am working on a larger project that runs on Node, the configuration is done by someone else.
The GitHub Sponsors program looks like a step in the right direction, but I haven't researched it enough to have an informed opinion about it.
I am curious to see what npm comes with - they are uniquely positioned to have maximum impact.
If the terminal (the Linux terminal, even) cannot remain an unmonetized sanctuary, truly all is lost. Whatever alternative monetization npm comes up with will be cynical. It is a law of economics that there is no such thing as non-cynical monetization. I don't see any potential for being both pro-FYPM and anti-DRM. Philosophically, I'm on the side of the hackers, but socioculturally, I'm with the artistes, as hacker culture unfortunately reveals itself to be more and more problematic with each passing year. Hopefully some kind of social dividend will come to the rescue and free people to do creative things without having to get their hands dirty with monetization.
I think that what Feross did is more of an outcry... a very public and impossible to ignore way to attract attention over the topic of funding for open source maintainers. And from this point of view, he succeeded.
Succeeded in setting a precedent which if not squashed will lead to a 1000s and 1000s of lines of ads in ci logs and installation logs. Trying to read through a log will be as bad as trying to read through your email inbox without a spam filter.
Npm did ban further adverts in the terminal. And I think OpenCollective messages (which are still allowed) can be disabled using a configuration setting.
Other than that it's obvious we feel differently about the subject - and there's no absolute truth to the situation - so I'm not going to take the discussion further than that!
But we could’ve created an entirely new industry of terminal ad blockers! Imagine how many jobs we could’ve provided! 🙃
Interesting. the core-js repo has an ad and I complained to npm that it was against their policy and they should reach out to the devs to get it removed. They came back and told me ads are ok and that I should set
ADBLOCK=1
in my environment variables. This was yesterday, Sept 4thI think you might be talking about the OpenCollective request for donations? According to their updated rules, that is permitted, although I did see an issue thread on GitHub where
core-js
was being loaded as a dependency multiple times, causing the message to be displayed just as often. Maybe they can find a way to display such a thing only once?I am not saying it's a perfect system. Far from it. But we, the users and consumers of open source software, usually take for granted the work the maintainers who build and maintain the tools we use.
Would you be willing to do all that work without people even knowing how important your package is for the entire system?
I know I wouldn't. That's why I don't mind those messages. That's why I don't use an adblocker when browsing the web. As a creator myself, I am aware of the amount of work and effort needed to put something online for other people to use and enjoy. However, I can afford to support directly only a couple of people.
I am really looking forward to seeing what npm will come up with regarding their support distribution initiative.
I would. I have tons of open source contributions. I haven't felt the need to spam 1000s of developers and millions of logs with ads for myself.
35 years of open source and so few self promoting ads suggest most open source devs have been fine without the spam. There are plenty of other ways to try to get funding for your open source work than spamming people.
It does not take much imagination to see where it will lead. A single npm install like babel or eslint or jest or mocha that have many dependencies will spew out 10s of 1000s of lines of self promotion ads. That's untentible
In the specific case of
core-js
I think the author was in dire need for financial support after an accident - github.com/zloirock/core-js/issues...Again, it seems more like a cry for help instead of a grab for money. Situations may arise when reaching out is the only option - the alternative would be to abandon maintaining the project completely. And very few developers are also marketing-savvy enough to find alternate sources of income that will allow them to continue their work.
I have updated the article above with the video variant.