Open Source IDE for Perl

Blog entries
2008 Sep 22

The Quest for the Perfect Editor.
2008 Sep 04

Living on the border.
2008 Sep 02

TAP - Test Anything Protocol.
2008 Aug 31

Padre - the journey I..
2008 Aug 21

Who needs and IDE for Perl anyway?.
2008 Aug 09

Padre project web site.
2008 Jul 27

Padre.
2008 Jul 23

White Camel.
2008 Jul 18

Name a Perl IDE - get a Perl book or YAPC ticket.
2008 Jul 09

QA Hackathon in Israel.
2008 Jul 01

OSDC Israel 2009 - Call for organizers.
2008 Jun 11

Selenium on Ubuntu 8.04 (Hardy).
2008 Jun 09

Testing Hello World.
2008 Jun 08

Wifi is working again!.
2008 Jun 07

CPANTS update.
2008 Jun 04

Frequent Internet blackouts.
2008 Jun 03

Upgrading to Ubuntu 8.04 Hardy on Compaq (HP) nc6400. .
2008 May 24

Test Automation Tips.
2008 May 22

Open Source IDE for Perl.
2008 May 21

This week in Ruby.
2008 May 21

Being included on Planet Perl.
2008 May 14

Adding tag cloud to the blog.
2008 May 14

Ubuntu 7.04 (beta) Feisty Fawn on Compaq (HP) nc6400.
2008 May 13

Test automation using Perl master class in Chicago.
2008 May 13

Adding tags to the blog.
2008 May 09

Automated Testing in PHP, Python, Ruby and Perl.
2008 Apr 03

Strawberry Perl for Windows.
2008 Apr 01

Oslo Hackathon day -4.
2008 Mar 28

Blogging about Perl outside the community?.
2008 Mar 27

OSCON Proposals rejected.
2008 Mar 26

Preparing for the QA Hackathon in Oslo.
2008 Mar 25

Missing licenses on CPAN modules?.
2008 Mar 24

License of Perl Modules on CPAN.
2007 Dec 24

Joining Technorati?.
2007 Dec 24

Regular Expressions in Perl 5.10.
2007 Dec 24

Switching in Perl 5.10.
2007 Dec 24

Smart Matching in Perl 5.10.
2007 Dec 24

What's new in Perl 5.10? say, //, state.
2007 Dec 23

The Zulo interview was published.
2007 Dec 08

Frequency of programming languages on LinkedIn.
2007 Dec 06

Interview in Zulo.
2007 Dec 06

Sun Startup Essentials Launch.
2007 Aug 25

Testing PostgresSQL.
2007 Aug 25

Testing Pugs and Perl 6.
2007 Aug 22

Testing Ruby.
2007 Aug 22

Testing GHC, the Glasgow Haskell Compiler.
2007 Aug 22

Testing NUT, the Network UPS Tools.
2007 Aug 21

Testing SQLite .
2007 Aug 20

Smoked Parrot.
2007 Aug 20

Quality Assurance of Perl 5.
2007 Jul 09

Using mod_perl for szabgab.com.
2007 Jul 07

Quality Assurance and Automated Testing in Open Source Software.
2007 Jul 07

Add tags to CPAN modules via CPAN::Forum .
2007 Jun 15

Windows on VMware.
2007 Jun 13

Reducing the social gap of the information age.
2007 May 25

Moving to a new server.
2007 May 04

Preparing an application for distribution.
2007 May 01

Spreadsheet::ParseExcel is looking for a maintainer.
2007 Apr 28

CPAN Modules in Linux Distributions.
2007 Apr 18

Version control of single files using Subversion.
2007 Apr 13

Testing results, Perl and CPAN module availability.
2006 Aug 05

Perltraining.org split into two.
2006 Jul 23

Upgrading Ubuntu to 6.06, (Dapper Drake).
2006 Jul 22

Ginger Spam Salad.
2006 Jul 20

Automating the blog.
2006 Jul 19

Wish list: search engine for Perl related sites.
2006 Jul 19

Perltraining.org .
2006 Jul 19

More blog related issues.
2006 Jul 19

Starting a blog.

 

home | blog

Open Source IDE for Perl

Published on 2008.05.22 at 09:43:32

Tags: Perl, editor, IDE, open source, debugger, Gtk, WxWidgets, Windows, training

During my classes I always need to get into this explanation of why there is no really good open source IDE for Perl. I always go by explaining that most of the Perl developers either use some version of vi or emacs but every time there are students who insist on that they need an IDE.

Actually as I am thinking about this more, I don't really know if there is no good IDE for Perl as I personally don't feel I need anything more than what I am currently using: gvim + command UNIX line tools including ack and lots of unit tests.

Thinking it even more there are a few places where I could improve my own development environment. One of them is that I constantly need to look up things in tons of pod files and I think I am typing perldoc and the names of the module just too many times.

Anyway, that's my environment and the problem is with people who are either starting out on perl or have only a few years experience. They need much more hand holding from the tools.

When I am at clients, I see many developers insisting on using a real IDE. These are either people with only a few years experience or people who switched from languages where you live in your IDE such as Java or C++. They are also mostly people with Windows only background. Some of these people use Eclipse with Epic, others use Komodo yet other use some text editor with syntax highlighting but complain about the lack of debugger.

In the classes I always explain the advantage of vi/emacs and knowing the built-in debugger of Perl by the fact that in just too many cases we are required to work on remote Unix systems with nothing on them.

Of course if I have an IDE that can run on my desktop but edit files on a remote machine (via ftp or scp) and then can execute that code on the remote machine (via telnet or ssh) but show the debugging information on my IDE. That could be cool.

I see people using Komodo for remote editing at one of the clients and while I am sure there are advantages we suffer a lot as saving the files take time and we often switch to another console and start running the program before it is fully saved. This leads to all kinds of nasty error message that often confuse us.

Anyway, for people with hardly any experience in Perl having all the information in the IDE (e.g. what parameters a function can get) will often out weight the inconvenience of having to wait for the ftp to complete.

In addition there should be many more people using Perl on Windows. Part of the reason that there are not so many might be the fact that both the environment and even the Perl documentation expects some Unix experience.

So I decided I try to further investigate the issue, first by trying to find out what kind of editors and IDEs are out there and what am I missing - if anything - by using vi instead of some real IDE. In addition I'd like to know what others use for their Perl development? Finally to see what improvement do we need and how to reach that?

There are plenty of good free text editors for Windows, they do quite a good job in syntax highlighting, some of them can even be configured to launch your script from within the editor but none of them is and IDE.

After some search I found that there is an entry in the Perl FAQ that comes with your standard perl installation but one that you can also read here: IDE or Windows Perl Editor Unfortunately Notepad++, the editor I use sometimes on Windows isn't mentioned there.

Then I looked at PerlMonks and I found several nodes about the topic. Both new and old. Here are a few links. Following them will lead for the other nodes.

In addition there was an article on perl.com a few years ago with the title Perl Needs Better Tools

There is also a page on the Perl Foundation wiki describing some of the editors. I added some links there but that page still lack any substantial information.

So based on all the discussions I tried to list what do people need from their IDE?

Beginners (especially in classes) need these:

  • Good Syntax highlighting
  • Automatic syntax checking
  • Bracket highlighting and bracket matching
  • Code suggestion and auto-completion for perl keywords
  • Showing the available parameters of keywords
  • Context sensitive help on perl built-ins (including variables and constructs) and on modules
  • Pod viewer
  • Integrated Debugger (expression evaluation, breakpoints, watches etc.)
  • Mouse over tool tips for variable contents
  • Debugging: Edit and Continue support
  • Jump directly to locations (editor-wise) Perl has warned or died at

When writing applications (the first few years) people also need these:

  • Display subroutines in a sidebar
  • Auto-completion for methods in OOP development
  • Remote editing (via ftp, ssh, etc.)
  • Remote debugging (when the code is actually running on another machine
  • Integration with version control
  • For web application emulation of a real Web server

And the more advanced stuff is here:

  • Refactoring support
  • Tool to build GUI
  • Integration with unit testing

So what tools are out there?

Before finding all the above links I turned to Google. There were some interesting results most notably the big difference in numbers when one is searching for perl editor ( 2,940,000 hits ) or for perl ide ( 307,000 hits ).

So if I am already there I decided to run the same search for other languages:

Number of hits on Google for XYZ editor and XYZ IDE:

EditorIDE
Perl2,940,000307,000
Python312,000381,000
Ruby302,000570,000
Java903,0001,300,000
PHP8,620,0001,310,000
.NET14,700,000864,000

You do whatever you want with this data.

Anyway why am I writing all this?

I don't worry to much about people using Linux or Unix directly. There are Perl beginners there too but they are much more used to rough edges and using several tools at the same time.

What I am interested in is having a great and free version of Perl width loads of tools for the Windows developers. Strawberry Perl is quite promising but I think it would be great if it came with a built in editor. Especially when the Perl-on-a-stick project is done we'll be able to have a working perl installation on a disk-on-key so we can just plug it in a computer and start using our Perl scripts or give a demo. It would be great to have an editor there too.

So a month or so ago I thought I'll write one. I know it must be lots of work but it might be quite rewarding. I started to write in Gtk2-Perl and within a few days I had a working version. Then I found out that Nadim has also started to write on in Gtk2. I tried to play around with that one but then I talked with Adam Kennedy, the maintainer of Strawberry Perl. He suggested to include Kephra with Strawberry or Chocolate Perl. It was written in Wx-Perl.

While I like Gtk2 better than WxWidgets it is mostly because I had bad experience with WxWidgets. It was hard to install and I have not found any documentation for it. Nevertheless I have to admit that probably an application written in Wx-Perl will have better chances on Windows than one written in Gtk2-Perl as the former looks smoother on Windows.

I am still at odds whether I should invest any more energy in it, given that there are plenty of editors out there and given that it is not likely that I personally will need it. Anyway it can be a good way to learn Wx-Perl and I have a few ideas on how to make it more useful for windows developers.

Comments by

Claudio Ramirez
See more comments on use.perl.org

Comments?

Instead of enabling comments here, please write your comment in your own blog and send me the link so I can add it here.

Last Update: Tue Sep 25 17:06:26 2007