http://www.perlmonks.org?node_id=636279

I had developed in Perl 5 for years, and for years Perl was my 1st programming language and I loved it. Also for years I hated Java and .Net. I still respect Perl and think that it has a lot of very interesting things, but I still don’t have the smart things that arrived to the programming world in the last years.

This is my feedback after some years away of Perl working with other languages:

2 years ago I stopped to develop in Perl 5 due business opportunities, and started to do Research and Development with Java, and after this R&D project started to create and sell commercial applications in Java with the results of the R&D project. I stopped to hate Java (version 1.5+), but I still hate .Net.

Today a look to Perl and still don’t see very important resources that came to the programming world of Java, and other languages. But without this important resources will be much more difficult to use Perl in new business projects.

I don’t want to say that Perl is dying. But also I don’t want to say that Perl is alive only because still exists real Perl applications to be maintained. Is the same to say that COBOL is alive because we still have Banks that use it

Other problem that I see is that Perl 6 doesn’t exist in practice yet, years after Perl 6 started to be really developed.

Perl 5 is still the best language to use to process text data, but the world today needs much more resources:

  • A good IDE, like Eclipse for Java.
  • Good multi-threading.
  • Standard and rich GUI.
  • Today Perl is very far to have real solutions in these areas due this problems:

  • 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. 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. 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.
  • We see that multi-core computers are the future, and the only way to really use the total power of the hardware is a good multi-threading language. Perl 5 multi-threading model is just a pain. Good and real multi-thread in these days for me is like good memory management, we can’t live without. Perl 5 multi-thread model doesn’t work for real applications, especially because we have to much work to can use multi-thread and we only can create a fill threads in Perl. Today Java is the best language when we talk on multi-thread, since have all the needed resources to control concurrence access to data, Thread control, and critical sections. Also we can create a lot of threads, much more than Perl, and also with a good performance.
  • The use of GUI for desktop applications is very important. Perl still don’t have standard solutions for Desktop GUI. We have wxPerl, that I have collaborated and is very good, portable, but is not standard and available in any Perl installation. Also is problematic to create Desktop Applications with the bad multi-thread model of Perl 5. GUI means multi-thread, and since on Perl 5 you have to design all the code to have it on multi-thread, this is a big problem, especially when you want to use 3rd part modules.
  • Perl still have very good things:

  • CPAN: The paradise to contribute or find already done work to help on our projects.
  • REGEXP: Perl is still the best language when we talk about REGEXP, and actually I still prefer to test REGEXP on Perl before use it on Java. Also is still the best REGEXP engine, especially when we talk about performance and features to create patterns.
  • Powerful syntax, that help to create fast solutions for complex problems. But the dependence of runtime states to parse the language is a big problem for me, since invalidate any real solution for a good IDE.
  • One of the strongest reasons to use Java today is to be able to have Eclipse, that really help the job and speedup it, and a good multi-threading. I just can’t use a language that doesn’t have these resources.

    I still hope that one day Perl6 will be there, and Perl world will have a good IDE and real multi-threading model. The problem is that programmers won’t wait for that, and when Perl 6 arrives for us the other languages will be much more developed.