Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
My major wish for Perl is that it gain major IDE-friendliness. After using Eclipse on Java code for an extended period, I really started to miss it when I'd go back to Perl and my editor wasn't a full partner in the crafting of code.
For those who haven't investigated - the main idea of Eclipse Java is that it's not a text editor, it's a parse-tree editor that shows you a text representation of the parse tree and lets you edit it. For every code file, it knows the type hierarchies, the member variables, the method signatures, etc. When you select a bunch of code and say "factor this out as a method", it's not going to mess up. When you select a variable and say "rename this variable", it's not going to change other text that happens to have the same characters. In short, it's not dumb, it's smart.
The effect that has on the programmer is that one no longer fears one's code, because one is wearing an extremely powerful exoskeleton that will do the dirty work for you.
There are obvious problems doing this with Perl code, not least of which is the fact that object member variables are usually just hash slots, and that's an open set, not a pre-declared set. But there are also many people who have tried to tackle that problem in various ways, and perhaps one of them is suitable for this use case. The other two big problems are ambiguous syntax, and runtime modification of classes; but it would be relatively easy to insert a pragma like "I vow not to use ambiguous syntax or to make runtime modifications to this class".
So my question is: does perl5i mainly just have goals of adding features that people have been jonesing for, or is there also room to add some helpful rigidity?
This comment has been minimized.
This comment has been minimized.Show comment Hide comment
tl;dr Yes, easier and more reliable compile time introspection is something worth exploring.
perl5i's goals are to...
A lot of simple questions which normally have complicated answers in Perl 5 are things having to do with introspection and meta-programming. "How do I find the methods of a class?" "How do I find the parents of a class?" "How do I find if an object is string overloaded?" and so on. Some of those have been tackled in perl5i::Meta.
It sounds like IDE friendliness jives with that. "How do I use Perl with Eclipse" is a simple question which should have a simple answer. And a lot of infrastructure necessary for Perl to work with an IDE comes down to introspection and meta-programming... but at compile time not run time.
Got any specific needs?