How should I set up my coding environment for PHP, mySQL, and JavaScript development?
Solution 1:
I have about 7 years of experience coding in a Windows environment before I got my first mac early this year. So I know exactly what you're talking about. I was very used to the combination of Visual Studio for c++ and .net, Notepad++ for .bat and other scripting and lightweight tasks, and the occasional bit of Eclipse for java.
When I first started using my Mac, I was frustrated by what I saw to be a lack of equivalent software for OS X. I tried different IDEs and text editing solutions (Eclipse, Aptana, Textmate, Smultron, Fraise, etc), but like you said, nothing really 'clicked'.
However, at some point I stopped looking for replacements and started using the tools that were commonly used on *nix machines. Particularly vim. I've found that once my expectation of finding software equivalents to everything I had used on Windows dropped away, my horizons broadened. I feel like my interest in coding has been renewed because I'm learning a completely different way to work and think about the process. I'm using the command line way more than I ever have in the past, and this has translated into new techniques even in my Windows development (like using powershell and command line versions of tools rather than the gui).
I was in a huge programming rut before I started using my mac, but I'm finding that being forced to look at my process and tools in a different way is really bringing out talents and interests I didn't know I had before. I'm coding in python and c++ rather than javascript and c#, in one of the oldest editors in existence, and I'm loving it.
Solution 2:
I my self use variant of IDE for coding:
When I did PHP I mainly use Zend Studio that was eclipse based.
Beside that I use Eclipse itself (but I hadn't your problem about it's speed), or use NetBeans (it was really good).
And some times use Vim or MacVim.
Solution 3:
I've found TextMate with a PHP completion bundle and an ftp+ssh bundle to be pretty solid. You get everything you're asking for except for the window management, and as @mankoff noted, there are lots of choices for that. Not listed by him is HyperDock, which handles both window-snapping and window previews from the dock.