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.