(I'm going to go off on a rant here, about IDEs. Those on the ExtremePerl mailing list will probably recognize it. I've x-posted it in its entirety, originally sent on June 6, 2005.)

I'm still trying to figure out where my projects are going to get complex enough that I need my EDITOR to figure it out for me. To me, that's a CodeSmell and my design needs to be rethought.

I have always looked at IDEs as a bandaid. To me, they are the good programmer's solution to a bad infrastructure foisted upon them by mediocre architects. The Java libraries (and the C++ STL crap) are, frankly, overly complicated. Smalltalk is also rife with this - Bag and Collection and SortedUniqueCollectionThatOnlyWorksOnTuesdaysInMarch ... whatever!

Why should I ever need CodeAssist? Code Complete says that I shouldn't be dealing with more variables in a scope than will exist in 50 lines of code. Ideally, I should be able to see on one sheet of paper everything that I can affect. When I write, I have to justify to myself when the scope goes beyond the size of my window (52 lines).

The methodname completion thing sounds like a good idea. Except, you still need to have documented what those methods do. So, you still need to write the docco. Me - if I had to write the docco for 3245987305734 different methods whose names are 44 characters long and which differ after 12(!) CamelCased characters ... that's an OrganizationSmell to me. That's an organization that -wants- to be obsoleted, and soon.

I just left a contract with a company that, after giving 50% of their profit to the parent, makes over M$150/year. They have locked huge universities and several national patent offices to their products for several _decades_ - and they'll see their profits drop in 5 years.

Why? They rewrote their flagship product in Java. Now, I have nothing against Java per se ... any project that takes 100 developers/designers/testers/architects/etc over 5 years to get to the first beta is going to doom the company.

Now, everyone knows a story like that. Except, I've never heard of a story like that in Perl or Lisp or Haskell. I'll be glad to be corrected, but I only hear stories like that in Java, C++, and .NET ... and I don't think it's a coincedence. The languages that make an IDE go nuts are the very languages that are the most productive to work in.

If I told you I had whipped a project out in a week by myself and changes take 20 minutes, then it was rewritten in the corporate language and it took 4 people 3 months and it still doesn't work right and changes take a week ... could you guess the languages? I'd be interested in seeing a Java -> Perl conversion that meets those criteria.

Basically, there is no IDE for Perl or Lisp or Haskell, and there can never be one. AND THAT'S A GOOD THING. That's a sign that the language is on the right track. If you need an IDE, then that's a sign you will spend way too much time fighting the language (or library) and not enough time making your company money.


  • In general, if you think something isn't in Perl, try it out, because it usually is. :-)
  • "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"

In reply to Re: Features missing in perl IDEs? by dragonchild
in thread Features missing in perl IDEs? by BUU

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.