Is Xcode the ideal IDE for most development needs, or is app/web/shell/script development not as narrowly approached?
I have broken down this into several parts:

For Scripting Languages




IDLE... It sucks!
Edit it any one of the text editors (your choice, but i suggest sublime or brackets) and the run in terminal
Use something like pycharm, it is a nice cross between something like xcode and just a text editor


For Programming Languages




For languages like Obj-C, C and C++ you have a couple of options like Codeblocks, Xcode and Eclipse. With Codeblocks, people either hate it or love it (I hate it). Eclipse is versatile but clunky, and Xcode... Xcode I really enjoy it, it is cool, easy-to-use and fun. Probably just starting out, go with Xcode.
For languages like swift, you have not many choices but Xcode.




Comparisons



Scripting Language Editors

Idle: Simple. Limited options and customization.

Sublime Text 2/3: More complex. Tons of extensions and customizations.

Brackets: Simple but complex. tons of themes. Still very new.

Atom: Large app size. Nice looking. Has a sublime-esk.

Programming Language IDE's

Xcode: Easy to use. tons of support. Large community.

Codeblocks: Clunky. * opinion * bad GUI. Has been around for a while.

Eclipse: Versatile, old,large community.

Conclusion



In the end, this question, boils down to opinion. What do you find is good? 

For me I use brackets and sublime for scripting, and Xcode for programming.

For you as a beginner, start by looking at sublime text 2 or 3 and Xcode.