A recent question on the SF.pm mailing list about IDEs prompted me to think about what I depend on to code Perl.
I've been spending some time recently in GUI IDEs for other languages, especially MonoDevelop and Visual Studio. MonoDevelop is snappy and helpful. VS is of course a bloated mess. (Though if I were developing for Windows I probably couldn't live without it. Fortunately this is not my lot.) GUI IDEs are like C++ socket wrappers: Making one is easy, but making one that actually helps you get your work done is harder than it looks.
However, I am accustomed to Emacs and I simply cannot do development without shell-fu. Frankly I'm surprised anyone does. IDEs are simply not well suited for power coding. Too much clicking and so little progress for all that. However, some real, earnest, full-power IDE support for Perl inside Emacxs would be excellent. For example, automatic runs of "perl -c" and highlighting of error lines would be beautiful, and I would give real money for automated refactoring to e.g. rename things globally and safely. Perhaps given the libperl integration of vim it would be better to build the smart bits with vim and PPI rather than trying to shoehorn it into Emacs?
I've had recommended Perlnow for Emacs and perl-support for vim. I'll give them a look.
Meanwhile, today, I count nine tools that are vital for my Perl development. In roughly descending order of importance, they are:
- CPAN and search.cpan.org, though that's a given
- emacs with cperl-mode (make sure it's up to date!) and some easy customizations -- e.g. a function key for grep which defaults to ack at project root (well my own script that predates ack)
- zsh. Like I said, there is absoutely no substitute for shell-fu
- perl -d. I simply cannot live without this, and neither can you. If you think you're doing OK without it, you're kidding yourself
- Thinkpad. These keyboards simply have no equal. I don't understand people who code on Macs ... not because of the software, though that is a minor issue, but because of the perverse industrial design of the keyboards. Beautiful pains
- git, or hg in a pinch.
- Debian. (Sorry, Mac OS, if you ran on a machine with a decent keyboard I'd think about it.)
- cpanm
- vi. Emacs is too heavy for quick hacks
Let me know if you know of any good Perl IDE hacks for emacs/vim, or want to suggest additions to the above list.