360 karma · joined January 11, 2021
Comprehensions are a little less magical - if anything, they are more explicit. If I want to create a list where each element is generated by some function over another list, I just say it. Doing so with loops is obscuring what I wanted to say in the first place. The problem with comprehensions isn’t so much the comprehension, but the obtuse ways people can use them to eke out performance by avoiding explicit loops.
I’m all for things that are closer to what a programmer means, but less keen on features that entail obscuring details that may come back to haunt the programmer later (I see this most often with decorators).
(E: I don’t get why people downvote this - all of the benefits of vaccination are precisely due to what I describe. Lower likelihood of individual bad outcomes, which reduces burdens on healthcare, and ideally, reduces community spread by reducing the amount of virus that replicates in an individual and can be passed on. This is why I was one of the first in line when I could get the vaccine. Perhaps daring to critique people with unrealistic vaccine expectations is unacceptable?)
The added restrictions of recent times (e.g. SIP, the move to a non-GNU build toolchain, hard read-only restrictions on the OS region of the filesystem, etc) aren't so much a FOSS issue as them just adopting conventions that aren't present on the Linuxes. The breakage of packages and porting efforts feel very similar to when we used to have to worry about how a package would work on HP-UX, Irix, Solaris, and the various systems that were all similar but not quite identical. That was never a function of FOSS or not - it was just a function of not being all the same.
I find it very frustrating that people try to treat OSX as a Linux - it's not, and it never will be. If you want to support macOS, then support macOS - don't try to bash Linux-isms onto it since they will always feel like a hack since it isn't and never will be a Linux. If that's important to you, there's an easy solution - use Linux. I do that - I have my MacBook that I use as a Mac, and for the stuff that's simply too awkward to use natively there, I just ssh to my Linux workstation and carry on.
Are we not allowed to do things for fun or just to pass the time anymore without someone writing that we’re wasting our time since it isn’t boosting our career?
This sounds less like bad corporate policy and more like naive employees who didn’t think through the importance of separating work and personal devices.
What the Apple move is doing is showing that they are willing to relax their restraint. It gets tricky because everyone agrees that the specific goal here is honorable, but the manner by which they are using their power to achieve it is generalizable to areas that are less honorable. Once they are willing to use their power to accomplish one highly honorable goal, it's not a big ask for them to use it for a slightly less honorable goal in the future. Iterate that a few times and you can find yourself in a very bad place. It's the classic slippery slope argument - when you know there is a slope that leads to dangerous places, you need to not ever start down it no matter how righteous the motive is in starting down that path in the first place. There's a reason we have the old saying "the path to hell is paved with good intentions".
The existence of power isn't what matters: it's the intention and willingness to exercise it. Apple is now demonstrating that they have changed their stance in how they choose to exercise their extreme power. That's worthy of scrutiny.
For a concrete example of where I expect this to naturally lead to: instead of a database of child pornography being the source of the hashes to search for, the Chinese government provides a set of hashes of all known digital photos of the Tianenmen square protests of 1989. Does it really seem implausible for a government like China's to NOT use this kind of technology for that purpose? It's not hard to cook up similar examples all over the place.
The resistance to them seems to be largely due to lazy developers: it would be EASIER if the system let a developer do whatever they want with a “trust me, I’m smart” justification. But we can’t design for the occasional safe and smart developer: we need to design for the sloppy ones and the malicious ones. The smart and safe ones can find a way to work within the constraints. As for lazy and sloppy ones who can’t adapt to the constraints - adapt.
1. The pandemic was weird, and likely a time when people didn't want to change jobs due to a need for stability. It seems like it would be normal to see a wave of job changes that have been basically on hold until people felt safe.
2. I'm assuming some people have had more of a chance than normal to think more about what they want out of their life and jobs over the last 18 months. For some people, this means they might make a job change that they didn't anticipate making in January 2020.
3. It's one thing to threaten to leave, and a whole other thing to actually do it. I've had co-workers who were "ready to quit" for my whole career, some of whom are still at the jobs they were ready to quit a decade+ later.
I learned this the hard way trying to sell something that competed with free tools from Facebook/Google/[other giant data monetizing companies]. Our tool was/is competitive, but we aren't in the business of data harvesting or advertising - so, the engineering cost (many years of effort) would have to be paid from actually selling the product. The response? People want the free ones, and could really care less how the engineers that built it were paid as long as THEY (the consumer of the tool) got it for free.
As long as the "someone else will pay for X so I can have it for free" attitude is acceptable and widespread, we're likely stuck with a pervasive and deep data economy.
This social argument I sympathize with - nobody likes to be lonely. But please - don't force everyone to go back to one model of working simply to support a subset of people who've chosen to make their life revolve around their employment.
I really don’t see what this adds other than a cryptocurrency component and a leaderboard. I’m not convinced that the missing component in modern science is some form of internet points.
[Disclaimer: I’m a couple decades post-PhD, actively working as a researcher the whole time on all sides : publishing my work, peer reviewing others, and the editorial side helping the whole process work. I am very happy to see progress towards making science work better, but have learned to be super skeptical of startups sniffing opportunities in this space.]