2022.08.01 - Roll your own JavaScript runtime
Ping Xia
Title: 2022.08.01 - Roll your own JavaScript runtime
This Week’s Highlights
Roll your own JavaScript runtime https://deno.com/blog/roll-your-own-javascript-runtime
In this post we’ll walk through creating a custom JavaScript runtime. Let’s call it runjs. Think of it as building a (much) simplified version of Deno itself. The goal is to make a CLI that can execute local JavaScript files, read a file, write a file, delete a file, and provides a simplified console API. Related: Bun: A Complete Overhaul of the JavaScript Ecosystem , Build Your Own Web Framework .
JSON Creator Douglas Crockford Interview https://evrone.com/douglas-crockford-interview
Douglas Crockford: “The best thing we can do today to JavaScript is to retire it.” JavaScript, like other dinosaur languages, has become a barrier to progress. We should focus on the next language, which should look more like E than like JavaScript.
Software Visualization — Challenge, Accepted https://engineering.atspotify.com/2022/07/software-visualization-challenge-accepted/ https://www.infoq.com/news/2022/07/spotify-system-model-c4/
Architectural diagrams are the bread and butter of software design and a foundational tool for communication and collaboration on software development. At Spotify we have an incredibly complex network of thousands of interlinked software systems owned by hundreds of teams, so having a simple way to visualize these connections is essential. While capturing all of our software in one massive diagram is technically possible, it would be very hard to understand and navigate. We need tools that let us view our architecture at different abstraction levels in order to make good design decisions and evolve our software sustainably. As part of our solution we leverage a standardized software‑metadata model to create a common language for communicating software architecture.
Livebook as an educational tool https://dashbit.co/blog/livebook-as-an-educational-tool
We welcome Alex Koutmos as a guest writer on our blog, sharing his experiences using Livebook as a learning tool for Elixir.
Automate the boring parts of your job https://stackoverflow.blog/2022/07/25/automate-the-boring-parts-of-your-job/
Turns out the robots are here to make your job more interesting.
Maintenance Matters https://www.viget.com/articles/maintenance-matters/
A list of ten simple things we do to make our projects as maintainable as possible, regardless of the stack.
In‑Depth Reading
New patterns https://web.dev/new-patterns-july-2022/
Animations, theming, components, and more layout patterns are live and ready to help kick‑start or inspire your UI and UX.
Your Code Doesn't Have to Be a Mess https://www.danielsieger.com/blog/2022/07/25/your-code-doesnt-have-to-be-a-mess.html
If you’ve been developing software for a while, you know that code has a natural tendency to turn into a mess. Keeping software simple over time is a challenge that keeps me thinking. My last post left you hanging without much concrete advice. This time I’ll outline a few high‑level strategies to keep software simple.
Testable Frontend: The Good, The Bad And The Flaky https://www.smashingmagazine.com/2022/07/testable-frontend-architecture/
Testing is not just about tools and processes. It’s about architecture. In this article, Noam Rosenthal shares his experience on how to organize testing and find the right balance between front‑end and subsystems and between different strategies. Related: A Testing Philosophy .
Why Retool rebuilt our UI component library from scratch https://retool.com/blog/redesigned-ui-component-library/
From 2017 to 2021 this component library was built on top of Ant Design, one of the most popular React UI libraries. But as our customers and company scaled, this decision introduced limitations: we were building increasingly brittle hacks and maintaining hundreds of manual overrides in our codebase to offer better customization or functionality on top of Ant’s baselines.
10 Tips for Building Resilient Payment Systems https://shopify.engineering/building-resilient-payment-systems
It’s hard to learn something when you don’t know what you don’t know. As I learned things over the years—sometimes the hard way—I eventually found myself passing those lessons on to others. I distilled the topics into a presentation for my team and boiled that down into this blog post. So, without further ado, here are my top 10 tips and tricks for building resilient payment systems.
Programming languages endorsed for server‑side use at Meta https://engineering.fb.com/2022/07/27/developer-tools/programming-languages-endorsed-for-server-side-use-at-meta/
We’re sharing insights into our internal guidance on the various languages that play an important role at Meta—and specifically our server‑side programming languages, with Rust being the latest addition. Related: https://engineering.fb.com/2022/07/28/security/five-security-principles-for-billions-of-messages-across-metas-apps/ , It’s time to leave the leap second in the past .
The tar archive format, its extensions, and why GNU tar extracts in quadratic time https://mort.coffee/home/tar/
A couple of days ago I had a 518 GiB tar.gz file (1.1 TiB uncompressed) that I needed to extract. At first GNU tar was doing a great job, chewing through the archive at around 100 MiB/s. But after a while it slowed dramatically—to less than a kilobyte per second. The pv time estimate went from just over an hour, to several hours, to over a day, to almost a week. After giving it some time and failing to find anything helpful on Google, I decided that learning the tar format and writing my own extractor would probably be faster than waiting for tar. I was right; before the day was over I had a working tar extractor and had successfully extracted my 1.1 TiB tarball. I’ll explain why GNU tar is so slow later in this post.
How to drive away your best engineers https://blog.hulacorn.com/2021/09/08/how-to-drive-away-your-best-engineers/
Tenure is at an all‑time low in the software industry. Based on exit interviews I’ve conducted over the years, here is a list of reasons—and possible fixes—why engineers leave their jobs. No single item below is a “flip‑the‑table” moment, but over time they grind people down until they see no hope and quit. Related: Engineering Ladders , [Measurable and meaningful…]
(content truncated)
Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.
Sources & References
- [1]https://deno.com/blog/roll-your-own-javascript-runtime
- [2]Bun: A Complete Overhaul of the JavaScript Ecosystem
- [3]Build Your Own Web Framework
- [4]https://evrone.com/douglas-crockford-interview
- [5]https://engineering.atspotify.com/2022/07/software-visualization-challenge-accepted/
- [6]https://www.infoq.com/news/2022/07/spotify-system-model-c4/
- [7]https://dashbit.co/blog/livebook-as-an-educational-tool
- [8]https://stackoverflow.blog/2022/07/25/automate-the-boring-parts-of-your-job/
- [9]https://www.viget.com/articles/maintenance-matters/
- [10]https://web.dev/new-patterns-july-2022/
- [11]https://www.danielsieger.com/blog/2022/07/25/your-code-doesnt-have-to-be-a-mess.html
- [12]https://www.smashingmagazine.com/2022/07/testable-frontend-architecture/