JavaScript Chat Summary: May 19, 2020

Below is a summary of the discussion from this week’s JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. chat (agenda, Slack Transcript).

Have a topic for discussion for the next meeting? Leave a suggested edit on next week’s agenda.

Dependency Group Comment Blocks

(Slack conversation)

Pull request: https://github.com/WordPress/gutenberg/pull/21730

Proposal:

Let’s use /* multi-line comment instead of /** JSDoc.

Rationale:

/** risks being interpreted as the JSDoc documentation of the first import in a grouping, especially in the case of variable assignment. Some examples: TypeScript (editor integrations, etc), @wordpress/docgen automatic documentation.

Action items:

  • @aduth will double check to see if the ESLint rule at least allows for this convention. If not, update to allow.
  • Documented examples could be updated to promote this pattern.
  • At some point, do a mass conversion of comments.
  • Finally, maybe consider to forbid the /** convention.

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. project on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/

(Slack conversation)

There is now a project board for Core JS tasks. It should include primarily framework tasks, the sorts of items we might want to discuss in the weekly meetings.

We also briefly discussed a few distinct tasks which could use some attention. New issues to work on:

Final check needed for:

  • Review CSSCSS Cascading Style Sheets. support for build – PR #21730.

News Roundup

This roundup contains a few links for GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ and JavaScript related news curated (and commented on) by @nerrad.

  • Justin Tadlock offers some thoughts on where Gutenberg went wrong: Theme developer edition.
  • I somehow missed a gem of a post written by Matías back in April. He does a good job of providing some context to answering some of the questions out there regarding the direction of WordPress theming in the future. Read his post, Thoughts on Themes.
  • Gutenberg 8.1 has shipped. Highlights are: a new pattern search to make it easier to insert the desired pattern, a new testimonials pattern, and a new blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. action for copying single or multiple blocks. You can read the WPTavern’s take on this release here.
  • The recent Gutenberg Phase 2 Friday Design Update #53 shares some interesting updates on the Query block, the Block Navigator, Welcome guide, the “What’s new Modal”, and Template parts.
  • Speaking of templates, Envato launches a template kits marketplace for Elementor.
  • NPM 7 is getting some interesting new features including workspaces.
  • Next.js 9.4 is shipped. Notably, the inclusion of the new ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Fast Refresh feature.
  • ESLint v7.0.0 was released.
  • Tom MacWright’s article Second-guessing the modern web has been making the rounds. There’s a counterpoint article by Rich Harris, “In defense of the modern web” (h/t @mkaz). I’m still processing both articles, there’s much I agree with in both, but much I’m shaking my head with too. As with everything in the development world, it’s hard to present a compelling argument while avoiding painting too broad a brush. As with all things coding, a good argument often includes some variation of “it depends”. My oversimplified hot take/response from/to all this? Frameworks are still evolving. By the way, is it just me, or does it seem like posts/controversies like this seem to surface every two years or so?
  • React recoil is public. Facebook’s take on a state management library for React. It’s intriguing to me, the tight integration with React itself suggests some really nice performance improvements over most other state management packages. In particular, how it handles asynchronous behavior seems really straightforward (and nicely integrates <Suspense> for handling pending state – which isn’t required).

#core-js, #javascript