I woke up this morning and thought, I really should provide a more personal account of why I switched other than, I was spoiled by my C# development (using Visual Studio).
Both of those sound like me about a year ago. The problem I was facing, is my PHP work is in a very targeted market that usually requires me to write up a new framework/API to tackle a specific task. Using vim, kate, nano, pico, whatever was fine for syntax highlighting but it failed to allow me to easily remember all of the classes and their respective public methods for me to quickly write the implementation of the API I just built (or portions of the API that may need to invoke lower level classes/methods to perform a task). I found myself using screen so I could have multiple windows/screens open that I had to flip through.
For several years, it was fine, but then I got tired of it. Felt like I was being dragged back to PHP instead of enjoying it (after using C# for 6 years everyday). So my hunt for a nice IDE kicked in and I can’t go back (even as I still only do custom frameworks/APIs). My last API took me a little over 2 weeks to develop (keep in mind, that is 2 weeks working maybe 2 hours a night, 4 hours a weekend – 14-18 hours total a week), that included unit tests, implementing the API, generating documentation (and cleaning it up), etc. Prior to a good IDE, I would have likely spent 4 weeks and most of my 2 hours a night and 4 hours a weekend would have been figuring out what I called that class and its methods (even if they were named well and were guessable, I’m the kind of guy that doesn’t want to guess, be wrong, and then have to go track it down, so I got in the habit of tracking it down up front).
That was by far the best feature every good IDE will handle for you via auto-hinting and intellisense. The hidden cost benefit features of xDebug, profiler, and code analysis each played tremendously in allowing me to get the system built and proven in a short time frame as well. They weren’t used daily (well code analysis was), but any time I had a problem, it was nice pressing a keyboard shortcut and seeing the debugger attach automatically or the profiler start to track the code execution I was wanting to watch. Code Analysis was a “I fell into it” feature. phpStorm runs a code inspection/analysis every time you perform a checkin to your source control. It was through that, where it caught me doing a few bad practices and warned me to change it. The first time I saw it, I went “Wow! Good catch. I could definitely improve upon that.” followed by “I didn’t even realize phpStorm did this automatically…” (however, it does get some things wrong, or goes nuts when you have two classes named them same (one for your tests and the other for the actual API).
Just my story of why I switched and how it helped me write my frameworks/APIs faster. I believe every developer will be at a different cross road as to when a good IDE will help them versus get in their way (I know a lot of developers much stronger than I that still use VIM or something similar over an IDE, so there is personal preference there too – albeit one of them is starting to seriously consider moving to an IDE).