the path of most resistance... sometimes i wonder if apple's insistence on a mac + paid membership is a kind of intentional filter, like they want someone who's devoted enough to invest 100 bucks + a mac etc
Because it would cost Apple a substantial amount of money to make it possible to build your code for iOS on other platforms in any sort of supported fashion. So all the stuff they invest very substantial amounts of money into creating and maintaining are only going to be licensed for use on the hardware they sell under the latest operating system it runs. Asking for more is asking them to spend more money without any evidence of a commensurate return.
If you can produce a properly structured submission to the App Store ingestion pipeline without using a Mac, then I doubt Apple will care. But that doesn’t mean they’re obligated to help you, and especially not to spend millions of dollars to do so.
The Apple developer terms of service require all app submissions to come from a Mac.
Apple could've chosen to offer no tools and leave it to the community to build their own. I think that's reasonable. I don't expect Microsoft to bring MSVC to Linux.
But Apple take the explicit position that you must purchase a Mac in order to ship apps for iOS.
It’s not really that onerous for a platform to require that, to develop for it, you need to actually take part in it. For Apple platforms that means becoming a Mac user. For IBM i and z that also means getting substantial hardware or paying for accounts and licenses (once you want to go beyond learning).
You can develop for Linux and BSD and Haiku and all sorts of other platforms for free. If the cost is what matters to you, then just do that. If you’re doing it as a business, though, consider that you’re extremely lucky to be able to just buy a low-end device and a low-end system and that’s all the capital investment needed (plus the US$100/year membership as recurring opex).
Xcode’s a lot more than a wrapper for UNIX utilities. For example, it has an entire build system. It doesn’t just invoke xcodebuild under the hood—and even if it did, xcodebuild uses the exact same code to build your projects as the IDE.
Most of the problems that I saw people have with Xcode over the two decades that I worked on it were the result of one fundamental problem: They wanted to work a different way than Xcode is designed to work, and jumped through a ton of hoops to do so, and then blamed Xcode for not accommodating their intentional working at cross-purposes.
A good example: An app that considered itself “large” because it had a thousand tiny static library targets each with only one to three or so ObjC classes. Far smaller than Xcode itself, but because they insisted on working that way—for no real articulable benefit besides “that’s how we want to work”—their project took hours to build from scratch instead of minutes like much larger projects that have many fewer targets.
In my experience, it’s quite “crashy.” It often locks up so bad, that I need to force-quit (or force-restart the Mac). I end up doing that once a day, or so. I suspect that many of the performance and stability issues, have to do with resource usage. It’s a damn big app.
It can also end up in strange states, where portions of the UI fall “out of sync,” and the app needs to be restarted. Some operations (like opening a storyboard, or stopping at a breakpoint) introduce massive delays.
It’s not a denigration, calling something a UI shell. I’m working on one, right now. The engine and backend were done in April (started in February), and all the work since, was on the UI shell. I probably could have shipped something that “ticked all the boxes,” in May. It’s almost done, but there’s still a couple of months of testing, ahead.
Imagine you wrote a WYSIWYG text editor, like Libre Office Writer. You have all sorts of functionality and an overall architecture which makes it sane to upkeep the project & have things work well together. Then someone else makes a custom font, but kind of does it their own way and with a different approach making it a one off from the way the rest of the fonts all work and are used in the program maybe using a custom font file format parser and different UI element even though you know it could have just used the normal, already maintained and planned out code paths.
You can of course merge anything with the right license if you so like, like that one off font code into your editor, but if it doesn't fit well into the overall project or meet the general quality standards of it then it's not practical to and can actually be worse than not including it. Upstreaming is about submitting something the maintainer can reasonably accept and maintain, not just about whether working code is available. GPL licensed code provides the latter, it's still up to someone (either the original company or some other interested person) to make it fit right first.
"Quality" is maybe overloaded. Upstream requires the code to meet their sense of taste, and some of that is about quality, and some of that is about undocumented design concepts. It's not hard to meet the quality bar. Meeting the design requirements is extremely hard.
Ofcourse they can. But which particular person will do it ?
The "upstream" people deal with their own drivers, subsystems or tasks which takes up their time - but if someone feels they want to take on this too, they'll do it (normally that doesn't happen - it's up to the original authors to take responsibility)
Linux tries to avoid special cases. That means that when someone shows up with a new driver that's either not something that fits into an existing category, or which sort of (but doesn't entirely) overlap with an existing driver, there's an extended set of design discussions about how to make this new driver fit into existing infrastructure in a way that's consistent with what's there and which also allows new things to exist.
That sounds great from a design perspective, but it can also lead to cases where people are attempting to design for utter unknowns - potential futures that may or may not exist, theoretical understandings of how hardware works, that kind of thing. It frequently prevents new drivers being merged without significant modification, and sometimes it results in a need to entirely rearchitect the relevant part of the kernel before the driver can even be considered (and also now you need to split that driver into three parts). Upstreaming is hard.
You block them from using AI by making sure they know your project doesn’t want contributions from people using AI. Either they’re a decent human being and they’ll comply with the project’s wishes, or they’re a sociopath who will violate the explicit request of the project and lie about the origin of their contribution and hopefully slip up and get caught doing so.
How do they enforce that contributions aren’t copied and pasted from AGPLv3 or proprietary codebases? The honor system and intuition and occasionally flat out asking people.
Do you think sociopaths willing to lie about how they came up with a contribution are really that common?
Let me tell you a story: I use agents at work. Not to add more useless features, not in a let-loose way, not so that I can slack all day but to produce better output. Think performance optimizations, security fixes, better use of underlying frameworks, produce better documentation, get useful hints from the code base, that kind of thing. In a word, to produce objectively better software. that is my honor: giving the best I can.
Because AI is frowned upon where I work, I kept that under the radar. And I got nothing but praises for the good work, everybody loving it. Later I had the opportunity to port a piece of software from one language to another. LLMs are great for porting stuff when steered well. Again, nothing but praises for the amazing work done in a very short time. And this is where I tried to open a debate about AI by disclosing my tools and methods. And boom, suddenly I was evil. Praises gone. But still, none had the guts to throw the port to trash, because it's still very good. Hypocrisy.
So yes, call me sociopath if you like, but I will lie, produce better software and get the praises if I have to work in an environment that values tools and methods over results.
Don't compromise your professional integrity by lying about how you work. Rather find a job where you don't need to lie about your use of AI if you can.
25 years ago I had to lie about using free software since it was also frowned upon. I even lied to my CTO at the time who wanted me to work completely in a Microsoft environment, with ASP and what not. Being kinda stubborn I did not comply and used only free software. When boss saw the result and the cost I got promoted. My integrity is fine.
You should have been fired for cause, because the way you chose to work exposed your employer to substantial liability due to the “copyright laundering” nature of LLMs. But you prioritized feeling good over everything else. You’re a sociopath and you should be treated as one—a bad-faith actor only out for themselves, who cannot be trusted to collaborate within agreed-upon limits because you don’t think rules apply to you.
There are no agreed-upon limits, everything is new there. And I don't prioritize feeling good over everything else, otherwise I just wouldn't even start the debate. Far from being fired, I was promoted, because the real world is not your fantasy, results matter more than theorical threats. Also keep your name-calling to yourself.
You literally said as much, and I am not calling you names, I am accurately describing your behavior in a way you yourself appear to recognize:
> So yes, call me sociopath if you like, but I will lie,
> produce better software and get the praises if I
> have to work in an environment that values tools
> and methods over results.
You specifically said you would lie about how you work to get accolades if your employer attempted to set rules against working the way you prefer.
The appropriate reaction to your employer setting rules you don’t agree with is to try to convince them to change those rules, engage in a labor action alongside your coworkers to force them to change those rules, or to leave.
What you’re calling a “high horse” is having morals and ethics. Your employer said not to do what you’re doing, so you either convince them to change their mind without doing something they explicitly said they don’t want you to do, or you go elsewhere. If you take the route of being a filthy fucking liar you aren’t in a position to accuse anyone of being on a high horse.
Sure. But there are also a significant number of people who are nostalgic for it and might be offended by this use for that reason, hence why I asked.
Given the existence of both groups I think just the claim that it’s offensive, without explaining why, is ambiguous and just reacting defensively doesn’t address that.
Opinions... There are people with varied opinions on Nazi Germany. That doesn't mean squat.
The USSR eradicated everyone with a deviating opinion about the regime. They perished in the dungeons of the KGB and in the Gulags. What remained were opportunists and followers. Opinions!
Indeed, that accusation of bad faith is such blatant projection ... essentially "It's bad faith to disagree with me, and there's no need for me to justify my claims."
This whole diversion is off topic and can be seen as a form of bad faith.
I’m not even disagreeing, I’m saying that there are different (and somewhat opposed) ways in which someone could find an image offensive, so it’s worthwhile to provide further context.
This is a false equivalence between those who suffered from USSR and those who are ignorant of the suffering of others. I don't think we should care about feelings of a group who are for whatever reason nostalgic about a genocidal oppressive regime.
Would you treat an image of the US House of Representatives the same way? The United States has caused an enormous amount of suffering in the world and has in the past had an explicit policy of genocide and oppression against a number of groups (including my wife’s ancestors), as well as a number of other horrific policies. If you would not treat an image of the US House of Representatives the same way as you treat an image of the Supreme Soviet, it’s worthwhile to interrogate why.
Peoples’ feelings about the nations they are born into and told to love from birth are complex and multifaceted. The people I know who grew up in the USSR have both good and bad things to say about it, just like the people I know who grew up in the USA (like me) at the same time (the 1970s-1990s) have both good and bad things to say about it. And that isn’t just about our own experiences growing up in these respective nations, but about learning our birth nations’ true histories, and how closely (or not) the ideals espoused by their founders and politicians and important figures in their histories were reflected in their actions.
Thus I really, truly do believe it’s ambiguous for someone to say, without any further context, that they find an image of a legislature with some screen shots of an IDE placed into it offensive. Is it offensive because it’s referencing a body they consider evil or is it offensive because it’s trivializing a body they consider good? Without context it’s impossible to know, and acting like everyone shares the same context about this is just refusal to engage with the world as it is rather than the world as you’d like it to be.
Some people use My Little Pony characters as avatars, some use history books characters and propaganda poster characters. It means nothing in itself, people rarely stick to what they preach.
If you think that dumb nostalgia about “good old times” and complete ignorance/acceptance of any murders if they are considered state-sanctioned is somehow different in your own country (any country at any time), you must come to conclusion that some people inherently have lesser “quality” than others based on papers that they are given at birth by this or that organisation calling itself a state. Problematic, as they say.
No, these things don’t exist in a vacuum. Most LLMs were trained on huge amounts of copyrighted works that they then regurgitate portions of without regard to license or copyright holder, and without attribution.