ST-0008:
One of the first enhancement requests we received for Swift Testing was the ability to test for precondition failures and other critical failures that terminate the current process when they occur.
[…]
This proposal introduces new overloads of the #expect()
and #require()
macros that take, as an argument, a closure to be executed in a child process.
When called, these macros spawn a new process using the relevant
platform-specific interface (posix_spawn()
, CreateProcessW()
, etc.), call
the closure from within that process, and suspend the caller until that process
terminates. The exit status of the process is then compared against a known
value passed to the macro, allowing the test to pass or fail as appropriate.
I had heard talk about changing the behavior of preconditions and assertions during tests so that they would signal back to the testing system instead of actually terminating the process. This is a much more ambitious solution and should be more widely useful. For example, I’ve written tests to reproduce crashes that are triggered by a bug, but I can’t leave these enabled with XCTest because they’ll crash the whole testing system.
Exit tests cannot capture any state originating in the parent process or from the enclosing lexical context.
This is an unsurprising limitation. I’m guessing that it won’t be much of a problem, but I’m not sure without trying it.
It is often interesting to examine what is written to the standard output and
standard error streams by code running in an exit test. Callers can request that
either or both stream be captured and included in the result of the call to
#expect(exitsWith:)
or #require(exitsWith:)
.
[…]
The technical constraints preventing recursive exit test invocation can be resolved if there is a need to do so. However, we don't anticipate that this constraint will be a serious issue for developers.
Previously:
Language Design Programming Swift Programming Language Testing
Natalia Panferova (tweet):
This book distills the core principles and foundational concepts behind SwiftUI, the modern UI framework for building apps across Apple platforms. My goal is to help you go beyond surface-level understanding and develop a deep, practical knowledge of how SwiftUI works under the hood.
SwiftUI provides a simple, declarative way to build user interfaces, but behind that simplicity is a carefully designed architecture that can be tricky to grasp without the right perspective. In this book, we’ll explore the key APIs and design patterns that power SwiftUI, giving you a solid foundation to write more efficient, maintainable, and expressive code.
I’ve been working with SwiftUI since it was first released and later had the privilege of contributing to its development as a member of the core SwiftUI team at Apple, where I helped design and build some of the framework’s most widely used APIs. I wrote this book to share the insights I gained during that time, insights that will help you better understand how SwiftUI is built and how you can use it more effectively in your own projects.
Previously:
Book iOS iOS 18 Mac macOS 15 Sequoia Programming SwiftUI
John Gruber (Mastodon):
Whole Reddit thread examining this simple question: “What month is it?” and Siri’s “I’m sorry, I don’t understand” response (which I just reproduced on my iPhone 16 Pro running iOS 18.4b4). One guy changed the question to “What month is it currently?” and got the answer “It is 2025.”
David Price:
I’d like it to be known that I hated Siri before it was cool. I’ve writtennumerousarticles on the subject. I’m an anti-Siri hipster. But when a bandwagon comes along, you better believe I’ll be sitting up front.
[…]
What is surprising is that it’s actually getting worse. And people are noticing. This needs to change, and soon.
I’m not sure whether it’s getting worse for my purposes, but after so many years it doesn’t seem to be getting better. I personally don’t care that much about the world knowledge questions. What bothers me is the service itself. It still feels slow in the normal case and sometimes takes 10 or more seconds to fail and do nothing. After a sequence of commands when controlling it with AirPods, it still sometimes stops working, saying that I need to unlock my iPhone (which is not easily reachable—that’s why I was using the AirPods). Reminders still get split, with words lost, or mangled as it tries to parse what was meant to be literal text. Music controls still seem worse than pre-Siri.
Mark Gurman (article, MacRumors):
Apple Vision Pro Chief Mike Rockwell will take over Siri, which is being removed from AI Chief John Giannandrea, I’m told. Rockwell & Siri will report to Craig Federighi. Giannandrea is staying in larger AI role.
The moves have been several months in the making and were planned before Apple confirmed the Siri AI delays earlier this month.
Ryan Jones:
Told ya.
Tim didn’t “fire” JG “immediately”. Just took away his team.
(Followed by mutually parting ways in a few months.)
I would have assumed they’d keep him around running AI research, but Jones has good instincts on this stuff.
Mark Gurman (Hacker News):
Siri — the AI division’s main consumer product — has had a number of bosses over the years. When Apple first launched the voice assistant in 2011, it was overseen by software executive Scott Forstall. It was then given to services chief Eddy Cue in 2012 and transferred to the current software head, Federighi, in 2017. Giannandrea took it over a year later. Now it will be led by Rockwell, with oversight returning again to Federighi.
John Gruber (Mastodon):
My quick take on this is that it’s a turf battle that Craig Federighi just won. It’s not just putting a new executive in charge of Siri, it’s moving Siri under Federighi’s group.
Somehow, Teflon Federighi never seems to get blamed for Apple’s software failures, even though they extend way behind Siri and seem to coincide with his tenure. Siri has always been a mess, but macOS used to be really solid and better designed.
Mike Rockwell (not the one above):
It’s wild to me that there are so many people that see the Apple Intellegence thing as the indication that Apple fell off.
John Gordon:
The volume of Apple bugs I encounter continues to increase. I think it is going exponential.
Jeff Johnson:
I think the question Gruber didn’t explore is, why doesn’t Mike Rockwell now report directly to Tim Cook, when John Giannandrea ran Siri and reports directly to Tim Cook?
To me it looks like a tacit admission that Tim Cook failed in directly overseeing the Siri group.
Ryan Jones:
Fascinating how certain people are just 10x. Rockwell has lead AR, VR, Vision Pro, and now Siri.
Rockwell (53) is the new Mansfield (65).
Steve Troughton-Smith:
The anecdotes I’ve been told about Mike Rockwell don’t bode well for third party developer support and Siri’s AI efforts
M.G. Siegler:
First and foremost, while I made the quick, cheap, and obvious joke yesterday that Apple was putting the person in charge of the Vision Pro in charge of Siri, this does actually seem like good news for all involved – including us, the end users. While these two projects are linked as two largely unsuccessful ones for Apple, they’re really almost the opposite of one another. Vision Pro isn’t a huge hit for Apple because the strategy around the device was a mess. But the product itself does everything it aims to do and does it increasingly well. Siri, meanwhile, has a strategy that makes sense, especially in our age of AI. But the product is a complete and utter mess. And has been for 14 years running.
[…]
Rockwell doesn’t have the clout needed to recruit (and retain) the top AI talent that Apple will need here, but JG still does. The mistake seemed to be putting him in charge of the entire org, including the AI user-facing products, when he should have probably been more behind-the-scenes, managing the more technical aspects. He’ll apparently now be able to do that.
Nick Heer:
Unlike the Siri feature delay, I do not think the Vision Pro’s launch affects the company’s credibility at all. It can keep pushing that thing and trying to turn it into something more mass-market. This Siri stuff is going to make me look at WWDC in a whole different light this year.
Steve Troughton-Smith:
There’s no doubt that Apple sacrificed the Vision Pro’s launch in favor of putting all its effort and energy into Apple Intelligence — that pull-back was clear in the months leading up to it shipping to stores as the company got cold feet.
There was an awful lot of hubris, arrogance in how Apple treated developers and potential partners (no surprise), but a complete lack of buy-in from the rest of Apple’s engineering.
Steve Troughton-Smith:
Also, of note, Apple’s Vision Pro group has lost its leadership in the change, which underscores what I was saying earlier. Apple made a decade-long bet on AR/VR then threw it all away for some snake oil.
Previously:
Apple Apple Intelligence Apple Software Quality Apple Vision Pro Artificial Intelligence Craig Federighi Firing iOS iOS 18 Music Reminders Siri Top Posts visionOS
Andrej Karpathy:
There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. It’s not too bad for throwaway weekend projects, but still quite amusing. I’m building a project or webapp, but it’s not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
Via Simon Willison:
I’m concerned that the definition is already escaping its original intent. I’m seeing people apply the term “vibe coding” to all forms of code written with the assistance of AI. I think that both dilutes the term and gives a false impression of what’s possible with responsible AI-assisted programming.
Vibe coding is not the same thing as writing code with the help of LLMs!
[…]
Andrej is an extremely talented and experienced programmer—he has no need for AI assistance at all. He’s using LLMs like this because it’s fun to try out wild new ideas, and the speed at which an LLM can produce code is an order of magnitude faster than even the most skilled human programmers. For low stakes projects and prototypes why not just let it rip?
When I talk about vibe coding I mean building software with an LLM without reviewing the code it writes.
I Am Devloper:
vibe coding, where 2 engineers can now create the tech debt of at least 50 engineers
Colin Devroe (Mastodon):
But I just want to quickly recommend; do not hire anyone (a person or an agency) that thinks vibe coding is a good idea for production level products.
Experimenting? Playing? Thinking through ideas rapidly? Absolutely.
Think I’m crazy? Look at this email I just received from “Ian Foster” of Grayphite – a supposed “Cutting-Edge Software & AI solutions” business.
Previously:
Update (2025-03-25): Andrej Karpathy:
I just vibe coded a whole iOS app in Swift (without having programmed in Swift before, though I learned some in the process) and now ~1 hour later it’s actually running on my physical phone. It was so ez… I had my hand held through the entire process. Very cool.
Steve Yegge (via Hacker News, interview, Slashdot):
In this post, I assume that vibe coding will grow up and people will use it for real engineering, with the “turn your brain off” version of it sticking around just for prototyping and fun projects. For me, vibe coding just means letting the AI do the work. How closely you choose to pay attention to the AI’s work depends solely on the problem at hand. For production, you pay attention; for prototypes, you chill. Either way, it’s vibe coding if you didn’t write it by hand.
[…]
Vibe coding is currently going batshit viral, growing like crazy on a dramatic exponential curve, hitting major media outlets like the NYT, flooding social media, celebrated by some, decried by others. A bunch of companies were busy banishing it just as Google was unofficially adopting it. Everyone’s still arguing about what “vibe coding” even means. But a ton of people, more every day, think it’s the future right now.
[…]
The chart in Figure 1 depicts six overlapping waves of programming: traditional (2022), completions-based (2023), chat-based (2024), coding agents (2025 H1), agent clusters (2025 H2), and agent fleets (2026).
In the figure, traditional and completions-based coding – the two manual modalities – are on the decline, and the others are rising exponentially. Beginning with chat, each new wave rises much faster than previous waves. Finally the figure depicts vibe coding as also increasing exponentially, but on a dotted line alongside the others, because as we’ll see in a bit, vibe coding is not a modality.
Cendyne (via Hacker News):
The execution of agents today is over-hyped and does not hold up to the needs of any functioning businesses which need experts to develop and maintain their technical capabilities instead of single points of failure on the internet.
These models are trained on average sloppy code, wrong answers on Stack Overflow, and the junk that ends up on Quora. Despite the power and capability Claude 3.7 Sonnet has in small contexts, when faced with even a small codebase it makes constant silly mistakes that no normal developer would repeat and continue to repeat every hour of its operation.
[…]
Without expert intervention, the best these tools can do today is produce a somewhat functional mockup, where every future change beyond that risks destroying existing functionality.
Birgitta Böckeler:
In the past few months, I have regularly used the agentic modes in Cursor, Windsurf and Cline, almost exclusively for changing existing codebases (as opposed to creating Tic Tac Toe from scratch). I am overall very impressed by the recent progress in IDE integration and how those integrations massively boost the way in which the tools can assist me.
Previously:
Artificial Intelligence Developer Tool Programming
Howard Oakley:
For most, Console isn’t the right tool. It only offers the options of viewing its live stream, or making an archive of the whole log and wading through that when you need to look at an event in the past. Although my log browser Ulbow gives much better access, for many it’s still a daunting task. I’ve now switched almost entirely to using my new lightweight log browser, LogUI, and here explain how you can use it.
[…]
Before opening LogUI, generate an event that you can examine in the log.
Whereas with Console it’s important to generate the event after.
Developer Tool Mac Mac App macOS 15 Sequoia os_log
Bjango:
In the beginning, Bjango was just a couple of friends making free OS X Dashboard widgets. We started working on those widgets prior to OS X 10.4 Tiger’s release on 29 April 2005, so my best guess is we started working together some time in March 2005.
After releasing a few successful widgets, we moved on to what we really wanted to create — full Mac apps. iStat Menus 1.0 was released May 2007, and has seen constant updates since. I can’t believe we’ve been working on iStat Menus for almost 18 years.
Previously:
Anniversary Business Dashboard iOS iStat Menus Mac Mac App
Karin Matussek (Hacker News):
The judges on Tuesday said the Federal Cartel Office was right to find that the iPhone maker’s footprint across markets meets the threshold for more oversight.
[…]
Apple was attempting to topple a May 2023 decision by the German antitrust watchdog, which subjected it to the so-called 19a rules on the grounds that its strong position in digital markets could threaten competition.
Ursula Knapp:
With that, Apple joins Google parent Alphabet, and Facebook owner Meta, on Germany’s growing list of tech giants subject to possible measures curbing their dominance.
[…]
“Our ongoing review of Apple’s tracking regulation for third-party apps is therefore on a solid footing, and we are working flat out on this case and other cases against the major internet companies,” [Mundt] added.
Previously:
Antitrust App Tracking Transparency Apple Germany iOS Legal