I was going to defend Xcode and say it's not that bad... but then I read the article and realised that I have just become so accustomed to these problems that I don't consciously realise the daily hellfire that I experience.
Even when you think you're immune to it, Stockholm syndrome is real.
A similar article I wrote on the 'Dark Side' of Apple Development, brings up many additional issues:
Every time there is an Xcode update, I dread installing it because it will be a whole bunch of new bugs, and I just finally figured out the previous ones.
Im not sure if its a still issue, but there used to be a period when installing xcode through appstore was impossible as it was either reaally slow or never finished. There was even awesome review by someone making joke story about it in zombie apocalypse like setting, wish i could still find it.
Apple doesn’t care. Look at how bad iTunes or iCloud or whatever is. Especially on windows. Their software is terrible. They focus mostly on what makes money. And the support is non existent. All you can do is shout in the forums but some Apple apologist will respond rudely or with some unhelpful generic tips that do nothing.
A while back I listlened to a podcast where Ted Bendixson talked about what a nightmare trying to build for IOS outside XCode was (he did a write up about it here https://tedbendixson.substack.com/p/the-horror-of-making-you...). At the time I assumed it was malicious on Apple's part, "we want you working in our ecosystem and if you won't we are going to make it absolutely miserable". After reading this maybe it really was just incompetence.
I couldn't agree more - the not caring part. But then you should try to do an app in the Android code/build/test/publish ecosystem. As someone who had/has to use both os/dev ecosystems for work, I often wondered which one is worse, and what bothered me is that I couldn't conclude.
So in this great duopoly, these two tech giants constantly compete to become more and more hostile and pathetic to both the users and the developers.
> Apple apologist will respond rudely or with some unhelpful generic tips
Aha. The "you are holding it wrong", "this is how the Lord intended it to behave", "buy a new .." … fruit company fan base phenomena.
Apple's majority of buyers aren't their users or consumers; they are Apple fans and supporters. If Apple had consumers like Android, Linux, or Windows, either they would have fixed their act or been in the ground by now.
> Apple's majority of buyers aren't their users or consumers; they are Apple fans and supporters. If Apple had consumers like Android, Linux, or Windows, either they would have fixed their act or been in the ground by now.
Companies who develop these fandoms live life on easy mode. You can do anything you want, abuse customers, raise prices, make promises and never deliver on them, lock people into your ecosystem, and there will always be an army of white knights out there ready-at-the-keyboards, defending the company. I honestly don't know how people get to the point where their identity is so wrapped up in a single company that they wake up in the morning and say to themselves, I'm going to be a company apologist for free and respond rudely to people, even though the company doesn't and will never even know who I am!
They probably wake up the exact same way as the people who bring their toxic attitudes to Linux, open source projects, stack overflow-type sites, IRC/Discord, etc.
Being a rude apologist for NixOS isn't actually morally superior to being a rude apologist for Apple.
Real men use raw nix. I don't need those new-fangled flakes and HomeManager.
Seriously though, I just never figured out the first one because I can't figure out where to start and the latter I don't really need as my home area is disposable - the data lives in a data/ partition and the dot files I care about are simply ln -s into a git repo in data/.
Typically, the functionality for managing home configs provided by raw Nix isn't good enough.
On the other hand, the functionality provided by HomeManager basically requires knowing both the package's config language and HomeManager's take on it.
There's also the fact that adding HomeManager basically gives you two ways of doing a lot of the same things. I don't find that great.
My ultimate goal is to have a single source of intent for my laptop setup, so having to manage configs separately (even as raw files) goes counter to that. I'd (very personally for this one use case) prefer my entire config to be in a single nix file without any manually composed dot files.
Flakes... I only started using because it was one of two paths to get secure boot working and I liked it better than the alternative.
Overall, I'm also very conflicted about NixOS. I liked the promises, but in practice, it falls short for me.
Besides the rediculous hardware requirements of Android Studio, far beyond any other Java based IDE, we have a NDK experience that feels like a 20% side project from Android team, because back in Android 2.0 days they were forced to actually allow developers to write C and C++ code, otherwise there would be no games.
Even Symbian C++ across Metrowerks and Caride, felt a much developer friendly experiece than NDK has ever been.
I do Android development and recently upgraded my desktop as 32GB is no longer enough for Android development. I put 96GB in the new machine, and am still not fully confident that it's future proof.
Personal view on the Xcode issue is this part of your comment:
> lock people into your ecosystem
There's no real alternative to Xcode, if you're going to develop for Apple, you pretty much just have to take the dive, buy Apple hardware, and use Xcode. You don't really know what you're getting into before you get there, and by then you've got sunk cost and just have to trudge through. Somebody a while back had a comment that kind of epitomized it (paraphrased from bad memory): "I thought I was their target customer. I'm not. I'm not sure who their target customer is. Who is this even written for?"
> (...) I think its left a little bit of taint on my soul. It is unfathomably bad. Apple keep bolting stuff on to it. It's slow, broken in numerous ways, depends on file formats that aren't used anywhere outside of Apple and completely undocumented. It is such a painful tool to use.
Maybe as an Xcode user you have a better perspective, yet Android was actually better personally than most of the development ecosystems from my own perspective. Actually managed to at least publish three apps. Never went anywhere, yet that's a different issue.
Had a comment on another thread's Switch 2 development complaints, re. the few I have tried - Nintendo, Steam, and Google.
Nintendo - The process itself is opaque, confusing, and difficult to determine your status or progress, even large companies have difficulty.
Steam - Signing up and putting launch title info was difficult, yet Wayyyyy easier and clearer to navigate. Tools are kind of a mess, and figuring out everything you need is a challenge. (comments on the SDK are at least funny sometimes)
// This is really, really bad. We're sorry. But it's been this way for
// a long time now and it's scary to change it, as there may be others that
// depend on it.
// Recommended amount
// Quite a bit
// Practically everything
// Wall of text, detailed packet contents breakdown, etc
/* Prefer user version of the interface. But if it isn't found, then use gameserver one. Yes, this is a completely terrible hack */
// This totally sucks, but this information can't be gleaned any
// other way
// (200 lines later) actually no way to do this yet.
// um, yeah, clipping is enabled (?)
// (500 lines later) ???? is clipping ever turned off ??
// hush for now, less spew
Google Play - Dramatically easier to sign up. Much clearer steps, progress, and timeline for release. Inclusions to actually release, much clearer. Actually managed to release three products.
Nintendo "How do I even sign up?" Steam "Great, signed up, how do I release something?" Google "Easy sign-up, somewhat easy release of products, eventually got three out the door. Your products have been removed for (mumble mumble legalese)"
i mean in a way xcode is incredibly valuable product considering anyone who wants to publish to the app store (where they collect insane rent for zero effort) needs to interact with it.
I can confirm this. Have a relative that works for Apple. Made the mistake of complaining in front of her about their take on sales (they make six-figures annually from my app). She went off on how much they give us (including Xcode) for the privilege of having an app on their phones.
Still don't have a contact there. Would have thought I would at least get someone there to talk with if issues come up.
The sad thing is that Apple seemed more inviting to developers before they got high on the App Store cut.
Every boxed Mac OS X came with a second disc containing the SDK (Xcode has always been an unstable cow, tho). They used to publish tech notes that explained how the OS works, rather than WWDC videos with high-level overviews that feel more like advertisements.
Back then they've at least made attempts to use some open standards, and allowed 3rd parties to fill gaps in the OS, instead of acting like a Smaug of APIs.
Because they were coming out of being at the edge of bankruptcy and needed any help they could get becoming profitable again.
My graduation thesis was porting a visualisation framework from NeXTSTEP into Windows, Objective-C => C++, because my supervisor saw no future on keeping the NeXT hardware in our campus, if he only knew what would happen a few years later.
They said it in the Epic vs Apple litigation, something along the lines of "we create the entire App Store market", like the 3rd party developers aren't.
The problem is all three companies - Apple google Microsoft - are making their platforms worse. It’s a symptom of low competition and immense concentration of capital / labor.
Is that actually true for Microsoft? How they've evolved .NET and VS Code is amazing. You can make a PR on Microsoft's repos, someone actually pays attention, you get to talk and worth with Microsoft employees, and they merge things in.
Microsoft is leaps and bounds more open than Google and Apple when it comes to development tooling.
Not only is dotnet development is the benchmark to aspire to (IMO), i'm not sure you could name another corporate project that comes even close. Is there a way to globally see github project activity by rank? All of dotnet is MIT. They literally have public meetings and take public notes. What other corporate project has this?
The Swift ecosystem is pretty amazing too. I've made several PRs and got them merged into Swift Parser while exchanging ideas with Apple employees fruitfully. The only big caveat is there's no guarantee your work will ever be merged into Xcode, meaning most Swift users won't benefit from your work because of Apple's opaque gatekeeping.
That is one part of microsoft, yeah, but then you also them making various parts of windows worse to try to squeeze every penny out of people, and where that fails, doing things like ads for apps in the start menu
The Wintel coalition was anti-competitive to an extreme degree. It may have faded to the background at this point but they were caught red handed multiple times using their market dominance to utterly destroy innovative alternatives.
It doesn’t excuse Apple’s behavior, but imo they still have a long way to go to challenge the track record of MS and Intel.
All those things were done under Gates and Ballmer. When Nadella stood up on stage in his first year as CEO under a big banner that proclaimed "MS (heart) Linux", I said "I'll believe it when I see it." Well, over the next decade or so, I saw it, and now I believe it. Microsoft under Nadella just plain behaves differently (and much better) than they used to behave under Gates and Ballmer.
On the repos and tools that have funding sure, or you can have them reject that they are maintaining things, put out a github repo, fail to review anything or merge anything but build it so its really hard to expand without them, and then close the product down in five years or less.
They are, however there are plenty of things to complain about, and you won't find any praise from developers that bought into WinRT reboot, and how it was managed since Windows 8, with tooling rebooted multiple times and left to rotten, me included.
Microsoft's developer relations are highly variable: they are great in some areas (C# and .NET Core continue to be fantastic, Visual Studio's debugger is second to none, going back to gdb after it is like banging rocks together to make fire), and awful in others (if I want to write a GUI application in Windows, what should I do to be on the idiomatic happy path? Microsoft: shrug, try one of these half-dozen half-baked frameworks. No we won't tell you which one, and that doesn't matter because it'll be deprecated in three years anyway).
This is better than the story from Apple and Google, who are just terrible consistently, but there is room for improvement.
This has been my experience as well. All code that doesn't need a UI feels good to write, but as soon as you try to make anything that doesn't run in the console you are met with so much boilerplate and bad tooling that I start dreading waking up.
I've had to make a couple of side projects for my company and I've tried WPF, Blazor, MAUI, and Winforms.
Blazor is the best out of all of these but even it has tedious boilerplate and unintuitive state handling.
MVVM makes WPF and Winforms a hassle, and customizing the looks of components is a nightmare, where some seemingly universal attributes will either get misapplied or outright ignored.
MAUI is a nightmare to work with. Cross compilation is both slow and opaque which makes it impossible to debug and since you are interfacing with the xcode compiler as well you are forced to debug using divine inspiration and hoping it works. We tried to make an RTC AR POC app a while back and it took me 2 weeks of trying different ways to make iirc arkit or webrtc to compile with dotnet and the result was us giving up and just making the iOS version in swift/using xcode instead. I think this is why I still have fond memories of xcode because despite all of its flaws it was noticeably better than trying to cross compile an iOS app from dotnet
Yes, but this doesn't mean we should put up with it. After this comes into effect in 2027 or so, you won't be able to install an app on your Google-certified phone without Google knowing, just like on iOS. What happened to user control?
Oh I know and I absolutely hate it. I can't think of a good argument for these changes. They're just not worse than what has always prevented me from owning IOS devices
Some valid points, but the compiler isn't Xcode and Swift isn't able to check the expression. Imho in these cases it's the developers lack of insight into how SwiftUI works, but otoh Apple often doesn't help with obtaining the insight..
They will also silently stop supporting some piece of library you rely on, leave it broken in some way or another, and just leave you on your own.
However, it has its good sides. The profiling tools are great for example. And I would rather work on 10 difficult problems with Xcode than on 1 with Visual Studio..
Apple has always been famously anti-developer. They write terrible documentation, too. You're supposed to suck up to them to get access to their precious users.
Everything in this article is a reason to stay away from everything proprietary about Apple development. If there is some software that can't be delivered with open web technology or an existing game engine, I'd like to know what it is.
FWIW, I've been developing on the mac for about twenty years now, and I think they're at worst in the middle of developer experiences. I prefer it to working with eg GTK and JS/HTML/CSS (though, CSS does have its sweet spots). The worst part is that they can be agonizingly slow to fix very obvious bugs. The documentation could certainly be much worse, and there are so many eyes on their tools now it's in many ways much easier now to be productive than it used to be. The debugging and profiling is excellent.
I've never trued developing for windows so I could easily imagine it's better across the board.
It also helps if you don't need to go through their app stores, which is a hell of its own.
I am assuming this is the reason why frameworks like Flutter are eating the iOS App Market ? 30 % of ALL iOS apps are now developed in Flutter and that number is rising every quarter.
Maybe only a minority of iOS developers will be using SwiftUI and XCode within a few more years ?
Could some Xcode uers explain to me why AppCode (IntelliJ IDE) did not take off as an Xcode replacement? I recently had to do some iOS work, knew that Xcode sucks, wanted to try AppCode, only to learn that it was discontinued because of lack of interest.
AppCode was unfortunately extremely limited.
Lagged behind Swift versions.
No editor for Storyboards/XIBs back when they were ubiquitous, and no preview for SwiftUI.
Debugging app extensions or anything that isn't the standard "iOS app" was generally flaky or outright not supported.
There is a lot of interest as IntelliJ is a good IDE, but AppCode just wasn't reaching the bare minimum required to have me not use or worry about Xcode.
My problem with AppCode was that the syntax of Swift was still undergoing rapid development, and AppCode lagged too far behind. So AppCode wouldn't understand parts of my code unless I avoided the latest (often very valuable) additions to the language.
When it did understand my code, it was much better than Xcode for navigating and refactoring.
Also, AppCode couldn't edit or even display XIBs so I often had to keep Xcode running alongside it anyway to edit XIBs and make connections between XIB and code, and that was a hassle.
I'm only guessing and I'm not an xcode user but my general observation is that Apple users have a culture of using whatever Apple gives them, whereas in the Windows world the culture is to go out and look for your favorite third party option.
XCode is so bad I spent a solid year rewriting a perfectly functional iOS application (B2B) as a PWA using raw, vanilla javascript. Simply being able to use VS and AspNetCore meant my iteration time went from "what the fuck I'm done with computers" to about 3 seconds per. It was one of the best payoffs I've experienced with regard to vendor risk and complexity management. Being able to ignore the consequences of WWDC every year was such a relief. We weren't even trying to add any new features. We just wanted to keep it alive across major os versions.
iOS Safari was a landmine environment to navigate when attempting to shim the native features, but we eventually got 100% coverage. The worst part was 2D barcode scanning and getting the appropriate camera and resolution. After a few hundred hours we had something that was indistinguishable from native.
If you're a B2B vendor working with Apple tech, I would seriously consider the power of the open web. Breaking out of Apple tooling prison is like a 100x+ uplift in productivity if you have expert level familiarity in any other ecosystem.
I don't develop for Apple platforms so I don't deal with Xcode (apparently thank god), but all of this reminds me of web development back in the early days of Internet Explorer. Until Mozilla/Opera/Safari/Chrome started taking market share did the development information/stability really start to drastically improve. I'm inferring that it's basically impossible to build tooling for Apple because it is all proprietary/undocumented, so their own tools have no competition. It blows my mind that you can't CI/CD builds on servers readily requiring people to setup weird mac mini server farms since the whole xserver line died years ago.
Ballmer's "developers developers developers" moment will forever be burned into my brain, but that wasn't wrong on a strategy level.
XCode evidently cannot keep pace with the rapid development of Swift. Instead of fully embracing community development, Apple maintains a proprietary (dated and divergent) fork of the Swift toolchain in Xcode. For example, check how different compiler diagnostics and suggestions are when using Xcode vs SourceKit LSP. Apple is, once again in its time-honored fashion, wasting collective effort because of its siloed, secrecy-laden development model.
It’s horrible but also kind of so good. The bugs are absolutely horrendous, swift is an abomination, the menus are completely impossible to figure out, the builds are wacky. But I’ll be damned, SwiftUI and the build and deploy process for iPhone apps is so straightforward if you can just paddle around the rocks.
They should have created a systems language to replace objective C and an easy language like Python or JavaScript for app dev, instead they created a language that tries to do everything and the result is a mess. For example SwiftUI, UIkit, you’re constantly running up against weird type system errors and compiler errors. Like dude I’m trying to make a list, swift will say “no you can’t make a list there and I’m not sure why”
I gave up apple development after 2 years of paying developer fees.
Vague errors, buttons that work 2nd time. but not the first time.
I got into apple development to publish a unity game to iDevice.
To publish unity game to iDevice, you need a mac. You also need yearly apple developer membership.
Where they make you jump through hoops which provides them entertainment. Just like you being an animal in a circus which they control.
I learnt apple doesn't care. Now I also don't care. (but yeah that got my money. I didn't get any money)
Thank you for sharing this, now I feel less dumb.
Recently I had the pain of publishing my app (Flutter/Dart) on the apple Appstore, admittedly, my first experience using a mac in the last 30 years so I don't speak mac at all, but like, I know computers right?... famous last words.
I thought I was "holding it wrong"... like really badly wrong! and all I was trying to do was clone my repo and compile it for the store, that's it. took me nights and nights to get over each subsequent hurdle and false peak and missing import and then at the end, oh please upgrade and start again.
Thank goodness I only need it for that 1 step and I can do everything else on computers and software that is normal for me. As a first time app maker, I've had a super experience with Flutter in VScode.
That first error isn’t an Xcode issue. It’s a Swift compiler issue. And you can’t blame your IDE for your bad instincts—at some point those ritualistic fixes stopped being necessary and I haven’t had to do them for more than half a decade. You really should be digging into your code using breakpoints and logging to find the root cause.
I do think Xcode has very rough edges but if we’re criticizing it, we have to criticize the right points.
Dunno. Not sure you can so easily slice off Swift as "outside of XCode", since it isn't used by anything else and is basically required for any Apple development, and only Apple development.
Thing is, I have stopped expecting Xcode to be any good.
Actual native macOS/iOS development got beaten senseless when the App Store made it clear that "unsustainably low" was the expected price point for third party developers; and that Apple were treating the store more or less as a market research exercise and good ideas absolutely would be stolen.
So it's an internal tool, really. And we're I-guess-lucky that they document it and release it for the proles.
I love my mac and I hate everything Microsoft, but just as Xcode may be the worst piece of software coming out of Apple, Visual Studio (no, not VSCode) may be the greatest piece of software coming out of Microsoft.
It is an amazing piece of engineering. It's not perfect, it has it's share of bugs and quirks, but still, it's a wonder to behold :D
Visual Studio used to be as bad as modern Xcode, if not worse. Having used VS2022 a bunch for the last handful of years, I’m pleasantly surprised. Apple could take a page out of Microsoft’s book here.
You can also have code completion with old CLion+Theos+Objective C, or with VSCode+SPM+xtool toolchains btw. It's not a great experience either but at least it did not force me to deal with macOS to start with.
Swift is actually a really good language let down by its official IDE. Slow build times, laggy autocomplete, random crashes etc. I can’t remember Xcode ever being great to use.
> Slow build times, laggy autocomplete, random crashes etc.
I bet these issues are caused by Swift though, because C, C++ and ObjC don't have those problems in Xcode (it's still far from perfect, but it's not slow or crashing).
I wish Apple would buy Jetbrains... or maybe even better, sizeable investment in them so they maintain autonomy and build a warchest to survive the current AI wave.
Imagine an AppCode successor that was designed in full partnership with the XCode team? Tantalizing.
So as a daily user of Jetbrains software, who also finds XCode awful, you would not want XCode replaced by a Jetbrains project that isn't hacked together and reverse engineered like AppCode was?
What would actually happen is that all of Toolbox would be replaced by Xcode.
No one wants that.
I'm sure Apple's Dev Tools team reads HN, and it's baffling they just don't care that the product has such a bad reputation. Or if the team cares, some layer of adjacent management clearly doesn't.
This would result in every current JetBrains user in every other language on every other platform suffer. That's a pretty big chunk of all programmers everywhere
Apple would abandon other IDEs and shitify AppCode over time.
Ideally they’d do what Google did with Android Studio. Of course Apple would never openly admit that their product is inferior to that of any of their competitors..
Honestly, the second to last paragraph reminded me a lot of my experience with eclipse back in 2011 to 2014. I think it was called the eclipse dance back than. A random order of clearing the cache, rebuilding, disabling/enabling plugins, creating a new workspace and restarting the ide would solve most problems. It is one of the reasons I developed a disdain for eclipse. I later even switched jobs mostly to get away from it.
He or she forgot all the gems about the xcode garbage randomly losing contact with ios devices and the random thrashing you use to attempt to reconnect. It's particularly galling since all my ios devices aren't even used: they're test devices only. So they're completely stock and solely run my app.
Once it took Vivado 40 minutes just to add one small Verilog file to a project. Not to compile it. Just to add it to the list of project source files, for which it scanned the file for definitions. Each time I edited the file, Vivado stalled for another 40 minutes. Same file compiled and ran all its simulation tests in Verilator (an open source tool) in a couple of seconds.
For my compiles, Vivado routinely took hours for sparse designs and over 24 hours for dense (but still conceptually small) ones. This made iteration impossible on the timescales my last FPGA project required, so I had to stop using Xilinx.
I accept that dense P&R compiles may take a long time, as it's algorithmically complex. But Vivado's occasional extremely slow and janky process for minor things left my wondering if the full P&R compile time was more due to similar bad coding issues on their side, not any real need to take that long.
As an infrequent user of iMovie (and a past user of Xcode), I think that iMovie really gives Xcode a run for its money in bad UX. How that app got out of the lab like that is profoundly beyond my understanding. It’s not just bugs as such, but actively user-hostile as though a team of people really worked hard with the goal to make the most infuriatingly inconsistent and unintuitive app imaginable.
this is very disappointing considering that the spiritual ancestor ProjectBuilder/InterfaceBuilder from NeXT was considered amazing and ahead of its time. Apparently after NeXT joined Apple, ProjectBuilder was rewritten from scratch. maybe that's where the problems started...
The problems with Android Studio ist mostly caused by the underlying tech (mainly Gradle which is a massive pile of poop, and the general developer hostility of the Android SDK/NDK and related tooling), e.g. the JetBrains ancestry can be perfect but AS can still be bad (I don't share the Jetbrains enthusiasm though tbh, each time I tried any JetBrains IDE the UI was quite laggy, and the whole application takes forever to start).
But yeah, if I have the choice between Xcode and Android Studio (and generally iOS vs Android development), Xcode+iOS easily wins, and that's not because Xcode is particularly great.
Serious developer with US salary working at a FAANG, or SV money, you mean.
As for being serious, most of the world being a developer is an office job like any other clerk, many companies have the same computers for everyone, regardless of what they do at their desk, assuming that they still get classical desktops instead of random brand laptops.
It really sucks that we, as software developers, are expected to spend a ton on a new machine every few years so that big companies can reap the benefits by shipping poorly written, slow tools. The development experience isn't any better or faster then it was 20 years ago, but it sure requires a faster computer.
I was going to defend Xcode and say it's not that bad... but then I read the article and realised that I have just become so accustomed to these problems that I don't consciously realise the daily hellfire that I experience.
Even when you think you're immune to it, Stockholm syndrome is real.
A similar article I wrote on the 'Dark Side' of Apple Development, brings up many additional issues:
https://www.magiclasso.co/insights/apple-development/
Every time there is an Xcode update, I dread installing it because it will be a whole bunch of new bugs, and I just finally figured out the previous ones.
Im not sure if its a still issue, but there used to be a period when installing xcode through appstore was impossible as it was either reaally slow or never finished. There was even awesome review by someone making joke story about it in zombie apocalypse like setting, wish i could still find it.
The first rule of Stockholm Club, is you don't know you are in Stockholm Club.
Free [1] Membership!
[1] For a very limited version of 'free'.
Apple doesn’t care. Look at how bad iTunes or iCloud or whatever is. Especially on windows. Their software is terrible. They focus mostly on what makes money. And the support is non existent. All you can do is shout in the forums but some Apple apologist will respond rudely or with some unhelpful generic tips that do nothing.
A while back I listlened to a podcast where Ted Bendixson talked about what a nightmare trying to build for IOS outside XCode was (he did a write up about it here https://tedbendixson.substack.com/p/the-horror-of-making-you...). At the time I assumed it was malicious on Apple's part, "we want you working in our ecosystem and if you won't we are going to make it absolutely miserable". After reading this maybe it really was just incompetence.
I couldn't agree more - the not caring part. But then you should try to do an app in the Android code/build/test/publish ecosystem. As someone who had/has to use both os/dev ecosystems for work, I often wondered which one is worse, and what bothered me is that I couldn't conclude.
So in this great duopoly, these two tech giants constantly compete to become more and more hostile and pathetic to both the users and the developers.
> Apple apologist will respond rudely or with some unhelpful generic tips
Aha. The "you are holding it wrong", "this is how the Lord intended it to behave", "buy a new .." … fruit company fan base phenomena.
Apple's majority of buyers aren't their users or consumers; they are Apple fans and supporters. If Apple had consumers like Android, Linux, or Windows, either they would have fixed their act or been in the ground by now.
> Apple's majority of buyers aren't their users or consumers; they are Apple fans and supporters. If Apple had consumers like Android, Linux, or Windows, either they would have fixed their act or been in the ground by now.
Companies who develop these fandoms live life on easy mode. You can do anything you want, abuse customers, raise prices, make promises and never deliver on them, lock people into your ecosystem, and there will always be an army of white knights out there ready-at-the-keyboards, defending the company. I honestly don't know how people get to the point where their identity is so wrapped up in a single company that they wake up in the morning and say to themselves, I'm going to be a company apologist for free and respond rudely to people, even though the company doesn't and will never even know who I am!
They probably wake up the exact same way as the people who bring their toxic attitudes to Linux, open source projects, stack overflow-type sites, IRC/Discord, etc.
Being a rude apologist for NixOS isn't actually morally superior to being a rude apologist for Apple.
> Being a rude apologist for NixOS isn't actually morally superior to being a rude apologist for Apple.
no, but it is cheaper and feels morally superior!
My NixOS-running laptop agrees.
It's also technically superior!
Look I don't wanna out-superior you but I even use flakes and HomeManager.
The superiority is through the roof (along with the time it takes to update and rebuild-switch).
Real men use raw nix. I don't need those new-fangled flakes and HomeManager.
Seriously though, I just never figured out the first one because I can't figure out where to start and the latter I don't really need as my home area is disposable - the data lives in a data/ partition and the dot files I care about are simply ln -s into a git repo in data/.
I'm very on the fence about HomeManager.
Typically, the functionality for managing home configs provided by raw Nix isn't good enough.
On the other hand, the functionality provided by HomeManager basically requires knowing both the package's config language and HomeManager's take on it.
There's also the fact that adding HomeManager basically gives you two ways of doing a lot of the same things. I don't find that great.
My ultimate goal is to have a single source of intent for my laptop setup, so having to manage configs separately (even as raw files) goes counter to that. I'd (very personally for this one use case) prefer my entire config to be in a single nix file without any manually composed dot files.
Flakes... I only started using because it was one of two paths to get secure boot working and I liked it better than the alternative.
Overall, I'm also very conflicted about NixOS. I liked the promises, but in practice, it falls short for me.
Besides the rediculous hardware requirements of Android Studio, far beyond any other Java based IDE, we have a NDK experience that feels like a 20% side project from Android team, because back in Android 2.0 days they were forced to actually allow developers to write C and C++ code, otherwise there would be no games.
Even Symbian C++ across Metrowerks and Caride, felt a much developer friendly experiece than NDK has ever been.
I do Android development and recently upgraded my desktop as 32GB is no longer enough for Android development. I put 96GB in the new machine, and am still not fully confident that it's future proof.
Ouch, that bad? Thanks for the update.
To be fair, it will depend on the project. I do it professionally for multiple clients, so I get to see also the pathological end of the spectrum.
Mobile toolchains have always been awful. Symbian's or BlackBerry's weren't any better.
NDK makes me miss Symbian, which is why I rather put up with the limitations of WebGL and WebGPU, than putting up with NDK ever again.
Personal view on the Xcode issue is this part of your comment:
> lock people into your ecosystem
There's no real alternative to Xcode, if you're going to develop for Apple, you pretty much just have to take the dive, buy Apple hardware, and use Xcode. You don't really know what you're getting into before you get there, and by then you've got sunk cost and just have to trudge through. Somebody a while back had a comment that kind of epitomized it (paraphrased from bad memory): "I thought I was their target customer. I'm not. I'm not sure who their target customer is. Who is this even written for?"
_mlxl had a pretty funny one from 4 years ago also: https://news.ycombinator.com/item?id=26932848
Maybe as an Xcode user you have a better perspective, yet Android was actually better personally than most of the development ecosystems from my own perspective. Actually managed to at least publish three apps. Never went anywhere, yet that's a different issue.Had a comment on another thread's Switch 2 development complaints, re. the few I have tried - Nintendo, Steam, and Google.
Nintendo - The process itself is opaque, confusing, and difficult to determine your status or progress, even large companies have difficulty.
Steam - Signing up and putting launch title info was difficult, yet Wayyyyy easier and clearer to navigate. Tools are kind of a mess, and figuring out everything you need is a challenge. (comments on the SDK are at least funny sometimes)
Google Play - Dramatically easier to sign up. Much clearer steps, progress, and timeline for release. Inclusions to actually release, much clearer. Actually managed to release three products.i mean in a way xcode is incredibly valuable product considering anyone who wants to publish to the app store (where they collect insane rent for zero effort) needs to interact with it.
Apple probably views the product as the privilege to develop and publish apps.
I can confirm this. Have a relative that works for Apple. Made the mistake of complaining in front of her about their take on sales (they make six-figures annually from my app). She went off on how much they give us (including Xcode) for the privilege of having an app on their phones.
Still don't have a contact there. Would have thought I would at least get someone there to talk with if issues come up.
so it's the wrong incentive. apple has no need to make it better because people are forced to use it anyways.
I once had a glimpse of their internal pages for the app store and music store about 7-8 years ago and the design was outdated in 1999
Apple would have been avoided by developers if they weren't part of the smartphone duopoly. The tools and processes are just that bad.
Now Google has decided to make theirs even worse than Apple at least when it comes to publishing in the play store.
The sad thing is that Apple seemed more inviting to developers before they got high on the App Store cut.
Every boxed Mac OS X came with a second disc containing the SDK (Xcode has always been an unstable cow, tho). They used to publish tech notes that explained how the OS works, rather than WWDC videos with high-level overviews that feel more like advertisements.
Back then they've at least made attempts to use some open standards, and allowed 3rd parties to fill gaps in the OS, instead of acting like a Smaug of APIs.
Because they were coming out of being at the edge of bankruptcy and needed any help they could get becoming profitable again.
My graduation thesis was porting a visualisation framework from NeXTSTEP into Windows, Objective-C => C++, because my supervisor saw no future on keeping the NeXT hardware in our campus, if he only knew what would happen a few years later.
Apple has always resented 3rd party developers, right back to the Apple 2 days. They saw them as capturing value that they had created.
They said it in the Epic vs Apple litigation, something along the lines of "we create the entire App Store market", like the 3rd party developers aren't.
Video with ELI5-level overviews that feel like an ad - these do sell. A disk with SDK does not.
The problem is all three companies - Apple google Microsoft - are making their platforms worse. It’s a symptom of low competition and immense concentration of capital / labor.
Is that actually true for Microsoft? How they've evolved .NET and VS Code is amazing. You can make a PR on Microsoft's repos, someone actually pays attention, you get to talk and worth with Microsoft employees, and they merge things in.
Microsoft is leaps and bounds more open than Google and Apple when it comes to development tooling.
Microsoft developer tooling is usually pretty great IME. It's being a user that mostly sucks
Not only is dotnet development is the benchmark to aspire to (IMO), i'm not sure you could name another corporate project that comes even close. Is there a way to globally see github project activity by rank? All of dotnet is MIT. They literally have public meetings and take public notes. What other corporate project has this?
None that I know of. It's really impressive. Although, they really should have made .NET cross-platform from the beginning.
I even advocated for a previous company to try and find someone from the .NET project to help lead a similar but smaller tech transition.
The MS dotnet debugger is not open-source - you can legally use it only with VS and VS Code (you could always give Samsung's open-source debugger a try, but it has certain limitations: https://github.com/Samsung/netcoredbg/issues/194#issuecommen...)
The Swift ecosystem is pretty amazing too. I've made several PRs and got them merged into Swift Parser while exchanging ideas with Apple employees fruitfully. The only big caveat is there's no guarantee your work will ever be merged into Xcode, meaning most Swift users won't benefit from your work because of Apple's opaque gatekeeping.
That is one part of microsoft, yeah, but then you also them making various parts of windows worse to try to squeeze every penny out of people, and where that fails, doing things like ads for apps in the start menu
MS directs all of its hostility toward the end user, Apple spreads it around to everybody.
Apple is still orders of magnitude worse in every vector though. The bully everyone from users, employees, to suppliers.
The Wintel coalition was anti-competitive to an extreme degree. It may have faded to the background at this point but they were caught red handed multiple times using their market dominance to utterly destroy innovative alternatives.
It doesn’t excuse Apple’s behavior, but imo they still have a long way to go to challenge the track record of MS and Intel.
All those things were done under Gates and Ballmer. When Nadella stood up on stage in his first year as CEO under a big banner that proclaimed "MS (heart) Linux", I said "I'll believe it when I see it." Well, over the next decade or so, I saw it, and now I believe it. Microsoft under Nadella just plain behaves differently (and much better) than they used to behave under Gates and Ballmer.
On the repos and tools that have funding sure, or you can have them reject that they are maintaining things, put out a github repo, fail to review anything or merge anything but build it so its really hard to expand without them, and then close the product down in five years or less.
They are, however there are plenty of things to complain about, and you won't find any praise from developers that bought into WinRT reboot, and how it was managed since Windows 8, with tooling rebooted multiple times and left to rotten, me included.
It might be true on developer tools. For them I was talking more about Windows, Teams, etc
Microsoft's developer relations are highly variable: they are great in some areas (C# and .NET Core continue to be fantastic, Visual Studio's debugger is second to none, going back to gdb after it is like banging rocks together to make fire), and awful in others (if I want to write a GUI application in Windows, what should I do to be on the idiomatic happy path? Microsoft: shrug, try one of these half-dozen half-baked frameworks. No we won't tell you which one, and that doesn't matter because it'll be deprecated in three years anyway).
This is better than the story from Apple and Google, who are just terrible consistently, but there is room for improvement.
This has been my experience as well. All code that doesn't need a UI feels good to write, but as soon as you try to make anything that doesn't run in the console you are met with so much boilerplate and bad tooling that I start dreading waking up.
I've had to make a couple of side projects for my company and I've tried WPF, Blazor, MAUI, and Winforms.
Blazor is the best out of all of these but even it has tedious boilerplate and unintuitive state handling.
MVVM makes WPF and Winforms a hassle, and customizing the looks of components is a nightmare, where some seemingly universal attributes will either get misapplied or outright ignored.
MAUI is a nightmare to work with. Cross compilation is both slow and opaque which makes it impossible to debug and since you are interfacing with the xcode compiler as well you are forced to debug using divine inspiration and hoping it works. We tried to make an RTC AR POC app a while back and it took me 2 weeks of trying different ways to make iirc arkit or webrtc to compile with dotnet and the result was us giving up and just making the iOS version in swift/using xcode instead. I think this is why I still have fond memories of xcode because despite all of its flaws it was noticeably better than trying to cross compile an iOS app from dotnet
I personally loved my short stint as iOS developer despite Xcode's flaws. Swift is a great language, and Apple has some really nice API's.
Xcode was great in the early Mac OS X days. It turned to crap when it became Apple's moat for iOS developers.
You mean Project Builder. Once they unified it into Xcode, stability and performance started decreasing every year.
Aren't Google just matching Apple with the signing and notarization bullshit? Except Google is free?
Almost free, you need to pay 20 euros/dollars once, if you are going to publish on the store.
Yes, but this doesn't mean we should put up with it. After this comes into effect in 2027 or so, you won't be able to install an app on your Google-certified phone without Google knowing, just like on iOS. What happened to user control?
Oh I know and I absolutely hate it. I can't think of a good argument for these changes. They're just not worse than what has always prevented me from owning IOS devices
Some valid points, but the compiler isn't Xcode and Swift isn't able to check the expression. Imho in these cases it's the developers lack of insight into how SwiftUI works, but otoh Apple often doesn't help with obtaining the insight..
They will also silently stop supporting some piece of library you rely on, leave it broken in some way or another, and just leave you on your own.
However, it has its good sides. The profiling tools are great for example. And I would rather work on 10 difficult problems with Xcode than on 1 with Visual Studio..
Agreed, it's not that bad imo and the profiling tools are amazing.
The profiling tools come from solaris
That is not true. You can’t even run DTrace on Apple Silicon without disabling SIP, yet Instruments runs fine.
Apple has always been famously anti-developer. They write terrible documentation, too. You're supposed to suck up to them to get access to their precious users.
Everything in this article is a reason to stay away from everything proprietary about Apple development. If there is some software that can't be delivered with open web technology or an existing game engine, I'd like to know what it is.
Old Apple, the one before NeXT reverse acquisition, had great documentation.
FWIW, I've been developing on the mac for about twenty years now, and I think they're at worst in the middle of developer experiences. I prefer it to working with eg GTK and JS/HTML/CSS (though, CSS does have its sweet spots). The worst part is that they can be agonizingly slow to fix very obvious bugs. The documentation could certainly be much worse, and there are so many eyes on their tools now it's in many ways much easier now to be productive than it used to be. The debugging and profiling is excellent.
I've never trued developing for windows so I could easily imagine it's better across the board.
It also helps if you don't need to go through their app stores, which is a hell of its own.
Try developing on the Apple Watch. I think I have spent more time dealing with connection issues than writing actual code...
I am assuming this is the reason why frameworks like Flutter are eating the iOS App Market ? 30 % of ALL iOS apps are now developed in Flutter and that number is rising every quarter.
Maybe only a minority of iOS developers will be using SwiftUI and XCode within a few more years ?
Could some Xcode uers explain to me why AppCode (IntelliJ IDE) did not take off as an Xcode replacement? I recently had to do some iOS work, knew that Xcode sucks, wanted to try AppCode, only to learn that it was discontinued because of lack of interest.
AppCode was unfortunately extremely limited. Lagged behind Swift versions. No editor for Storyboards/XIBs back when they were ubiquitous, and no preview for SwiftUI. Debugging app extensions or anything that isn't the standard "iOS app" was generally flaky or outright not supported.
There is a lot of interest as IntelliJ is a good IDE, but AppCode just wasn't reaching the bare minimum required to have me not use or worry about Xcode.
My problem with AppCode was that the syntax of Swift was still undergoing rapid development, and AppCode lagged too far behind. So AppCode wouldn't understand parts of my code unless I avoided the latest (often very valuable) additions to the language.
When it did understand my code, it was much better than Xcode for navigating and refactoring.
Also, AppCode couldn't edit or even display XIBs so I often had to keep Xcode running alongside it anyway to edit XIBs and make connections between XIB and code, and that was a hassle.
I'm only guessing and I'm not an xcode user but my general observation is that Apple users have a culture of using whatever Apple gives them, whereas in the Windows world the culture is to go out and look for your favorite third party option.
If I remember correctly, you still needed Xcode to actually compile and run the code, because of restrictions imposed by Apple.
Right, but did this mean you had to deal with all the Xcode problems, or did you have more of an IntelliJ like experience?
AppCode gave you an IntelliJ-like experience, and personally I found it significantly better than Xcode when writing code.
But the friction of needing to keep around Xcode anyway whenever you wanted to run your code meant it was just easier to stick with Xcode.
Apple: would it kill you to add some labels to all the mystery-meat navigation in Xcode?
XCode is so bad I spent a solid year rewriting a perfectly functional iOS application (B2B) as a PWA using raw, vanilla javascript. Simply being able to use VS and AspNetCore meant my iteration time went from "what the fuck I'm done with computers" to about 3 seconds per. It was one of the best payoffs I've experienced with regard to vendor risk and complexity management. Being able to ignore the consequences of WWDC every year was such a relief. We weren't even trying to add any new features. We just wanted to keep it alive across major os versions.
iOS Safari was a landmine environment to navigate when attempting to shim the native features, but we eventually got 100% coverage. The worst part was 2D barcode scanning and getting the appropriate camera and resolution. After a few hundred hours we had something that was indistinguishable from native.
If you're a B2B vendor working with Apple tech, I would seriously consider the power of the open web. Breaking out of Apple tooling prison is like a 100x+ uplift in productivity if you have expert level familiarity in any other ecosystem.
The only time I use Xcode is when I accidentally click a random file and Xcode pops up. I close it immediately
As an iOS developer it is truly a bad piece of software. Compiler doesn't even throw an error when you left out a dot.
https://law.gmnz.xyz/single-dot-crash/
I don't develop for Apple platforms so I don't deal with Xcode (apparently thank god), but all of this reminds me of web development back in the early days of Internet Explorer. Until Mozilla/Opera/Safari/Chrome started taking market share did the development information/stability really start to drastically improve. I'm inferring that it's basically impossible to build tooling for Apple because it is all proprietary/undocumented, so their own tools have no competition. It blows my mind that you can't CI/CD builds on servers readily requiring people to setup weird mac mini server farms since the whole xserver line died years ago.
Ballmer's "developers developers developers" moment will forever be burned into my brain, but that wasn't wrong on a strategy level.
XCode evidently cannot keep pace with the rapid development of Swift. Instead of fully embracing community development, Apple maintains a proprietary (dated and divergent) fork of the Swift toolchain in Xcode. For example, check how different compiler diagnostics and suggestions are when using Xcode vs SourceKit LSP. Apple is, once again in its time-honored fashion, wasting collective effort because of its siloed, secrecy-laden development model.
It’s horrible but also kind of so good. The bugs are absolutely horrendous, swift is an abomination, the menus are completely impossible to figure out, the builds are wacky. But I’ll be damned, SwiftUI and the build and deploy process for iPhone apps is so straightforward if you can just paddle around the rocks.
How is swift an abomination? I liked it a lot in my short time with it.
They should have created a systems language to replace objective C and an easy language like Python or JavaScript for app dev, instead they created a language that tries to do everything and the result is a mess. For example SwiftUI, UIkit, you’re constantly running up against weird type system errors and compiler errors. Like dude I’m trying to make a list, swift will say “no you can’t make a list there and I’m not sure why”
I gave up apple development after 2 years of paying developer fees. Vague errors, buttons that work 2nd time. but not the first time.
I got into apple development to publish a unity game to iDevice. To publish unity game to iDevice, you need a mac. You also need yearly apple developer membership. Where they make you jump through hoops which provides them entertainment. Just like you being an animal in a circus which they control.
I learnt apple doesn't care. Now I also don't care. (but yeah that got my money. I didn't get any money)
Microsoft DX has me spoiled.
Thank you for sharing this, now I feel less dumb. Recently I had the pain of publishing my app (Flutter/Dart) on the apple Appstore, admittedly, my first experience using a mac in the last 30 years so I don't speak mac at all, but like, I know computers right?... famous last words.
I thought I was "holding it wrong"... like really badly wrong! and all I was trying to do was clone my repo and compile it for the store, that's it. took me nights and nights to get over each subsequent hurdle and false peak and missing import and then at the end, oh please upgrade and start again.
Thank goodness I only need it for that 1 step and I can do everything else on computers and software that is normal for me. As a first time app maker, I've had a super experience with Flutter in VScode.
I had the same issue and thought it was just a skill issue on my part. It’s good to know that other developers are experiencing the same problems.
I also felt like I had to install the latest iOS emulators almost every week, and everything lagged on the 8GB RAM base model MacBook Air.
That first error isn’t an Xcode issue. It’s a Swift compiler issue. And you can’t blame your IDE for your bad instincts—at some point those ritualistic fixes stopped being necessary and I haven’t had to do them for more than half a decade. You really should be digging into your code using breakpoints and logging to find the root cause.
I do think Xcode has very rough edges but if we’re criticizing it, we have to criticize the right points.
Wouldn’t a breakpoint or log message require the code to compile and run in order to work?
Yes but if you read the article, the point about developing bad instincts is a different context than the Swift compiler issues.
You're right, parent's comment is just wrong.
You also didn’t read the article
Dunno. Not sure you can so easily slice off Swift as "outside of XCode", since it isn't used by anything else and is basically required for any Apple development, and only Apple development.
Amen. I am thankful everyday that IntelliJ is used for Android Studio
Android Studio is what made me hate InteliJ, and keep with Eclipse/Netbeans unless forced otherwise by project delivery team.
Why? Android Studio seems fine, IntelliJ does a very good job on their IDE
That’s what monopoly looks like.
Sorry, you're not trying hard enough to find bad cases of terrible professional software.
Besides, the article reads like a noob using xcode for the first time.
It's quite ok as a pure C/C++/ObjC IDE with the project files generated via cmake, but then, so is VSCode ;)
The integrated Metal debugger is actually quite spectacular, unfortunately that's countered by the CPU debugger being extremely bare bones and slow.
Strong words for someone who never used lotus notes.
(Didn't read the article, basing this on the subject alone)
Thing is, I have stopped expecting Xcode to be any good.
Actual native macOS/iOS development got beaten senseless when the App Store made it clear that "unsustainably low" was the expected price point for third party developers; and that Apple were treating the store more or less as a market research exercise and good ideas absolutely would be stolen.
So it's an internal tool, really. And we're I-guess-lucky that they document it and release it for the proles.
Can you write Apple applications, desktop or mobile, entirely in Rust?
Is there any way to avoid Apple technologies (that isn't React native, and obviously you still need to build on a Mac) when developing software?
Over a decade ago I used to work for a company that built a c++ opengl based ui for android Linux iOS macos and Windows...
It could be done but I wouldn't want to ever do that again.....
I love my mac and I hate everything Microsoft, but just as Xcode may be the worst piece of software coming out of Apple, Visual Studio (no, not VSCode) may be the greatest piece of software coming out of Microsoft.
It is an amazing piece of engineering. It's not perfect, it has it's share of bugs and quirks, but still, it's a wonder to behold :D
Visual Studio used to be as bad as modern Xcode, if not worse. Having used VS2022 a bunch for the last handful of years, I’m pleasantly surprised. Apple could take a page out of Microsoft’s book here.
I remember a long time ago writing simple macos apps you could use from the command line.
The compile command was basically:
I think everything developers do in apple's ecosystem is needlessly complicated.you can totally still do this
I do this. My workflow is CLI only in Objective C. No Swift. No SwiftUI. No .xib files.
You can also have code completion with old CLion+Theos+Objective C, or with VSCode+SPM+xtool toolchains btw. It's not a great experience either but at least it did not force me to deal with macOS to start with.
Swift is actually a really good language let down by its official IDE. Slow build times, laggy autocomplete, random crashes etc. I can’t remember Xcode ever being great to use.
> Slow build times, laggy autocomplete, random crashes etc.
I bet these issues are caused by Swift though, because C, C++ and ObjC don't have those problems in Xcode (it's still far from perfect, but it's not slow or crashing).
I wish Apple would buy Jetbrains... or maybe even better, sizeable investment in them so they maintain autonomy and build a warchest to survive the current AI wave.
Imagine an AppCode successor that was designed in full partnership with the XCode team? Tantalizing.
If Apple bought Jetbrains, they would ruin the Jetbrains products. It wouldn't go the way you're hoping.
I guess it's good thing there's a ton of word riggght after that...
but please don't let that stop you from being the 4th comment to repeat itself.
As daily user of Jetbrains’ software (and someone who agrees with TFA about xcode) I don’t want Apple anywhere near them
So as a daily user of Jetbrains software, who also finds XCode awful, you would not want XCode replaced by a Jetbrains project that isn't hacked together and reverse engineered like AppCode was?
Or you just wanted to be dramatic?
What would actually happen is that all of Toolbox would be replaced by Xcode.
No one wants that.
I'm sure Apple's Dev Tools team reads HN, and it's baffling they just don't care that the product has such a bad reputation. Or if the team cares, some layer of adjacent management clearly doesn't.
HN users are some incredibly exhausting people to deal with sometimes
> or maybe even better, sizeable investment in them so they maintain autonomy and build a warchest to survive the current AI wave.
Just wow, like trying to talk to an LLM that poluted its context window with the wrong idea then hyperfixated on it ad infinitum, Jesus Christ.
This would result in every current JetBrains user in every other language on every other platform suffer. That's a pretty big chunk of all programmers everywhere
Please tell me how
> or maybe even better, sizeable investment in them so they maintain autonomy and build a warchest to survive the current AI wave.
Somehow harms Jetbrains.
Apple would abandon other IDEs and shitify AppCode over time.
Ideally they’d do what Google did with Android Studio. Of course Apple would never openly admit that their product is inferior to that of any of their competitors..
I also agree, I would not want this to happen.
When Apple says "Jump", developers ask "How high?"
PL/SQL developer is the worst one I've ever used.
I for one, love it, much better than any open source RDMS developer experience, in stored procedure development, only having parity with SQL Server.
Honestly, the second to last paragraph reminded me a lot of my experience with eclipse back in 2011 to 2014. I think it was called the eclipse dance back than. A random order of clearing the cache, rebuilding, disabling/enabling plugins, creating a new workspace and restarting the ide would solve most problems. It is one of the reasons I developed a disdain for eclipse. I later even switched jobs mostly to get away from it.
He or she forgot all the gems about the xcode garbage randomly losing contact with ios devices and the random thrashing you use to attempt to reconnect. It's particularly galling since all my ios devices aren't even used: they're test devices only. So they're completely stock and solely run my app.
Vivado: hold my beer
Yup.
Once it took Vivado 40 minutes just to add one small Verilog file to a project. Not to compile it. Just to add it to the list of project source files, for which it scanned the file for definitions. Each time I edited the file, Vivado stalled for another 40 minutes. Same file compiled and ran all its simulation tests in Verilator (an open source tool) in a couple of seconds.
For my compiles, Vivado routinely took hours for sparse designs and over 24 hours for dense (but still conceptually small) ones. This made iteration impossible on the timescales my last FPGA project required, so I had to stop using Xilinx.
I accept that dense P&R compiles may take a long time, as it's algorithmically complex. But Vivado's occasional extremely slow and janky process for minor things left my wondering if the full P&R compile time was more due to similar bad coding issues on their side, not any real need to take that long.
Oh my lord. I'm sorry fellow tortured soul.
I laughed. Indeed there is quite some competition in the category "worst piece of professional software".
As an infrequent user of iMovie (and a past user of Xcode), I think that iMovie really gives Xcode a run for its money in bad UX. How that app got out of the lab like that is profoundly beyond my understanding. It’s not just bugs as such, but actively user-hostile as though a team of people really worked hard with the goal to make the most infuriatingly inconsistent and unintuitive app imaginable.
this is very disappointing considering that the spiritual ancestor ProjectBuilder/InterfaceBuilder from NeXT was considered amazing and ahead of its time. Apparently after NeXT joined Apple, ProjectBuilder was rewritten from scratch. maybe that's where the problems started...
I guess that means you're young.
wait until you try Android Studio...
Huh, Android Studio is amazing because it's build by people who actually know how to make software (JetBrains) and it runs everywhere.
With everywhere, you mean everywhere in your RAM?
The problems with Android Studio ist mostly caused by the underlying tech (mainly Gradle which is a massive pile of poop, and the general developer hostility of the Android SDK/NDK and related tooling), e.g. the JetBrains ancestry can be perfect but AS can still be bad (I don't share the Jetbrains enthusiasm though tbh, each time I tried any JetBrains IDE the UI was quite laggy, and the whole application takes forever to start).
But yeah, if I have the choice between Xcode and Android Studio (and generally iOS vs Android development), Xcode+iOS easily wins, and that's not because Xcode is particularly great.
Provided one has 32 GB, with 16 real cores and a 1TB SSD ultra-fast.
I run it on a Thinkpad T530 from 2013. It's maxed out with a 256GB SATA2 SSD, 16GB of memory and a 3rd gen 4c8t i5.
Obviously the compiler and emulator (yes, emulator) are slow, but as an IDE it's perfectly functional.
That's a pretty standard dev machine no?
Maybe at Google, given how poorly Android Studio works otherwise.
That was what I had at google 8 years ago, today its not expensive at all, any serious developer should have about that.
If you develop on a weak laptop then that is on you / your company, should get a proper machine.
Its good if tools are fast, but in general developers are expected to have fast machines so the tools are made with that in mind.
Serious developer with US salary working at a FAANG, or SV money, you mean.
As for being serious, most of the world being a developer is an office job like any other clerk, many companies have the same computers for everyone, regardless of what they do at their desk, assuming that they still get classical desktops instead of random brand laptops.
It really sucks that we, as software developers, are expected to spend a ton on a new machine every few years so that big companies can reap the benefits by shipping poorly written, slow tools. The development experience isn't any better or faster then it was 20 years ago, but it sure requires a faster computer.
do you mean to say it’s better or… worse??
Yeah it feels like a 90s C++ IDE
Metrowerks CodeWarrior wasn't too bad.
[dead]