A Learning Perl reader asked me for some advice in private email. After I typed it out I felt like posting it for everyone. He graciously let me use his questions and my answers.
1. I wish to use Perl on Windows, is it a good combination (from a career perspective)?
Although Windows can be a pain, and not just because of Perl, there are plenty of people who need to get things done on Windows. With the Win32:: modules, you can hook into the same APIs. I think you can even use Perl from Powershell.
2. Would the knowledge I’ll gain after self-training for Perl be useful for a long time?
You always have to keep learning. Perl is just a language and you can get almost anything done with it, but the more valuable thing is knowledge about the problem you’re trying to solve.
“Useful” is a harder thing to judge because it mostly depends on what you are doing. Perl can do quite a bit, but I find that “useful” is related to what non-Perl libraries I can access through Perl.
I don’t think you can go wrong at least learning Perl and practicing it for a couple of years. Some of the experience you gain there you can transfer to another language. It’s same the other way around, too, since the more experience you have as a programmer the easier new languages should be for you.
3. How does one figure out a niche for himself in this hugely spread-out world of Perl?
I find something that’s not getting done and take ownership of it. Something out there is being neglected. Just keep plugging away at something boring and unexciting. Running a local user group is good for that.
I would have answered these a little differently, although it’s not because there is anything wrong with your answers, brian. I just have a different perspective:
1. I wish to use Perl on Windows, is it a good combination (from a career perspective)?
It can be an excellent combination from a career perspective depending on what type of shop you find yourself working in. There are people using Perl who have never written a line of code intended to run on a *nix platform. *nix can be a bit of a pain, what with incompatible binaries, a lack of standardization in GUIs and the tendency to bundle old versions of Perl with the standard distributions. That being said, there are still people who need to get things done on *nix…
2. Would the knowledge I’ll gain after self-training for Perl be useful for a long time?
There are people coding in Perl who have been using the language for 20 years. Today’s Perl user has a wider choice in scripting and programming languages than he might have 20 years ago, and as a result the language is no longer considered to be the default go-to platform for new development. Yet it gets its share of attention, and despite not being a “default” language anymore it is still a viable choice for many problem domains (e.g. systems automation, web applications, text crunching, scientific number crunching, etc.)
3. How does one figure out a niche for himself in this hugely spread-out world of Perl?
The best way is first to become a competent Perl user. As your experience grows, you will inevitably find modules that *almost* do what you want them to, or that have bugs the original authors don’t have the time or energy to fix. You can begin making your contribution to the wide world of Perl by stepping in and repairing those things. Or you can write about your experiences using Perl. Or you can simply write great code that does something that isn’t currently covered by a CPAN module and release it for the world to use. The sky truly is the limit, and Perl is flexible enough that you’re really only limited by your own creativity and imagination.
I’m going to suggest my answer to 1st question:
1. I wish to use Perl on Windows, is it a good combination (from a career perspective)?
This is an excellent choice. I did this at the beginning of my Perl studying to add additional features to our Windows app. With the help of Perl and its modules (HTTP::Daemon, DBI, Template::Toolkit) i was able to add web server, SQL layer for whatever databases customers had (through DBD::ODBC), and customer-customizable pure Perl scripts itself to create flexible reports.
Hi,
Yes. Learning Perl on Windows will help. The logic remains the same, just the OS platform changes.
I have done some small automation in Perl. Used DWIM Perl for Windows. I am glad I picked up Perl.
Now I am considered as a kind of a “go-to” guy for any automation/scripting related work. And yeah, my boss is happy that I got the automation done. Its saved us from some trouble and business impact. 🙂
Note – I am not a Perl Expert. And to be decently productive in Perl, you don’t have to be a Perl Expert.
I am a somehow recent Perl user (started two years ago reading books) without any recognised computer knowledge (Psychology is my field) and using it for “pleasure” in GNU/Linux. After learning some Perl, it is easier for me (after some background) to read some C and Python code. Also, I have been able to quickly learn and write some Lua code. In this sense, I do agree with “Some of the experience you gain there you can transfer to another language”. I tried, before Perl, to learn other languages (like Python). The difference is that you can easily write working Perl code (with the CPAN help) and, at the same time, being involved with very complex computer concepts. I would say it is a very expressive language to start with.
And thanks for your great books!