in reply to Slow evolution of Perl = Perl is a closed Word
Today a good IDE is capable to parse the code, navigate the code, show documentation texts over the code and point code errors and warnings without run the code.That kind of thing is usually called "static analysis" and support for it is language-dependent. Java is an extremely simple language, semantically speaking, so static analysis of Java source code is quite easy.
The perl module PPI can parse perl quite well, so there's no good reason for an IDE to miss out.
Existing perl5 IDE's (such as Komodo) or tag systems can navigate perl code very well so that's a non-issue.
In Visual Studio, the VB.Net team chose to employ more static analysis (before compile-time) than the C# team because that was an expectation of incoming VB programmers... in that case the decision was not related to the difficulty in statically analyzing the source code.
IDE's that show errors as you type are simply compiling the source code all the time as you type. Some exceptions to this include type/arity errors which can be determined by simple lookup. Re-compiling all the time slows down the IDE (and is the reason that Visual Studio does not do the same for C#).
perl5 does not have type or arity signatures for its methods so that kind of lookup or analysis is quite meaningless.
As for documentation, there's no reason why an IDE for perl cannot parse structured POD for a method to have it provided (in a tool-tip) in other contexts.
Some errors are not easily detectable until run-time due to a concept known (in non-perl circles) as "late binding". Languages like Java and C#(<3.0) have no inbuilt late binding so one doesn't notice that class of error in practice, however both provide introspection/reflection API's and the same sorts of errors apply there... the IDE is no help in those cases.
Dynamic languages in general benefit more from unit testing than from static analysis, and so IDE's with good support for unit-testing suffice in practice.
To have a good IDE for Perl 5 is difficult, since Perl 5 has a very complex syntax, especially because Perl 5 depends of runtime states to be really parsed.I do not believe the later statement to be true. Can you cite credible sources for this assertion?
To do this on Perl 5 to me is near to impossible. I was waiting for Perl 6 to resolve these syntax problems, but Perl 6 today is just a dream.These "problems" are not about syntax. The perl language must be parsed by a sufficiently context-aware parser. (A discussion of classes of parser is out of scope here.)
The language features which make perl different/difficult to parse relate to expressiveness and semantics.
There's been a conscious effort in the perl6 design team (over the last year) to reduce parser ambiguity in the perl6 grammar, solely to make parsing perl6 faster (not easier... it was easy before ;).
At the risk of being down-voted, I think your whole rant is simplistic and ill-informed.
-David
|
|---|