Weekly Comment
DeepSeek’s new model is undoubtedly one of the brightest stars in the tech world recently. With incredibly low training costs, they have developed an AI system that rivals the performance of leading large models. Based on personal experience, DeepSeek’s V3 and R1 are more than sufficient to meet the needs of most scenarios. Surprisingly, the training cost is merely a few million dollars—a figure that has sparked widespread industry attention and skepticism. Some practitioners even regard this claim as “cognitive warfare”, finding it hard to believe. However, its API pricing, which is just a fraction of mainstream models, strongly validates its training efficiency. What’s even more admirable is that DeepSeek has open-sourced its training methods and inference mechanisms. This move is likely to catalyze the emergence of more low-cost, high-quality AI models, providing users with affordable and excellent AI services.
However, whether DeepSeek’s success will prompt industry giants to adjust their model development strategies remains a profound question. Since OpenAI demonstrated the potential of large language models (LLMs) through a “more is more” approach, the AI industry has almost universally adopted the creed of “resources above all.” Capital, computational power, and top-tier talent have become the ultimate keys to success. Today, the AI industry has evolved into a capital-driven frenzy. Regardless of a product’s profitability, simply announcing the purchase of large quantities of GPUs can significantly boost a company’s stock price. In an environment focused on “faster and bigger,” most practitioners have been swept away by this trend.
In such a landscape, innovation is often diluted by vast resources. When industry leaders focus primarily on how to spend money, breakthroughs like those achieved by DeepSeek, leveraging limited resources, become exceptionally valuable. Perhaps it is precisely the scarcity of resources that has driven them to explore alternative paths and achieve remarkable results. As the Chinese proverb goes, “It’s easy to go from frugality to extravagance, but hard to return from extravagance to frugality”. For major AI companies accustomed to high investments and large-scale resource allocation, it will undoubtedly be challenging to shift their mindset in the short term. Even if DeepSeek’s methods provide some inspiration, without fundamental changes in philosophy, these companies will struggle to achieve sustained and significant progress in reducing training costs.
I sincerely hope that as DeepSeek gains more resources in the future, it can continue to maintain its efficiency in utilizing limited resources and avoid being burdened by increasing abundance. DeepSeek’s success is not only a triumph of technology but also a victory for the spirit of open-source—a success unshackled by capital and one that truly deserves recognition and celebration.
Recent Selections
How to Check if a Modifier Key Is Pressed When Clicking on a Menu Bar Item in macOS Apps
Experienced macOS users might have noticed that holding down certain modifier keys (e.g., Option) while opening an app menu triggers different menu options. In this article, Pol Piella Abadia explains how to detect such behaviors in both AppKit and SwiftUI, demonstrating how to show or hide different menu contents based on user input. While this is a subtle feature, it adds a professional touch to your app’s user interactions.
Using 2 Editors Because Xcode Is Dumb
Before Xcode 16, developers could easily drag and drop a local version of a library into a project and modify the library’s code while working on the project. However, this convenient workflow was deprecated in Xcode 16, replaced by manually configuring local dependencies (e.g., ../../PACKAGE_NAME/
). This change introduced several issues, such as failing to sync file changes, inability to run local library tests, and restrictions on opening the library and project in two Xcode windows simultaneously. Christian Tietze critiques this adjustment and suggests using an alternative editor alongside command-line tools to improve efficiency and flexibility.
Creating a Reusable Action Menu Component in SwiftUI
Many SwiftUI developers integrate components like Sheet
, confirmationDialog
, or contextMenu
directly into their main view code. While this is convenient, it often results in code that’s hard to maintain or reuse. In this article, Peter Friese shares techniques for building a reusable action menu component by extracting view code, creating custom modifiers, and using LabelStyle
and PrimitiveButtonStyle
to customize both style and behavior. This approach not only simplifies code but also significantly improves reusability and UI consistency, enhancing development efficiency and the user experience in SwiftUI projects.
Reducing Motion of Animations
Apple’s Human Interface Guidelines remind developers that excessive or unnecessary animations can distract users or cause discomfort. In this article, Keith Harrison discusses how to respect the “Reduce Motion” accessibility setting and provides practical code examples. Harrison emphasizes principles such as avoiding gratuitous animations, ensuring animations are not the sole means of conveying information, and being cautious with large or high-frequency motions. He also demonstrates how to use .accessibilityReduceMotion
in SwiftUI to detect user preferences and disable or adjust animations accordingly, creating a more user-friendly experience.
Observing Properties on an @Observable Class Outside of SwiftUI Views
While the Observation framework primarily supports SwiftUI, developers can also observe property changes in @Observable
classes outside of views by using withObservationTracking
. Donny Wals explores techniques and considerations, such as achieving didSet
semantics, optimizing code reuse, and addressing @Sendable
limitations in Swift 6. Wals highlights the challenges of using Observation outside SwiftUI and suggests that for reliable property observation, especially in Swift 6 language mode, the more mature Combine
framework remains a better choice.
Announcing Tuist Registry
While Swift Package Manager (SwiftPM) manages dependencies directly from source repositories without a centralized registry, this decentralized approach introduces challenges:
- Storage and efficiency: Cloning a package downloads the entire Git history, wasting disk space.
- Non-deterministic builds: Version tags in Git repositories can be reassigned, leading to inconsistent builds.
- Availability risks: Moving or deleting a Git repository breaks dependent builds.
- Speed bottlenecks: Projects with extensive history take longer to clone.
To address these issues, Tuist recently announced Tuist Registry, a service based on the Swift Package Registry proposal SE-0292. It allows developers to download only the required source archives, bypassing Git history, thus improving efficiency and saving time and disk space. This enhancement makes local development and CI/CD pipelines more efficient and reliable.
In this article, Marek Fořt provides a detailed overview of Tuist Registry’s benefits and guides developers on how to use this powerful tool.