The Software QA Shrodinger Effect – That software seems to behave differently depending on who is observing it.
“It didn’t work when I tried it! Let me show you… Oh weird… I swore it didn’t work last time…”
It’s rare I go out of my way to just celebrate something, I usually try to have a balance and nuanced view and don’t like the mindset of attachment. However, I wish somebody had introduced me to this tool sooner. Thus this article is on WHY I love php storm (not that I love php storm).
Saying good things about the IDE is worthless to me if you don’t explain why, and nobody has ever explained WHY php storm is so much better than the alternatives.
Just to help you make an informed decision on how much/little my word is worth, these are the IDEs I’ve used enough to compare against for PHP&JS development:
Aptana, DreamWeaver, Eclipse, Netbeans, Notepad++, Zend Studio
- Go to file quickly (without using the mouse), using partial search with wildcards, with an instantaneous dropdown. So I can hit command-shift-N, type public/*user*.js and see a list of matching files, hit down to the correct one, press enter, and have it open, all with negligible latency.
- Other shortcuts are very useful, easily customizable, like back and forward.
- I can search my workspace without using the mouse, and it’s very quick, and intelligently stops if it finds >1000 matches.
- Spell-checks w/ the ability to add to dictionary. Because I’m a good speller this functions as both an error-catch (mistyped a variable name?) as well as a way to make team interactions better (how annoying to use somebody else’s misnamed function every time).
- The refactors are good.
- It doesn’t crash. I leave it running for weeks, literally. I don’t close the app when I put my computer to sleep, even over the weekend often. Even after weeks it uses less than a gig of ram (no memory leaks), and is still fast.
- Intelligently looks at doc blocks to infer return type.
- Validates JS. Can understand strict mode and ensure your code follows it if used.
- Understands JSON correctly and validates on the fly.
- Monitors for global variables and unused variables.
- Perfectly understand prototypal inheritance for its autocomplete etc.