So, Xcode 9! Here are my first impressions after a few days of using the beta.
I’m very impressed so far. The new editor is excellent — it’s super smooth and fast, even on some huge source files I work with that were sluggish before. It also does away with a lot of glitchiness I’d been experiencing, like random scrolling to the wrong place. I’ve found and reported a few regressions, like inability to turn off search wraparound, and ‘Use Selection For Replace’ not working.
Refactoring C++ is huge for me, because currently most of the code I’m writing is C++ or Obj-C++. The new refactoring UI is also very nice.
I have mixed feelings about the new Command-click behavior. It’s great to be able to access refactoring from the pop-up, but it does add an extra click to just jumping to the definition. You can use Ctrl-Command-click to skip that step, but it takes some effort to retrain my fingers to do that!
The undefined-behavior sanitizer and improved address sanitizer have already caught a few bugs in my code, including a tricky one involving using a pointer to a member of a C++ object after that object had left scope and been destructed. I have no idea what magic it used to detect that! On the downside, the UB sanitizer often causes my target executable to lock up when it finds the first issue, but I can work around it by just stopping it and running again.
All in all, I recommend downloading and using it.