Archive for November 20, 2025

Thursday, November 20, 2025

(No) MainActor by Default

Matt Massicotte (Mastodon):

Swift 6.2 gives you the ability make MainActor the default isolation. Unlike the rest of the features introduced as part of “Approachable Concurrency”, this is a long-term mode. It is optional and will remain so. However, this mode is enabled for new app targets in Xcode 26. And many people take this as a very strong signal from Apple, myself included.

[…]

Well I have made up my mind, at least for now. We should not. I’m not sure we should even have the ability to do so.

[…]

But when you finally encounter concurrency, and you almost certainly will, a default of MainActor can make those encounters much more difficult to understand and address.

[…]

(I also did a whole talk on this if that’s interesting.)

I still find this all rather confusing, but I’m inclined to agree with his argument. I understood the original motivation as sort of progressive disclosure. You shouldn’t have to deal with concurrency at all if you don’t need your code to be concurrent. But for most real apps you will have to understand and use the full Swift Concurrency. If opting in to MainActor (the keyword, not the default isolation) is easier than opting out, is that really helping in the end? Why start down a garden path that leads to a cliff? And is having the simple mode worth the confusion of having two modes, and having to keep straight which module is using which? (This is on top of having separate modes for Swift 5 and 6.)

Ryan Booker:

I’ve seen quite a few people saying something similar. What worries me is that not only is MainActor the default now, the WWDC videos introducing it are quite clear that Apple think you should make your App target and UI based modules all MainActor by default, with non UI modules nonisolated by default.

So I’m worried about fighting the tide, but also the idea that you have two inverted concurrency systems to reason about in one code base if you follow Apple’s suggestion!

Jonathan Wight:

The most vocal Swift Concurrency expert outside of Apple is recommending to avoid MainActor default isolation and you’re left wondering what is even the point.

Previously:

Update (2025-11-21): Matt Massicotte:

I want to add though, that I find it really confusing to look at MainActor default as some kind of alternative path towards a 6 migration. Because it’s really just automation, it does not change the nature of the problems you have to consider.

Update (2025-12-01): Tony Arnold:

I’m trying out a MainActor by default project today, and I can’t use LocalizedStringResources that are extracted from my xcstrings catalog 😳

Antoine van der Lee:

By enabling approachable concurrency and setting the default actor isolation to MainActor, you immediately establish a safer and more predictable foundation for Swift concurrency. It also makes your project more resilient to future Swift updates and encourages a consistent mental model from day one. You can learn more about this concept in my article Approachable Concurrency in Swift 6.2: A Clear Guide.

Europe Scaling Back GDPR and AI Laws

Robert Hart and Dominic Preston (Hacker News, MacRumors):

Under intense pressure from industry and the US government, Brussels is stripping protections from its flagship General Data Protection Regulation (GDPR) — including simplifying its infamous cookie permission pop-ups — and relaxing or delaying landmark AI rules in an effort to cut red tape and revive sluggish economic growth.

The changes, proposed by the European Commission, the bloc’s executive branch, changes core elements of the GDPR, making it easier for companies to share anonymized and pseudonymized personal datasets. They would allow AI companies to legally use personal data to train AI models, so long as that training complies with other GDPR requirements.

The proposal also waters down a key part of Europe’s sweeping artificial intelligence rules, the AI Act, which came into force in 2024 but had many elements that would only come into effect later. The change extends the grace period for rules governing high-risk AI systems that pose “serious risks” to health, safety, or fundamental rights, which were due to come into effect next summer. The rules will now only apply once it’s confirmed that “the needed standards and support tools are available” to AI companies.

Update (2025-11-21): noyb (via endl):

As gradually leaked the last days by various news outlets, the EU Commission has secretly set in motion a potentially massive reform of the GDPR. If internal drafts become reality, this would have significant impact on people's fundamental right to privacy and data protection. The reform would be part of the so-called "Digital Omnibus" which was supposed to only bring targeted adjustments to simplify compliance for businesses. Now, the Commission proposes changes to core elements like the definition of "personal data" and all data subject's rights under the GDPR. The leaked draft also suggests to give AI companies (like Google, Meta or OpenAI) a blank check to suck up European's personal data. In addition, the special protection of sensitive data like health data, political views or sexual orientation would be significantly reduced. Also, remote access to personal data on PCs or smart phones without consent of the user would be enabled. Many elements of the envisaged reform would overturn CJEU case law, violate European Conventions and the European Charter of Fundamental Rights.

See also: AFP.

Update (2025-11-25): M.G. Siegler:

Sure, it’s a few seconds here and there, but those add up in aggregate. And I, like everyone who lives in Europe, am doing it many, many times a day. Every day. And some have been doing this for over 15 years now…

And it’s actually worse than tedious or time-wasting, it actually does the exact opposite of what the intent was: to make people more mindful of their privacy and give them more control. No one reads these anymore, no one.

Nick Heer:

If you are annoyed about cookie banners, get ready to have that dialled back — maybe, a bit. The proposed changes will allow users to set their cookie preference in their web browser. But media companies will be free to ignore those automatic signals and ask for your permission to set cookies anyway. Also, the circumstances under which consent is not required will be broadened, but websites will still need to ask before using cookies for targeted advertising. Oh, and consent is still required by laws elsewhere and, until policies are harmonized around the world, consent banners are here to stay. Even if everyone copies the proposed changes for the E.U., you will still see a lot of these banners if you spend a lot of time reading news.

Previously:

Sketch Copenhagen

Freddie Harrison (Mastodon, Pieter Omvlee):

Early on in the process, we prototyped various approaches to the sidebar and Inspector, including floating options (the new default in Tahoe) and glass materials. Ultimately, we went custom here, with fixed sidebars that felt less distracting in the context of a canvas-based design tool.

Another area we went custom with was document tabs. Having them run along the top of the window didn’t work well with the toolbar and ultimately felt too boxy and imposing. Instead, they now live in the sidebar, and are just as functional.

[…]

As well as shipping our own glass effect soon after WWDC, we’ve adopted Liquid Glass in subtle ways in Copenhagen. You’ll find it in the toolbar, minimap and notifications at the bottom of the Canvas.

[…]

One of the first things you’ll notice when you work with the new Inspector is that most of the old popovers are now separate panels.

These new panels have a lot of advantages. You can move them freely around the window to bring them closer to your work. They also stay open if you change your selection and they’re still applicable, making similar changes across multiple layers more convenient.

[…]

We created a new set of icons (over 700 of them) — you’ll find them everywhere from menus, to the Inspector, and beyond.

Nick Heer:

This probably will not convert the kind of person who finds Liquid Glass revolting in its entirety, but I think this implementation is thoughtful and well-considered. Note, too, that Apple itself has not shipped any of its own Mac pro apps with Liquid Glass changes. The choices made by the Sketch team are instructional.

Mario Guzmán:

The Sketch design team should be the folks designing at Apple.

Haven’t they sucked up enough talent already?

Jonathan Fischer:

Random thing that I love: the whole application is still just 215MB.

Benjamin Schmidt:

In general a nice update and so far the best implementation of Liquid Glass, but that toolbar is breaking me. Muscle memory I built since Sketch 3 (partly Sketch 2 even) gone and replaced by searching icons in an ever changing toolbar.

Sketch:

A customizable toolbar wasn’t really a viable option in this era of macOS.

Previously:

Update (2025-11-21): Simon B. Støvring:

Sketch just pushed another big UX shift along with severe new bugs in core features. This time the sidebar indentation is all over the place, so I can’t trust folder relationships, and it slows me down a lot.

I don’t have time to relearn my design tool every few months just because Sketch thinks it’s fun to shake things up.

[…]

The right choice for me is to roll back to the previous version of Sketch and wait until the early rough issues in the latest update are ironed out. I’m glad Sketch makes that possible.

Nicolai Henriksen:

To me it is equally bad with Figma although in different ways. Big difference is that it is not when you install annew version but “while blinking”.

Steve Troughton-Smith:

Sketch made such a big deal about being a native Mac app a few years ago, as an argument against using Electron/Catalyst, but today the app’s (beautiful) new redesign doesn’t seem to use native controls or elements anywhere. Custom toolbar, custom sidebar, custom tooltips, custom ‘tabs’. I totally get it, but there’s a reason cross-platform toolkits exist, and I sure would prefer a full-featured native iPad version of my design tools than a Mac-shaped line in the sand.

Previously:

Update (2025-11-25): Pieter Omvlee:

I don’t think we’d have gone this custom if Liquid Glass looked more at home on the Mac than it does today. Let’s say our hand was a tad forced 😄

[…]

Im super proud of the job we did with Sketch for Liquid Glass, but we shouldn’t have had to go this far in the first place if the design language actually supported what we can call ‘Pro Apps’. I mean Xcode looks like a toy now, that can’t be right surely 😝

Nikhil Nigade:

Please reintroduce the “Share” button here. I use certain share extensions for my workflows, and the lack of a share button here is really breaking my momentum.

Jordan Morgan:

Just a Sketch appreciation post. I use it for every single blog post I make at the 9-5 and my own stuff. A fantastic feeling Mac app.

Mastodon CEO Steps Down

Eugen Rochko (via Hacker News):

After nearly 10 years, I am stepping down as the CEO of Mastodon and transferring my ownership of the trademark and other assets to the Mastodon non-profit. Over the course of my time at Mastodon, I have centered myself less and less in our outward communications, and to some degree, this is the culmination of that trend. Mastodon is bigger than me, and though the technology we develop on is itself decentralized—with heaps of alternative fediverse projects demonstrating that participation in this ecosystem is possible without our involvement—it benefits our community to ensure that the project itself which so many people have come to love and depend on remains true to its values. There are too many examples of founder egos sabotaging thriving communities, and while I’d like to think myself an exception, I understand why people would prefer better guardrails.

But it would be uncouth for me to pretend that there isn’t some self-interest involved. Being in charge of a social media project is, turns out, quite the stressful endeavour, and I don’t have the right personality for it.

Matt Birchler:

Rochko seems like a good guy and I thank him for all he’s done leading Mastodon all these years.

Update (2025-11-25): Laurens Hof (via Manton Reece):

Mastodon is also transitioning into a Belgium non-profit entity as the future home of the Mastodon organisation. The current Mastodon organisation is in Germany as the Mastodon gGmbH entity. This organisation automatically become a for-profit organisation after its charitable status were stripped away. The new Belgium entity (an AISLB) allows Mastodon to become a non-profit organisation again. The organisation does not know yet when exactly the transfer to this new Belgium entity will happen. Meanwhile, Mastodon will also continue to operate an US-based 501(c)(3), as a “strategic overlay and fundraising hub”.

Another important change is that the Mastodon organisation now owns the Mastodon brand and assets, which used to be owned by Rochko. The organisation has attracted various larger donations, with Mastodon listing Jeff Atwood and the Atwood Family (EUR 2.2M), Biz Stone, AltStore (EUR 260k), GCC (EUR 65k), and Craig Newmark. These donations are partially used to fund acquisition of the Mastodon brand and assets from Rochko. Rochko is receiving a one-time compensation of EUR 1M for transferring the Mastodon brand trademark and assets to the organisation, which also compensates him for 10 years of work on the project at a below-market rate. Hlatky noted that Rochko turned down earlier acquisition offers worth more than 10 times this amount to keep Mastodon as a non-profit and open-source project.