This is entirely ignoring the value third party developers bring to Apple's platforms. I'd argue Apple has hugely benefited from a robust selection of third party apps available via the App Store, and the quality and diversity of apps on that store has been a core part of the value proposition for their hardware.
I don't think people being unemployed and staying at home due to a global pandemic is remotely comparable to a situation where people were financially stable but worked less.
Imagine a person with health conditions that fit the high risk population of COVID mortality. Now, imagine those people with other health conditions (let's say obesity or heart disease) having a small accident that isn't life threatening but does require a trip to the hospital where they have a higher likelihood of contracting COVID.
If I'm one of those at risk people, my "active" activities are going to lean to the safer options I can find like walking or jogging. No mountain climbing, kayaking, skiing, and so forth.
I explained this to my parents who have a few existing health conditions that have a high correlation with COVID mortality rates based on the data I've seen. They don't need to go into the hospital for a cut or injured finger if they can avoid the accident in the first place. Obviously if a real emergency arrives you need to weigh the risks of contracting COVID vs the emergency (an admittedly nearly impossible task) but you should try to minimize risks for the time being where you can to try and avoid that situation completely.
Basically you need to be a little more risk averse than you may normally be under the assumption a minor injury is manageable if you're potentially susceptible to COVID right now.
For Apollo's use case there's a solution: iOS 14 adds a new API that lets you perform a pattern match against the contents of the clipboard. That way Apollo can attempt to match a Reddit link, and only actually read the clipboard if that match is successful.
This largely only really true on Android. iOS at least lets you install content blockers that work with Safari as well as any embedded web browsers within apps. The only place I typically see ads on iOS is in free to play games, and in those cases that's usually a pretty good incentive to play something else.
My understanding was always that NeXTSTEP served as the foundation of OS X, and while it certainly got a new desktop environment and compatibility with MacOS's legacy Carbon APIs, it was essentially still NeXTSTEP under the hood.
Original NeXT classes were prefixed NX_. Then NeXT worked with Sun to make a portable version of the GUI that could run on top of other OSes -- primarily targeting Solaris, of course, but also Windows NT.
That was called OpenStep and it is the source of classes with the prefix NS_ -- standing for Next/Sun.
Swift doesn't actually use garbage collection, it uses a variant of Objective-C's Automatic Reference Counting (ARC) which was introduced a few years prior to Swift.
I've been working through this book over the past few days, and writing my own git implementation in Rust in parallel, and I've found Ruby to be much simpler from an implementation standpoint. Ruby's standard library provides a lot of useful functionality out of the box (SHA1 digests, the deflate algorithm) which I've had to pull in dependencies for in my Rust version.
Obviously the Rust version is significantly faster, but the Ruby version is higher level and better expresses the concepts the book is trying to demonstrate without getting too bogged down in syntax, types, etc.
From my personal experience, Flow prioritises soundness in its type system, and thus can catch some bugs that TS won’t, but the TS tooling and editor support is drastically better than Flow’s.
Edit: oh and it’s worth noting that I’ve had much more luck finding TS definitions for third party packages than I have with Flow.
Could you expand some more on the tooling/editor support?
I’ve only done a cursory look. My editor (IntelliJ) supports both to some level. Webpack/Babel do too.
I’m very new to writing React and modern front end JS so it’s quite possible there are things that I should be looking out for that I don’t even know about.
Typescript compiler architecture is quite different to flows. Typescript was written from the get go to provide really fast and accurate intellisense to IDEs. The newer refactoring powers are super nice too. Most ides just ask typescripts language service “hey, my user’s cursor is here, what should I show for code completion?”
I think that’s what differentiates TS from flow. Typescript thought about the whole developers workflow while flow is just a compile time typechecker.
At this point, I think Flow clearly has a minority mindshare & is looked at more skeptically all around the JS ecosystem, and maybe even the React ecosystem based on what I see talked around. TS does a much better job integrating with existing JS and is much more practical about incremental updates whereas Flow bleeds all too easily into needing to add typing to a significant amount of code in order to add a type.
That's not to say that either TypeScript or Flow are perfect - they both are constraining with typing when it comes to composing functions last I checked.
I didn't have too many problems with typescript and ramda. I occasionally have to explicitly send in types to the first function of a pipe, which is a little annoying, but for the most part it seems to just work for how I use it. What problems have you run into?
Have a look at the typescript declaration for Node's util.promisify (sorry on mobile can't find it right now). It's something like 10 lines long and covers only a handful of cases.
It's not something you'd want to find in the middle of your code, yet you may have to if you want to do generic/functional programming in TS.