manton
manton

It’s a cheap shot to complain about developer tools — and Xcode overall is great! — but something is seriously wrong in Xcode debugging in recent years. Feels like I can reload an entire React Native app’s JavaScript faster than I can view simple variables when stepping through Swift or Objective-C.

|
Embed
Progress spinner
heathborders@hachyderm.io
heathborders@hachyderm.io

@manton genuine question: what other developer tools have you used as much as Xcode?

|
Embed
Progress spinner
deeje@mastodon.social
deeje@mastodon.social

@manton wired or wireless? For me, plugging in is not enough, I have to disable WiFi!

|
Embed
Progress spinner
manton
manton

@heathborders Nothing as much as Xcode. These days the only other tools I use for coding are Nova and Android Studio. Going back decades, I’ve used all the old Mac stuff (THINK Pascal, Symantec C++, CodeWarrior…) and they were relatively zippy.

|
Embed
Progress spinner
manton
manton

@deeje Usually wired. That’s interesting that just having wi-fi enabled may matter. I’ll check that!

|
Embed
Progress spinner
mitchwinn@mastodon.social
mitchwinn@mastodon.social

@manton before I worked full time in Xcode I used to be a C# developer and couldn’t believe how slow Xcode debugging was compared to visual studio.

|
Embed
Progress spinner
patrickmcconnell@mastodon.social
patrickmcconnell@mastodon.social

@manton this presumes the debugger will even show you the variable. So many times it just says nope

|
Embed
Progress spinner
Eggfreckles@mastodon.mit.edu
Eggfreckles@mastodon.mit.edu

@manton bring back CodeWarrior!

|
Embed
Progress spinner
In reply to
Havn
Havn

@manton If you want ā€œzippyā€, I’d take a look at Zed! šŸ™‚

(It’s just a text editor, though - I know it’s not the same! But you know, Fast Software, the Best Software. šŸ˜Ž)

|
Embed
Progress spinner
tzeejay@mastodon.social
tzeejay@mastodon.social

@manton @deeje there is a bug in Xcode in which it will use the wireless connection even if you're plugged into USB.
Disable WiFi on your phone, build & run to the device and things will be speedy again

|
Embed
Progress spinner
jasonmolenda@mastodon.social
jasonmolenda@mastodon.social

@manton If you'd like to pursue a feedback report with apple, I'd enable packet logging between the mac & device by putting `log enable -T -f /tmp/log.txt gdb-remote packets` in `~/.lldbinit`, start debugging, step once or twice, then in Xcode debug console do `swift-healthcheck`, attach /tmp/log.txt and the records from swift-healthcheck to the feedback report. That's a good first cut for measuring where the time might be spent.

|
Embed
Progress spinner
jasonmolenda@mastodon.social
jasonmolenda@mastodon.social

@manton The first time the debugger does something - an expression, looking at the locals in a stack frame - there may be startup work being done, so it's important to distinguish between the first and second time something is done in a debug session. Not that a slow first-time is acceptable, but it points to a problem of a different nature than slow-every-time.

|
Embed
Progress spinner
jasonmolenda@mastodon.social
jasonmolenda@mastodon.social

@manton idk anything about comm layer but if you do find that a hardwired device is slow, then you disable wifi and it becomes faster, I don't think that's expected and it would be valuable feedback. That packet log with timestamps would make it easy to see the difference in comm times, even if the channel used is opaque at this layer.

|
Embed
Progress spinner
jasonmolenda@mastodon.social
jasonmolenda@mastodon.social

@manton the feedback may come back asking for more specific details / logs, but that's a good first cut towards understanding what type of issue this might be.

|
Embed
Progress spinner