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.

_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to