Well, as you know I have started to use Netbeans for PHP development for a time being and I’m about to give up from my favorites, Zend Studio and of course Vi!
Zend Studio is a great tool! Even I generally can’t afford to pay it and install it every time I format my computer, with it’s newest version 6.1 (based on eclipse) it’s even better! After a month of work, I was really excited with the features it brought and debugging and as it was based on eclipse I was able to install other things like Aptana and of course after the trial I downgraded to PDT which was equally great. But as you know, Eclipse really sucks! I really think that people should not write IDE’s in Java (the main and only reason for this belief is Eclipse!), they should accept that it’s very slow and that’s a quite a pain for a developer! Especially some one used to vi or emacs which are very fast even when you are editing a file with 1k+ lines.
I have a great sympathy for NetBeans but honestly as I’m not a great Java developer, I did not have a lot time to work with it, but now it supports PHP and it was really great! I did not installed the other “craps” about java and only PHP support (which is only 23 Mb or something, PDT and Zend Studio are 100+Mb as I remember correctly or something like that) and it’s really fast and great! I mean really fast! So I have restarted to believe that, IDEs written in Java can be fast and powerful but if you know what you need and don’t add additional “craps” just because you can need them some time. I guess why Eclipse sucked was my greed, I apologize for it :)
So after a long introduction let’s come to the user experience I encountered with NetBeans 6.7 M2 edition. As a new Mac user, I’m glad that finally NetBeans looks like a native window and not like a Java window for Mac. And I loved it so much. Milestone is pretty much stable and most of the problems I encountered was occurring while indexing and scanning projects. But I’m not sure of it though, maybe it’s something else. And of course the 6.7 is very fast!
The part which I had hated with NetBeans was that it did not had a remote server explorer and also you couldn’t have opened a file just by browsing the file explorer! This was really a missing feature for NetBeans for years! And now there is! It was a request made on the forums as I remember correctly. Because when you are a PHP developer you generally develop on remote server and not local servers.
With the Filesystem Mount plugin (you can find this on the plugin installation page) you can mount file systems which will be seen. You can add a new folder which will be mounted on your local hard drive and if you mount the “/” directory this means you have a complete file browser.
For remote file systems, I’m using MacFuse and I mount them as an ssh file system. For NetBeans to see this file systems all I have to do is mount /Volumes/SSHFilesystem/ folder and it will show me everything I have mounted via MacFuse. You can also create a new project, and add a remote development path to that project. The thing which basically happens is this: You change your files locally and once you click on “Run” button your files are uploaded on the remote server (ftp or sftp, you can manage this connection while you are creating your new project, you will see these options if you choose Run As: Remote Web Site). This is a pretty good chance too. But I prefer the previous method, edit and run on remote server. The only problem about it is, it’s a bit slow. It might be because of MacFuse or my internet connection though. I’m not sure about it.
But the thing I remarked, it keeps eating my memory more and more even it stays idle and only one file is open. I’m glad that they have put a max memory limit for the current state of the NetBeans and once the memory reaches that limit the memory is freed dramatically (limit is 100Mb for the moment and after the resetting it becomes 40Mb, interesting).
I’m really waiting the day where there will be an WYSIWG editor on NetBeans or maybe some drag-n-drop editor for some popular PHP frameworks. Like once I drag-n-drop a Zend_Form component, the code behind it will be created automatically. Most of the people do not like this way, but it’s true that it cuts the development time a lot and instead of wasting your time where this button is placed or create a grid view which will show the returned results, you spend your time thinking what is the best way to create a fast, secure, scalable and flexible code base.