Hacker Newsnew | past | comments | ask | show | jobs | submit | adamwk's commentslogin

It’s not a prerequisite though. Nor is Hamlet or any of the other works referenced. Very little will be missed if you haven’t read the Odyssey. It’s a book that stands alone on its own. Like anything else, Ulysses is inspired by other works, but you don’t need to catch every single reference or allusion to enjoy a book or movie

I’m confused, that is how it works. If a developer increases their target version to say iOS 18, a user running iOS 16 would be able to download the last app version that supported it, even after factory resets. If the third party developer dropped support for APIs or whatever to break that version, it’d be broken regardless to whether or not you had the app downloaded already.


I'm pretty sure what I've seen is: If you backup and restore your apps, the version you previously had gets copied back over. But, if you wipe and try to re-download, only the versions that the developer has up on the AppStore are available to you, and if none of them support your OS, you're hosed. This is definitely true if you set up the device with a new account.


The way to write performant Swift is classless so without ARC, but classes have been necessary for many areas. Recently, Swift’s been leveraging a lot of ownership features similar to Rust to make it possible to do more without classes, and I’d guess Apple teams would be using those


What areas are classes necessary assuming you’re talking about pure Swift and not iOS?


Where copying is expensive (most Swift collections are backed by classes for COW semantics). Where location stability is necessary (where you need a mutex). Resource allocation. Those are the primary examples that noncopyable types are meant to address.


Ah yes great examples, thank you for explaining.


Yeah I’ve had that in various forms through my life. I’m now in probably my best state. One thing that helped was switching from vyvanse to concerta. I don’t know why but vyvanse didn’t really help. It just made me hyper focus on anything but work.

Another is starting a new job. I don’t think I realized how bored or burnt out I was until I left and joined a new company.

Other than that all the basics: sleep, food, and exercise.

But it’s hard when it gets bad. The only other advice is have a good therapist and psychiatrist that you trust.


Out of curiosity, how do you describe your medication making you hyper focus on anything other than work? My psychiatrist has told me that means it's working, yet I feel like it is just a different sort of dysfunction.


I did consult both a therapist and psychiatrist and they tried helping me but with no success, the therapist did refer me to other mental health professionals to get psychological testing done.


There’s a section in the proposal about this: https://github.com/swiftlang/swift-evolution/blob/main/propo...

Tl;dr: Sequence and Collection are incompatible with noncopyable types and conditionally conforming when elements are copyable would result in too many implicit copies. They’re working on protocols to cover noncopyable collections such as this, which will probably have a similar API shape.


Interesting; if I'm understanding correctly, it sounds like Swift doesn't have a standard lazy iteration API yet? I would have guessed that it did if asked before reading this, but it's good to hear that they're already working on it. Since I feel super spoiled by lazy iterators in Rust, I'm super curious if anyone has more Swift experience and could chime in on if there are other language features or APIs that might illuminate why there wasn't as much of a need for this earlier; my general perception of Swift as an outsider is that it tends to have pretty well-thought out decisions based on factors that I just happen not to know about personally (e.g. compatibility with other parts of the Apple software ecosystem or different priorities due to the domains Swift is often used in compared to the type of stuff I work on personally).


There are lazy collections, but they’re not default.

Why the protocols are designed the way they are is until very recently all types were implicitly copyable, but most of the collection types like array and dictionary were copy on write; so the copies were cheap. I think in general, though, there are a lot of performance footguns in the design, mainly around when copies aren’t cheap. The future protocols will hopefully rectify these performance issues.


Yeah - super weird. It’s like they saw a nice way to avoid thinking about ownership and references, and now have to reconcile with the real problem.

All of these “replace C++” projects have been quite disappointing. Where they tried to make big simplifications they often just didn’t understand the original problem and inherent complexity - or they made a good, but opinionated design choice which has been unable to survive bureaucratic demand for more features, etc.


Agreed, I left the episode thinking I didn’t take the right college courses to understand it. There were a lot of “proof is trivial” or “draw the rest of the owl” types of explanations


I guess this is a side-effect where, as things stood, developers were incentivized to just forgo IAP and force users to jump through hoops to find how to give them money; and that in turn wasn’t customer friendly. But in general I much prefer IAP to whatever payment system the developer uses. It makes it so easy to do things like change or cancel any payments I have.

In general I think centralized stores are customer friendly but anti developer. As a less controversial example, see how many gamers will wait months or years for a game to leave the Epic game store and go on Steam.


Centralized stores are only superficially consumer friendly. The store owner is too well positioned to rent seek, and they will inevitably do so -- as Apple in fact is.


Steam doesn't impose anti-competitive measures on games, though.


Yeah NSURLSession is great and I always find whatever library I’m forced to use clunkier than using it directly with some helper methods.


Tim Sweeney has his own app store that does the same thing as Apple.


Odersky forcing through major syntax changes for Scala 3 was such an unforced error. It's baffling add new syntax on top of major semantic changes to the type system.


Stroustrup said "There's two kinds of PLs, ones that people complain about and ones that nobody uses."

Odersky made Scala3 become a language that nobody uses and people complain about!


Problem is he’s a full time academic.

So he doesn’t care if this amazing feature he’s invented has no IDE support.

Or if the Scala tooling ecosystem is so ridiculously poor.


But did it provide a gain in power and soundness? There issues with the 2.x system.


It did, which makes it all the more frustrating that you can't adopt it separately from the syntax and tooling changes.


But the new syntax is optional, right? So you could upgrade and keep the old syntax? (I'm not a Scala dev, so this is just my impression.)


Some of the syntax changes are optional, some of them like the _/* change aren't.


Most programming languages have unsound features.


Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: