Fast Software

Recently, the many relevances of fast software have been impressive.
We often discuss network performance. We can make things a little faster here and there. We see performance improvements accompanied by improvements in success metrics. I found this kind of chart very satisfying. But perhaps even more interesting is thinking about the impact of speed. It might be the difference between I love this software and go to yours and I exit .
Craig Mod completely abandons Google Maps in "Quick Software, Best Software":
Google Maps became so slow that I did something incredible: I reinstalled Apple Maps on my iPhone. In contrast, today's Apple maps are very fast and responsive. The data is still not as good as Google Maps, but this is a good illustration of how slowness prompted me to reinstall an app that I've almost given up. I will try Apple Maps more in the future.
And pointed out the key points:
But why is it not good to be slow? Fast software is not always good software, but slow software rarely achieves greatness. Fast software gives users the opportunity to "integrate" with their toolsets. That is to say, the process does not interrupt.
Sometimes it even involves life and death! Hillel Wayne said in Performance Is Important that first responders in ambulances don’t use the built-in digital “patient care report” (PCR) system, but instead choose paper and pen, simply because PCR is a bit slow:
The ambulance I followed had an electronic PCR. No one uses it. I've talked to EMT about this and they say people they know don't use it either. Lack of training? «No, we are all trained. » Serious error? No, it works fine. Is the paper good enough? No, electronic PCR is much better than paper PCR in almost every way. It has only one problem: it's too slow.
It's not even that slow. When you open the drop-down menu or click the button, there is about a quarter of a second delay. But that makes things so unpleasant that no one wants to touch it. The paper is slow, annoying and error-prone, but at least it isn't that .
"Input Delay" is a key concept here. If your JavaScript is running and, as they say, "occupies the main thread", then this is exactly what can happen on the network.
Monica Dinculescu created a typing delay experiment that simulates this input delay. The 200 millisecond "We're done" setting is absolutely true. I'll never use software that feels like that. Jay Peters on The Verge agrees that any higher delay will worsen exponentially.
The extra interesting thing is: random latency is worse than consistent large latency, which is probably more common on our own websites.
The above is the detailed content of Fast Software. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undress AI Tool
Undress images for free
Undresser.AI Undress
AI-powered app for creating realistic nude photos
AI Clothes Remover
Online AI tool for removing clothes from photos.
Clothoff.io
AI clothes remover
Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!
Hot Article
Hot Tools
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
1793
16
1736
56
1587
29
267
587
What is 'render-blocking CSS'?
Jun 24, 2025 am 12:42 AM
CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.
What is Autoprefixer and how does it work?
Jul 02, 2025 am 01:15 AM
Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.
CSS tutorial for creating a sticky header or footer
Jul 02, 2025 am 01:04 AM
TocreatestickyheadersandfooterswithCSS,useposition:stickyforheaderswithtopvalueandz-index,ensuringparentcontainersdon’trestrictit.1.Forstickyheaders:setposition:sticky,top:0,z-index,andbackgroundcolor.2.Forstickyfooters,betteruseposition:fixedwithbot
What is the conic-gradient() function?
Jul 01, 2025 am 01:16 AM
Theconic-gradient()functioninCSScreatescirculargradientsthatrotatecolorstopsaroundacentralpoint.1.Itisidealforpiecharts,progressindicators,colorwheels,anddecorativebackgrounds.2.Itworksbydefiningcolorstopsatspecificangles,optionallystartingfromadefin
What is the scope of a CSS Custom Property?
Jun 25, 2025 am 12:16 AM
The scope of CSS custom properties depends on the context of their declaration, global variables are usually defined in :root, while local variables are defined within a specific selector for componentization and isolation of styles. For example, variables defined in the .card class are only available for elements that match the class and their children. Best practices include: 1. Use: root to define global variables such as topic color; 2. Define local variables inside the component to implement encapsulation; 3. Avoid repeatedly declaring the same variable; 4. Pay attention to the coverage problems that may be caused by selector specificity. Additionally, CSS variables are case sensitive and should be defined before use to avoid errors. If the variable is undefined or the reference fails, the fallback value or default value initial will be used. Debug can be done through the browser developer
CSS tutorial focusing on mobile-first design
Jul 02, 2025 am 12:52 AM
Mobile-firstCSSdesignrequiressettingtheviewportmetatag,usingrelativeunits,stylingfromsmallscreensup,optimizingtypographyandtouchtargets.First,addtocontrolscaling.Second,use%,em,orreminsteadofpixelsforflexiblelayouts.Third,writebasestylesformobile,the
CSS tutorial for creating loading spinners and animations
Jul 07, 2025 am 12:07 AM
There are three ways to create a CSS loading rotator: 1. Use the basic rotator of borders to achieve simple animation through HTML and CSS; 2. Use a custom rotator of multiple points to achieve the jump effect through different delay times; 3. Add a rotator in the button and switch classes through JavaScript to display the loading status. Each approach emphasizes the importance of design details such as color, size, accessibility and performance optimization to enhance the user experience.
How to center an entire grid within the viewport?
Jul 02, 2025 am 12:53 AM
To make the entire grid layout centered in the viewport, it can be achieved by the following methods: 1. Use margin:0auto to achieve horizontal centering, and the container needs to be set to set the fixed width, which is suitable for fixed layout; 2. Use Flexbox to set the justify-content and align-items properties in the outer container, and combine min-height:100vh to achieve vertical and horizontal centering, which is suitable for full-screen display scenarios; 3. Use CSSGrid's place-items property to quickly center on the parent container, which is simple and has good support from modern browsers, and at the same time, it is necessary to ensure that the parent container has sufficient height. Each method has applicable scenarios and restrictions, just choose the appropriate solution according to actual needs.


