On 5/10/2011 2:15 AM, Ashar Voultoiz wrote:
On 09/05/11 18:47, Brion Vibber wrote:
On 09/05/11 15:08, Tod wrote:
Is there an IDE that the MW developer community has settled on and can recommend?
My take is that there are three cultures.
(1) People who use IDEs that are actually useful for the languages that they use. This is true of Eclipse for Java, but probably not Eclipse for anything else. This is true of Visual Studio for both C# and Visual Basic. In these cases you get a visual debugger that actually works, code completion that actually works and various code analysis features that actually work. Yes, these products are big, but (i) you get something back for the bloat, and (ii) 24GB of RAM costs about $350 these days and if you increase the productivity of a programmer who gets paid $35 an hour by 1%, that pays for itself in less than a month of full-time work.
An interesting characteristic of type (1) tools that they are rarely Open Source. Eclipse/Java is nominally Open Source but it's got a big company (IBM) behind it, and I think without that Eclipse/Java would be a type (3) tool. When it comes to "scratching an itch", the kind of people who develop type (1) tools don't need type (1) tools and they won't do the 80% of the effort to finish the last 20% of the product.
I'm not aware of any type (1) tools for dynamically typed languages.
(2) Text editors. You've got plenty of choice here. Lately I like jedit because it works on Windows, Mac and Linux and it has an edit-over-SFTP that (unlike many products that claim this feature) actually works. I used to use emacs, and it's handy to know vi in case you have to fix up a FUBARed Unix machine of some kind. If you're running Windows, the key thing is having something better than Notepad.
Something important is that there's a cultural gap between type (1) and type (2)'s. A lot of type (1) people 's are intimidated by the though of using type (2) tools and a lot of type (2) people see the use of type (1) tools as being a sign of mental weakness.
(3) People who use broken IDEs and (generally) don't realize their tools are broken. Here you're paying the performance and bullshit taxes that come with type (1) (in fact, probably experiencing 10 or 100x the bullshit) and not getting the very real benefits that come from type (1) tools.
For instance, there are several Scala plugins for Eclipse and they all share the feature that they don't work. Opening in a Scala file is like playing Russian Roulette. The file might take 2 seconds to open, or maybe 2 minutes, or maybe 2 hours. Even if your code compiles just fine, you'll never get the red marks in the margin to go away so at some point you'll decide to ignore them -- unless you've got some sense and switch to type (2) tools.
All of the PHP plugins I've seen for Eclipse are bad, if not as bad as the Scala plugins. Maybe Eclipse attains type (1) status for something other than Java, but I've never seen it. I've yet to see a PHP IDE that attains type (1) status, but maybe just maybe if the stars align right you might occasionally get a visual debugger working with PHP... Maybe.
I think the real problem is that people use the word "IDE" and don't differentiate between the type (1) and type (3)'s, between the emperors who have clothes and those who don't. Most type (2) people think all IDE's are crap, so they don't see the difference between type (1) and type (3) tools. Most type (1) people accept any claim that a product is an "IDE" and are so terrified of trying type (2) tools that they'll take whatever they can get: they'll desperately cling to type (3) tools even when they make their lives miserable.