Home

2018.09.24 - It's Time for New Computer Architectures and Software Languages

Pi

Ping Xia

March 21, 20225 min read

Title: 2018.09.24 – It’s Time for New Computer Architectures and Software Languages

Industry Conferences

Serverlessconf 2018 https://acloud.guru/series/serverlessconf-sf-2018
Mini‑programs have taken off in China, bringing renewed attention to the “serverless” concept there as well. Check out the conference videos to see what’s happening abroad.

Deep Dives

David Patterson Says It’s Time for New Computer Architectures and Software Languages https://spectrum.ieee.org/view-from-the-valley/computing/hardware/david-patterson-says-its-time-for-new-computer-architectures-and-software-languages
David Patterson—UC professor, Google engineer, and RISC pioneer—argues that there’s never been a better moment to be a computer architect. Revolutionary hardware architectures and new software languages, tailored to specific kinds of computing problems, are waiting to be created. Turing Awards are up for grabs if people just work on these challenges. Also see: Is “data scientist” the new “programmer”?

Improving DataView performance in V8 https://v8project.blogspot.com/2018/09/dataview.html
Because of the performance penalty, JavaScript developers such as the Google Maps team avoided DataViews and used TypedArrays instead, at the cost of more complex code. This blog post explains how we brought DataView performance up to—and even beyond—equivalent TypedArray code in V8 v6.9, making DataView viable for performance‑critical real‑world applications.

Putting This Blog on IPFS https://ipfs.io/ipns/Qme48wyZ7LaF9gC5693DZyJBtehgaFhaKycESroemD5fNX/post/putting_this_blog_on_ipfs/
IPFS (Interplanetary File System) is a global, distributed, immutable datastore—a effort to decentralize and spread the load of hosting websites, which I first wrote about back in 2016. IPFS is a peer‑to‑peer file system made up of thousands of computers worldwide, each storing files on behalf of the network. The files can be anything: cat pictures, 3D models, or entire websites. It’s a great technology, and of course that means that Cloudflare wants to run a monkey‑in‑the‑middle attack on it. Also see: End‑to‑End Integrity with IPFS.

Inside look at modern web browser
https://developers.google.com/web/updates/2018/09/inside-browser-part1
https://developers.google.com/web/updates/2018/09/inside-browser-part2
https://developers.google.com/web/updates/2018/09/inside-browser-part3
https://developers.google.com/web/updates/2018/09/inside-browser-part4
In this four‑part series we look inside Chrome, from high‑level architecture down to the rendering pipeline. If you’ve ever wondered how the browser turns your code into a functional website, or why a particular technique is recommended for performance, this series is for you. Also see: How browser rendering works — behind the scenes

Meicai’s Wireless Front‑End Architecture Model 2018 https://tech.meicai.cn/detail/55
A fully modular, plugin‑based pipeline that runs through our development stages. The biggest benefit of engineering this way is focus: non‑core modules are hosted and monitored, while flexibility is maximized. “Everything is a plugin”—we’re only at the first step. The talent ladder also uses a “breadboard” approach, with clear functional divisions and fluid movement. In the short term we emphasize a strong front‑end, a small‑to‑medium middle tier, and a mid‑tier that handles some foundational functions without monopolizing the “architecture”. Our future focus will shift to a highly available framework system: choosing technologies that fit real scenarios and anticipating architecture challenges that span years.

Taro 1.0 Official Release – Unified Multi‑Platform Development Framework https://aotu.io/notes/2018/09/18/taro-1-0-0/
Taro is a unified development framework that lets you write React‑style code that runs on WeChat Mini‑Programs, Web, React Native, and other platforms, boosting productivity, improving the developer experience, and lowering multi‑platform costs. Since open‑sourcing, Taro has attracted a lot of industry attention; its principles have been widely embraced. However, early testing and implementation issues led to many bugs and some criticism. We took the feedback seriously, worked closely with the open‑source community, and explored ways to improve stability and performance. After continuous iteration, Taro has been reborn.

Three‑Step Optimal Technical Practice for New Projects https://zhuanlan.zhihu.com/p/44808764
The early‑stage practice is divided into three phases:

  1. Technical preparation – a series of thorough (or sometimes insufficient) technical tasks, from scaffolding to deployment testing.
  2. Business catch‑up – addressing the business lag created in phase 1, using technical practice to prove its value.
  3. Growth & optimization – continuously refining both technology and business to meet the needs of developers and stakeholders. Each phase brings its own challenges.

Hinting at a better web at State of the Browser 2018 https://christianheilmann.com/2018/09/16/hinting-at-a-better-web-at-state-of-the-browser-2018/
My talk this year hinted at a better web, covering how the web has evolved and how developers struggle to keep up. I also discussed how the right tools and contextual resources can help.

Module Design https://ponyfoo.com/articles/module-design
Thinking in terms of API‑driven and documentation‑driven design yields more usable modules than ignoring those aspects. You might argue that internals don’t matter: “as long as the interface holds, we can put anything we want in the mix!” A usable interface is only half the battle; it does little for maintainability. Well‑designed internals keep code readable and intent clear. In this chapter we’ll debate what it takes to write scalable modules without over‑engineering, dive deeper into the CRUST constraints, and explain how to prune modules as they grow in size and complexity.

Idle Until Urgent https://philipwalton.com/articles/idle-until-urgent/
In a perfect world, none of our sites would ever block the main thread unnecessarily. We’d all be using web workers for non‑UI work, and browsers would have a native Scheduling API (e.g., shouldYield()). In reality, web developers often have to run non‑UI code on the main thread, causing unresponsiveness and jank. Hopefully this article convinces you to break up long‑running JavaScript tasks.

The Making of Underrun – A WebGL Shooter in 13 KB of JavaScript https://phoboslab.org/log/2018/09/underrun-making-of
I participated in this year’s js13kGames, a JavaScript game‑dev competition with a 13 KB limit for code, assets, and everything else. My entry, Underrun, is a twin‑stick shooter built with WebGL. If you enjoy this kind of behind‑the‑scenes story, check out another about the game Bellwoods by Matt DesLauriers. Also see: Solving JS equality game with Cypress test runner

Building a Complex Financial Chart with D3 and d3fc https://blog.scottlogic.com/2018/09/21/d3-financial-chart.html
When it comes to crafting complex custom charts, D3 is the clear winner among JavaScript visualization libraries. This post walks through building an “advanced” financial chart with D3, supplemented by components from d3fc.

Looking inside the technology that powers Pinterest [https://medium.com/@Pinterest_Engineering/looking-inside-the-technology-that-powers-pinterest-2e8bd1cfc329](https://medium.com/@Pinterest_Engineering/looking-inside-the-technology-that-powers-pinterest-2e8bd1cf

(content truncated)


Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.

Keep reading

More related articles from DriftSeas.