150 comments

  • bentocorp 2 days ago ago

    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/

    • marklubi a day ago ago

      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.

    • Cloudef 2 days ago ago

      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.

    • Nevermark 2 days ago ago

      The first rule of Stockholm Club, is you don't know you are in Stockholm Club.

      • partomniscient 2 days ago ago

        Free [1] Membership!

        [1] For a very limited version of 'free'.

  • SilverElfin 2 days ago ago

    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.

    • scuff3d 2 days ago ago

      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.

    • crossroadsguy 2 days ago ago

      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.

      • ryandrake 2 days ago ago

        > 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!

        • rkomorn 2 days ago ago

          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.

          • exe34 2 days ago ago

            > 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!

            • rkomorn 2 days ago ago

              My NixOS-running laptop agrees.

              • exe34 2 days ago ago

                It's also technically superior!

                • rkomorn 2 days ago ago

                  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).

                  • exe34 2 days ago ago

                    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/.

                    • rkomorn 2 days ago ago

                      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.

      • pjmlp 2 days ago ago

        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.

        • distances 2 days ago ago

          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.

          • pjmlp 2 days ago ago

            Ouch, that bad? Thanks for the update.

            • distances 2 days ago ago

              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.

      • lmz 2 days ago ago

        Mobile toolchains have always been awful. Symbian's or BlackBerry's weren't any better.

        • pjmlp 2 days ago ago

          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.

      • araes 7 hours ago ago

        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

          > (...) 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)"
    • anthonypasq 2 days ago ago

      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.

      • bmitc 2 days ago ago

        Apple probably views the product as the privilege to develop and publish apps.

        • marklubi a day ago ago

          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.

        • a day ago ago
          [deleted]
      • em-bee 2 days ago ago

        so it's the wrong incentive. apple has no need to make it better because people are forced to use it anyways.

    • christkv 2 days ago ago

      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

  • sschueller 2 days ago ago

    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.

    • pornel 2 days ago ago

      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.

      • pjmlp 2 days ago ago

        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.

      • tonyedgecombe 2 days ago ago

        Apple has always resented 3rd party developers, right back to the Apple 2 days. They saw them as capturing value that they had created.

        • p0nce 2 days ago ago

          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.

      • egorfine 2 days ago ago

        Video with ELI5-level overviews that feel like an ad - these do sell. A disk with SDK does not.

    • SilverElfin 2 days ago ago

      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.

      • bmitc 2 days ago ago

        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.

        • freedomben 2 days ago ago

          Microsoft developer tooling is usually pretty great IME. It's being a user that mostly sucks

          • 2 days ago ago
            [deleted]
        • CrimsonCape 2 days ago ago

          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?

          • bmitc 2 days ago ago

            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.

          • v-yanakiev 2 days ago ago

            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...)

        • resonancel 2 days ago ago

          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.

        • VoidWhisperer 2 days ago ago

          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

          • Finnucane 2 days ago ago

            MS directs all of its hostility toward the end user, Apple spreads it around to everybody.

          • bmitc 2 days ago ago

            Apple is still orders of magnitude worse in every vector though. The bully everyone from users, employees, to suppliers.

            • ab5tract 2 days ago ago

              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.

              • rmunn 2 days ago ago

                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.

        • hobs 2 days ago ago

          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.

        • pjmlp 2 days ago ago

          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.

        • SilverElfin 2 days ago ago

          It might be true on developer tools. For them I was talking more about Windows, Teams, etc

        • Analemma_ 2 days ago ago

          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.

          • ____mr____ 18 hours ago ago

            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

    • RestartKernel 2 days ago ago

      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.

    • bitwize 2 days ago ago

      Xcode was great in the early Mac OS X days. It turned to crap when it became Apple's moat for iOS developers.

      • jshier 2 days ago ago

        You mean Project Builder. Once they unified it into Xcode, stability and performance started decreasing every year.

    • pohuing 2 days ago ago

      Aren't Google just matching Apple with the signing and notarization bullshit? Except Google is free?

      • pjmlp 2 days ago ago

        Almost free, you need to pay 20 euros/dollars once, if you are going to publish on the store.

      • lern_too_spel a day ago ago

        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?

        • pohuing a day ago ago

          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

  • apples_oranges 3 days ago ago

    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..

    • deeznuttynutz 2 days ago ago

      Agreed, it's not that bad imo and the profiling tools are amazing.

      • jdjrbrjrbrh 2 days ago ago

        The profiling tools come from solaris

        • dcrazy a day ago ago

          That is not true. You can’t even run DTrace on Apple Silicon without disabling SIP, yet Instruments runs fine.

  • dtagames 3 days ago ago

    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.

    • pjmlp 2 days ago ago

      Old Apple, the one before NeXT reverse acquisition, had great documentation.

    • MangoToupe 2 days ago ago

      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.

  • lucaspauker 2 days ago ago

    Try developing on the Apple Watch. I think I have spent more time dealing with connection issues than writing actual code...

  • lenkite 2 days ago ago

    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 ?

  • RedNifre 2 days ago ago

    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.

    • Daedren 15 hours ago ago

      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.

    • mayoff 2 days ago ago

      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.

    • add-sub-mul-div 2 days ago ago

      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.

    • yen223 2 days ago ago

      If I remember correctly, you still needed Xcode to actually compile and run the code, because of restrictions imposed by Apple.

      • RedNifre 2 days ago ago

        Right, but did this mean you had to deal with all the Xcode problems, or did you have more of an IntelliJ like experience?

        • yen223 2 days ago ago

          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.

  • mjmasn 2 days ago ago

    Apple: would it kill you to add some labels to all the mystery-meat navigation in Xcode?

  • bob1029 2 days ago ago

    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.

  • cute_boi 2 days ago ago

    The only time I use Xcode is when I accidentally click a random file and Xcode pops up. I close it immediately

  • lawgimenez 2 days ago ago

    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/

  • mey a day ago ago

    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.

  • resonancel 2 days ago ago

    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.

  • jmogly a day ago ago

    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.

    • ____mr____ 18 hours ago ago

      How is swift an abomination? I liked it a lot in my short time with it.

      • jmogly 8 hours ago ago

        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”

  • xeonax 2 days ago ago

    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.

  • asdfbank 3 days ago ago

    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.

  • vin92997 a day ago ago

    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.

  • rTX5CMRXIfFG 2 days ago ago

    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.

    • bionhoward 2 days ago ago

      Wouldn’t a breakpoint or log message require the code to compile and run in order to work?

      • rTX5CMRXIfFG 2 days ago ago

        Yes but if you read the article, the point about developing bad instincts is a different context than the Swift compiler issues.

      • lawgimenez 2 days ago ago

        You're right, parent's comment is just wrong.

        • rTX5CMRXIfFG 2 days ago ago

          You also didn’t read the article

    • danjl a day ago ago

      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.

  • a456463 2 days ago ago

    Amen. I am thankful everyday that IntelliJ is used for Android Studio

    • pjmlp 2 days ago ago

      Android Studio is what made me hate InteliJ, and keep with Eclipse/Netbeans unless forced otherwise by project delivery team.

      • flykespice 15 hours ago ago

        Why? Android Studio seems fine, IntelliJ does a very good job on their IDE

  • aristofun a day ago ago

    That’s what monopoly looks like.

  • opless a day ago ago

    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.

  • flohofwoe 2 days ago ago

    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.

  • criticalfault 2 days ago ago

    Strong words for someone who never used lotus notes.

    (Didn't read the article, basing this on the subject alone)

  • RantyDave 2 days ago ago

    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.

  • apatheticonion 2 days ago ago

    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?

    • jdjrbrjrbrh 2 days ago ago

      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.....

  • bronlund 2 days ago ago

    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

    • cjk 2 days ago ago

      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.

  • m463 2 days ago ago

    I remember a long time ago writing simple macos apps you could use from the command line.

    The compile command was basically:

      gcc -o foo foo.m -framework Foundation
    
    I think everything developers do in apple's ecosystem is needlessly complicated.
    • Splizard 2 days ago ago

      you can totally still do this

      • lemonwaterlime 2 days ago ago

        I do this. My workflow is CLI only in Objective C. No Swift. No SwiftUI. No .xib files.

  • dadoum 2 days ago ago

    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.

  • dkobia 2 days ago ago

    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.

    • flohofwoe 2 days ago ago

      > 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).

    • BoorishBears 2 days ago ago

      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.

      • phyzome 2 days ago ago

        If Apple bought Jetbrains, they would ruin the Jetbrains products. It wouldn't go the way you're hoping.

        • BoorishBears 2 days ago ago

          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.

      • tailspin2019 2 days ago ago

        As daily user of Jetbrains’ software (and someone who agrees with TFA about xcode) I don’t want Apple anywhere near them

        • BoorishBears 2 days ago ago

          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?

          • TheOtherHobbes 2 days ago ago

            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.

            • BoorishBears 2 days ago ago

              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.

          • estimator7292 2 days ago ago

            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

            • BoorishBears 2 days ago ago

              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.

          • wqaatwt 2 days ago ago

            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..

        • zt64 2 days ago ago

          I also agree, I would not want this to happen.

  • 1vuio0pswjnm7 a day ago ago

    When Apple says "Jump", developers ask "How high?"

  • peterpost2 2 days ago ago

    PL/SQL developer is the worst one I've ever used.

    • pjmlp 2 days ago ago

      I for one, love it, much better than any open source RDMS developer experience, in stored procedure development, only having parity with SQL Server.

  • dadie 2 days ago ago

    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.

  • x0x0 2 days ago ago

    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.

  • cozzyd 2 days ago ago

    Vivado: hold my beer

    • jlokier 2 days ago ago

      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.

    • steve918 2 days ago ago

      Oh my lord. I'm sorry fellow tortured soul.

      • zahllos 2 days ago ago

        I laughed. Indeed there is quite some competition in the category "worst piece of professional software".

  • matthewsinclair 2 days ago ago

    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.

  • em-bee 2 days ago ago

    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...

  • mannyv 2 days ago ago

    I guess that means you're young.

  • yiyayo110 2 days ago ago

    wait until you try Android Studio...

    • sunaookami 2 days ago ago

      Huh, Android Studio is amazing because it's build by people who actually know how to make software (JetBrains) and it runs everywhere.

      • steve1977 2 days ago ago

        With everywhere, you mean everywhere in your RAM?

      • flohofwoe 2 days ago ago

        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.

      • pjmlp 2 days ago ago

        Provided one has 32 GB, with 16 real cores and a 1TB SSD ultra-fast.

        • estimator7292 2 days ago ago

          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.

        • sunaookami 2 days ago ago

          That's a pretty standard dev machine no?

          • pjmlp 2 days ago ago

            Maybe at Google, given how poorly Android Studio works otherwise.

            • Jensson 2 days ago ago

              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.

              • pjmlp 2 days ago ago

                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.

              • bigfishrunning 2 days ago ago

                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.

    • andrekandre 2 days ago ago

      do you mean to say it’s better or… worse??

  • arisAlexis 2 days ago ago

    Yeah it feels like a 90s C++ IDE

    • antfarm 2 days ago ago

      Metrowerks CodeWarrior wasn't too bad.

  • alcorr 3 days ago ago

    [dead]