I’m not sure you’d really want the crap-fest that is Xcode’s code. It has so many bugs and issues that it’s a better idea to completely dump it and either start over or give up and adopt something like AppCode, like Google did with Android Studio. Making developer tools is just not Apple’s forte and Xcode’s sad state of quality and performance is clear indication of that.
I’m thoroughly convinced that Apple has an internal-only IDE that they use that is far better than Xcode and is actually functional, much like the internal Radar tool. There is no way Apple’s engineers could get any work done if they use Xcode.
Or, they should start charging money for it so they could justify spending resources on the dev tools. One of the reasons (among many) that Visual Studio is still the king of all IDEs is because Microsoft charges money for the serious bits of it (Pro and higher).
I think you're seriously overstating the issues with Xcode. There are bugs and annoyances, but things have gotten better over the years. It's not as great as Visual Studio, but it's far from horrible. Remember, we live in a world with Eclipse.
Is Eclipse still growing exponentially? I remember Ganymede -> Helios increasing 2MM LOC, Helios -> Indigo 4MM LOC, and Indigo -> Juno 8MM LOC. I couldn't even get Luna to run, and haven't checked back in on it since then. The foundation started to bundle up too much stuff in the distributed versions.
>I’m thoroughly convinced that Apple has an internal-only IDE that they use that is far better than Xcode and is actually functional, much like the internal Radar tool.
That's an interesting point and it makes a lot of sense. With the scale of the codebases a lot of them are working on I also don't see how they could be productive while working in XCode. And also XCode could not be this buggy and broken if it had internal developers working with it and constantly reporting bugs.
The experienced developers at Apple are no different than the experienced developers elsewhere. They use the LLDB command-line and write their code in Emacs.
I've never liked Visual Studio, and the last time I worked on a serious Windows product most of the experienced developers used WinDbg and cordbg rather than the neutered Visual Studio debugger. And some guys still wrote their code in Visual Studio 6 rather than the newer .NET IDEs.
My problem with Xcode today is that it's too much like Visual Studio. I'll take Xcode 3 with LLDB any day.
Command-line tools are great but graphical displays can be useful, too. The real problem is that pane/window management on OSes is years behind where it should be.
What I want is a way to take any view I please, from any application, and arrange it anywhere in a standard way with keyboard support and sensible omissions of chrome. If this means 65% of my screen is terminals, 20% web browsers, 10% some graphical view from Xcode and 5% notifications, that should be perfect fine. Instead, the most the Mac has been able to cobble together is a simple split screen view and that is only for Full Screen.
And, we also have: Xcode with its own completely custom and quirky pane/tab management scheme, terminals with their own pane/tab scheme, browsers with their own tabs, etc. Individual applications continue to feel some need to over-engineer their own pane/window management to compensate for lack of system support.
There are some signs of hope though. The direction Apple is going with Mac view controllers could theoretically put them in a position to finally turn individual views into first-class citizens that would be feasible to interleave arbitrarily across applications. At that point, command-line tools could integrate very nicely in arbitrary ways with elements that really benefit from being graphical. We’ll see.
I have been using https://www.spectacleapp.com/ for a while now, and it has performed like a champ. Easy window resizing and organization with keyboard shortcuts.
How does it make a lot of sense? If Apple had a tool that was better than Xcode, why would they hide it from the public? They have proven themselves to be quite motivated to provide developers with good tools and frankly I find the idea that they keep a better tool hidden away ridiculous.
thought_alarm got it right. The experienced developers probably use open source editors / debuggers, unsuitable for the masses. Not an Apple-only tool, but still not XCode.
That is not my experience at all using Xcode professionally for the past 3+ years, and Visual Studio for over 7 years. Most of the complaints I've heard from colleagues about Xcode seemed from using unofficial 3rd party plugins, or Xcode's inferior c++ support for massive projects haphazardly ported form windows.
Xcode for iOS and Mac development has been the most productive IDE I've used professionally, not without its flaws, and unintuitive nuances, but continually improving. Yearly major ticket feature additions like UI Unit testing shows me Apple is still heavily investing in developer tools.
Technically, LLVM started as a research project at UIUC, and then Apple hired the principals and adopted the project in 2005. The LLVM website is still hosted by UIUC, and Google and other companies are also significant contributors.
Maintaining and growing an existing tool with its existing developers who you bought in is a good thing and to be applauded, but doesn't necessarily mean the company is good at tooling in general. The cultural requirements are very different.
I find Xcode quite a joy to use. It seems well laid-out, not a lot of UI chrome, easy to find the things you need and get things out of the way when you don't. Code completion, debugging, it's all pretty great for me. Not sure if the degree of your hate for it is accurate.
If AppCode ran on other platforms and became a Swift IDE that would be great honestly, not sure how long before JetBrains attempts this. As things stand those of us curious for Swift without any access to Apple products are left with just plain text-editors.
I agree. I don't even need very permissive license, just to look at sources would be enough. Sometimes I have to lurk around internet corners just to find out simple things which would require few minutes with source code access. It's so frustrating after Java environment where almost everything is available in source code.
The "source" is almost out there. Attaching the debugger to a 64-bit simulator and putting a breakpoint on Apple methods and functions, you can effortlessly read the disassembler code output by lldb/Xcode. I have fixed and learned countless UIKit-related bugs like that.
I’m thoroughly convinced that Apple has an internal-only IDE that they use that is far better than Xcode and is actually functional, much like the internal Radar tool. There is no way Apple’s engineers could get any work done if they use Xcode.
Or, they should start charging money for it so they could justify spending resources on the dev tools. One of the reasons (among many) that Visual Studio is still the king of all IDEs is because Microsoft charges money for the serious bits of it (Pro and higher).