Don't think you are as needed as you suppose. As the saying goes, "The graveyard is filled with people once thought of as irreplaceable."
I understand the feeling, you want the job to be more than just a relationship of convenience and profit. It seldom works out like that. It might feel that way for a while, but hit an economic downturn, or face a suddenly buyout or change in upper management and you'll soon see the reality. You need to do what is in your personal best interest, taking everything into account (not just the money). If it was in the best interest of the company to lay you off, they'd do it in an instant, and likely with a lot fewer qualms as you feel now.
I'm sorry you inherited a complex, and idiomatic perl application. However I don't think its fair, computer scientist or not, to project that experience onto the entire modern Perl ecosystem. Good luck with your career.
The ships are BIG, neither are sinking anytime soon.
If you want a job now, you probably should spend time on Perl5, since the bulk of work is there today. But if you want to join a dynamic community which is building a cool new language from scratch, and where you individual efforts can have a huge impact, you might want to check out Perl 6. That's my thoughts at least.
I invested a lot of time mastering Perl, and continue to add to it everyday. I'm not unhappy about that bit at all. I think you get what you give. If you make the effort to be part of the community of Perl, to contribute code, write docs, blogs, anything, like patches or new ideas, you get a lot more out of it. And I get well paid to do it everyday. I'm sorry for those that had a different experience, but if you want to get back to Perl I am open to helping out, feel free to message me.
Thank you for giving us, the Perl community, the benefit of the doubt. The world is big, and there's lots of room for intelligent people to have rationally based differences.
I'm glad mucking with Perl worked out for you. But there's a lot of modern Perl programmers turning out beautiful, terse and elegant code. So please don't globalize your experience. I wrote a Java applet once in 1995 but I don't keep saying that's all Java is good for.
That's just those using Catalyst (a popular Perl based Model View Controller system) but if you glance down the list you are going to see some huge sites with big, big traffic loads. All new stuff, things launched within the past two/three years max. BBC iPlayer alone is one of the heaviest hit sites on the web, and that's Perl.
So you are wrong in your guess that "80%" of Perl programmers are sysadmins writing cron jobs. Whoever modded you up should have done a bit of checking, because marking your opinion as insightful is highly inaccurate.
There have been several new Perl books written just for Catalyst in the past two years, so just because you are not finding anything new for Mason (which is probably not the framework of choice for the modern Perl programmer anyway) that is not much of an indicator. There's tons of FREE docs and examples for Perl in any case (http://search.cpan.org/)
As far as Google's lack of commitment to Perl, well, I'm sorry to hear about that, but that's one company. Google Appengine is a pretty small garden, and the Perl interpreter has trouble running under its confinement. To be honest, Python doesn't run everything under appengine either, you need to write code for appengine. I think getting PHP or other languages to run under it will be equally difficult.
If you want to program in Perl on the cloud you have a ton of options, such as EC2, Rackspace cloud and pretty much any cloud provider with an open system (not Appengines walled garden) Oh, and if you want a smarter search engine, trying http://duckduckgo.com/, which is written in Perl and I find more useful than Google search.
I realize that the Perl community needs to do a better job showing that we are not stuck in 1998, so I forgive your lack of knowledge in this matter. I do actually appreciate the opportunity to discuss it, since this is really the only way this perception problem with be solved. However I hope you can meet me halfway and do a bit of checking on modern Perl before you make such sweeping judgments again. Because to be honest this exact opinion you've expressed I've seen over and over again for several years, and it's totally different from what I see everyday, as a fulltime, highly paid Perl programmer for at least 15 years. Take a look at Moose (http://moose.perl.org/) if you think Perl's OO is lagging, or Plack (http://plackperl.org/) if you think Mason and mod_perl is all we have, for example. Our community is smart, diverse, highly active and strongly focused on the next 20 years of Perl.
Hey, I'm a Perl programmer but I have little issue with the language choice, particularly pascal and python, as both were designed with teaching in mind. Java I'm so so on, personally I think its a bad idea but I'm sure Sun/Oracle is probably donated a crapload of free stuff to get their language on this list, so I guess its not unreasonable tradeoff.
They CANNOT walk up to a random person on the street and check their immigration status. However, for example in case of traffic violation or something like that they can.
If a police officer wants to find a lawful reason to stop you, he or she can almost always find one. You give the example of traffic violations as a case for when you can be stopped. However this is a very big doorway for cops since nearly everyone is speeding a little or has something that looks unsafe on their car. The law is designed like this on purpose, because we want to give cops reasonable leeway in investigating suspicious activity. However we have allowed this leeway with safeguards in place to in theory prevent abuse.
Anyway, cops have a whole book of tricks get around the 'lawfully investigate' stuff. For example, if you ever get pulled over by a cop the very first thing he or she will ask is, "Do you know why I pulled you over?" Nearly always you will feel tremendous pressure to admit something. This is human psychology. But if you admit to a crime ("Yes officer, I think I was going a bit too fast"), then that is basically giving up your right to be presumed innocent and opens the door for the cop to search your car or your person.
So don't say a cop can't walk up to a random person and demand papers. They can always say something like, "I observed the accused leaving a known drug house", or "When the accursed walked passed me I smelled marijuana", or "The accused was exceeding the speed limit", etc. And when the cop and the judge are working together you can end up screwed really fast.
I'm glad your python experience is working out for you. My experience with major rewrites is that they tend to put a company out of business. So best of luck. However I don't believe the fact that Perl wasn't working for you any longer is proof that "People just aren't using it for anything more than 10-line throwaway scripts." Additionally, the existence or lack of existence of a Perl version 6 has not stopped the majority of working Perl programmers from continuing to improve and modernize the language they are using everyday. Perl, built around modern technologies such as DBIx::Class, Moose and Catalyst (see http://www.enlightenedperl.org/project.html for a good starting list of newer Perl projects intended to modernize the language) is powering many high traffic web sites. For a good list check out:http://dev.catalystframework.org/wiki/sitesrunningcatalyst
Highlights would include BBC iplayer (getting millions of regular hits).
So people are building new, high traffic websites with modern Perl, and continuing to add on and expand their existing Perl based websites. So if you already have a big Perl codebase, this is a great time to get involved in the community and see what we can do together.
When all your salesforce wants Their blackberry email and calenders seamlessly synchronized with multiple desktops or notebooks, and when you need to be able to wipe a blackberry remotely when it's lost or stolen, then exchange starts to buy something for you.
Particularly the mobile support and the ability to create meeting notices with people not even on your network is very valuable
People have been saying Perl's declining since 1999. Last time I checked Perl was still one of the most popular languages among the scripting languages and I don't see much of a decline. What Perl is bad at is advocacy and PR. Most of the best Perl people are really busy doing stuff, not blogging or doing other things to help raise awareness.
I'm not sure why Ruby/Python/PHP people feel the need to beat on Perl... the real competition is.Net and Java. Last time I checked Java was several times more popular than all the scripting languages combined. It would actually be a good idea for all of us to work together.
I have no opinion about the lack of of a finished and well distributed Perl6, but you are completely wrong to say that CPAN is not getting any more useful additions. Since 2000 the number of cpan modules has grown from about 5,000 to 14390 (you can see the count and other stats, such as the number of authors registered at http://cpan.org/) Also, some of the code I've seen in the past few years is among the best. For example Moose, (http://moose.perl.org/) is a full on meta object stack for Perl, and makes writing very clear OO code trivial.
To answer the general question, "Where is IronPerl", I guess I have to say that most people in the Perl community are pretty die hard Unix people so unless we are getting paid to work on Windows supporting it is an afterthought.
Also, the CPAN philosophy is to try to write stuff that runs everywhere, and an IronPerl would be something specifically for Windows, so that's not going to be popular.
I'm not sure what you mean by lack of XML/Xpath support. There's probably a 100 modules on CPAN dealing with this.
To be honest, I am not familiar with DBI::CSV, but I really don't see not being about to do joins on a text file to be a major defeat for a language. If you could give me an example of what you are trying to do I'd be happy to comment.
people in IT that are good have been playing with computers since they were kids. Anyone that suddenly got worried they are not going to win the lottery in hedge fund management is unlikely to be happy as a programmer or system administrator. Good programmers are people that actually like to make stuff and to see how stuff works, they are not people that sit around scheming how to cook the books so they can get a fat bonus.
On the other hand, I greatly look forward to the coming interviews.
I guess what it partly comes down to that I know Perl very well and if I'm going to learn something new I'd rather learn a new Java framework, since Java kicks the crap out of every scripting language combined. It's a bang for the buck thing. I'm an IT professional, what I know is my livelihood, and the livelihood of my family as well.
Last time I used Python, which admittedly was a few years ago, I couldn't even get basic features like placeholder bindings in my SQL queries to work. It seemed half baked to me. Perl has just been around longer so I find the tools are more mature. Additionally, I find that Perl fits the way I think better while with Python I feel like I am struggling to fit myself to the language. If I have to wear a straightjacket I'd rather do Java or.Net, since if I'm not going to be happy I may as well get paid:)
However I know that for a subset of programmers, writing Python just works for them, and that's totally cool.
My post is not meant as a diss on Python. The overall thread is about Perl in the enterprise and what I am responding to are all the people that seem to think Perl is only good for one off scripts.
which shows Perl ahead of all scripting languages except PHP, which has been the case for many, many years already. The numbers I see are pretty stable. Ruby had a bump last years when RoR was the new hotness, but it's back down to a more expected growth curve.
I have nothing against Python, but if I am choosing between Python and Perl for the type of work I normally do (web applications development, mostly backendish stuff) Here's why I like Perl:
1) Database Support: Perl DBI (http://search.cpan.org/dist/DBI) is very powerful and mature. Last time I used Python I found it didn't have all the options I needed for my database of choice. Also, I like the ORM choices for Perl better. DBIx:Class (http://search.cpan.org/dist/DBIx-Class) is very flexible and full featured as an ORM.
2) Stablity and Speed: Perl 5.10 has more built in tests than PHP, Python and Ruby combined (and I'll throw in the additional tests that come with RoR) and that gives me the confidence I need to build my enterprise software.
3) Object Oriented Programming: No doubt Perl's default OO is weak, but if you are using a solid OO framework like Moose (http://search.cpan.org/dist/Moose) there really isn't anything as straightforward or productive, IMHO.
4) Depth of tools. CPAN rocks (http://www.cpan.org), there's nothing else like it. Perl programmers have opensource code shareing build into their bones.
What we suck at is promoting ourselves and at cleaning up some of the crufty bits that turn off newbies but longtimers are just used to working around.
To be totally fair, regex's look difficult in most languages. Updates in the latest Perl 5.10 series should remove a bit of the line noise effect.
Perl started off as a admin language, many scripts were written by non programmers who needed to automate jobs and reports. These scripts got crufty due to the rapidly changing requirements most reporting jobs have. As a result, despite the fact that a glance at the codebase of any serious, modern Perl application which is following the evolved best practices will be well tested, documented and regularized, Perl still seems to suffer from the line noise effect.
Writing a modern Perl application using a solid framework such as Moose (http://search.cpan.org/dist/Moose) will result in very pleasing code.
I'm not sure what your programming background is, but I'm alway glad to welcome people to Catalyst (http://www.catalystframework.org) which is a rapid development web platform written in Perl. We have a very active community. Join the mailing list or log into IRC channel #catalyst (network irc.perl.org) and ask for help. If you get lost you can ask for me specifically at handle 'jnapiorkowski'
Don't think you are as needed as you suppose. As the saying goes, "The graveyard is filled with people once thought of as irreplaceable."
I understand the feeling, you want the job to be more than just a relationship of convenience and profit. It seldom works out like that. It might feel that way for a while, but hit an economic downturn, or face a suddenly buyout or change in upper management and you'll soon see the reality. You need to do what is in your personal best interest, taking everything into account (not just the money). If it was in the best interest of the company to lay you off, they'd do it in an instant, and likely with a lot fewer qualms as you feel now.
good luck!
I'm sorry you inherited a complex, and idiomatic perl application. However I don't think its fair, computer scientist or not, to project that experience onto the entire modern Perl ecosystem. Good luck with your career.
The ships are BIG, neither are sinking anytime soon.
If you want a job now, you probably should spend time on Perl5, since the bulk of work is there today. But if you want to join a dynamic community which is building a cool new language from scratch, and where you individual efforts can have a huge impact, you might want to check out Perl 6. That's my thoughts at least.
I invested a lot of time mastering Perl, and continue to add to it everyday. I'm not unhappy about that bit at all. I think you get what you give. If you make the effort to be part of the community of Perl, to contribute code, write docs, blogs, anything, like patches or new ideas, you get a lot more out of it. And I get well paid to do it everyday. I'm sorry for those that had a different experience, but if you want to get back to Perl I am open to helping out, feel free to message me.
I guess tomorrow will be like most others, I'll go to work and get well paid to write Perl.
Thank you for giving us, the Perl community, the benefit of the doubt. The world is big, and there's lots of room for intelligent people to have rationally based differences.
There definitely are: http://wiki.catalystframework.org/wiki/sitesrunningcatalyst
And thats just those written in Catalyst (a Perl MVC web development framework). Thanks for giving us the benefit of the doubt?
To me the biggest reason people don't hear much about perl is because its proponents and users are too busy getting stuff done.
Or spending our time writing docs, blogs or more open source code to add to the vast opensource Perl ecosystem.
I'm glad mucking with Perl worked out for you. But there's a lot of modern Perl programmers turning out beautiful, terse and elegant code. So please don't globalize your experience. I wrote a Java applet once in 1995 but I don't keep saying that's all Java is good for.
http://wiki.catalystframework.org/wiki/sitesrunningcatalyst
That's just those using Catalyst (a popular Perl based Model View Controller system) but if you glance down the list you are going to see some huge sites with big, big traffic loads. All new stuff, things launched within the past two/three years max. BBC iPlayer alone is one of the heaviest hit sites on the web, and that's Perl.
So you are wrong in your guess that "80%" of Perl programmers are sysadmins writing cron jobs. Whoever modded you up should have done a bit of checking, because marking your opinion as insightful is highly inaccurate.
There have been several new Perl books written just for Catalyst in the past two years, so just because you are not finding anything new for Mason (which is probably not the framework of choice for the modern Perl programmer anyway) that is not much of an indicator. There's tons of FREE docs and examples for Perl in any case (http://search.cpan.org/)
As far as Google's lack of commitment to Perl, well, I'm sorry to hear about that, but that's one company. Google Appengine is a pretty small garden, and the Perl interpreter has trouble running under its confinement. To be honest, Python doesn't run everything under appengine either, you need to write code for appengine. I think getting PHP or other languages to run under it will be equally difficult.
If you want to program in Perl on the cloud you have a ton of options, such as EC2, Rackspace cloud and pretty much any cloud provider with an open system (not Appengines walled garden) Oh, and if you want a smarter search engine, trying http://duckduckgo.com/, which is written in Perl and I find more useful than Google search.
I realize that the Perl community needs to do a better job showing that we are not stuck in 1998, so I forgive your lack of knowledge in this matter. I do actually appreciate the opportunity to discuss it, since this is really the only way this perception problem with be solved. However I hope you can meet me halfway and do a bit of checking on modern Perl before you make such sweeping judgments again. Because to be honest this exact opinion you've expressed I've seen over and over again for several years, and it's totally different from what I see everyday, as a fulltime, highly paid Perl programmer for at least 15 years. Take a look at Moose (http://moose.perl.org/) if you think Perl's OO is lagging, or Plack (http://plackperl.org/) if you think Mason and mod_perl is all we have, for example. Our community is smart, diverse, highly active and strongly focused on the next 20 years of Perl.
John Napiorkowski
They got all this cash and... is there a code repository or something?
Hey, I'm a Perl programmer but I have little issue with the language choice, particularly pascal and python, as both were designed with teaching in mind. Java I'm so so on, personally I think its a bad idea but I'm sure Sun/Oracle is probably donated a crapload of free stuff to get their language on this list, so I guess its not unreasonable tradeoff.
They CANNOT walk up to a random person on the street and check their immigration status. However, for example in case of traffic violation or something like that they can.
If a police officer wants to find a lawful reason to stop you, he or she can almost always find one. You give the example of traffic violations as a case for when you can be stopped. However this is a very big doorway for cops since nearly everyone is speeding a little or has something that looks unsafe on their car. The law is designed like this on purpose, because we want to give cops reasonable leeway in investigating suspicious activity. However we have allowed this leeway with safeguards in place to in theory prevent abuse.
Anyway, cops have a whole book of tricks get around the 'lawfully investigate' stuff. For example, if you ever get pulled over by a cop the very first thing he or she will ask is, "Do you know why I pulled you over?" Nearly always you will feel tremendous pressure to admit something. This is human psychology. But if you admit to a crime ("Yes officer, I think I was going a bit too fast"), then that is basically giving up your right to be presumed innocent and opens the door for the cop to search your car or your person.
So don't say a cop can't walk up to a random person and demand papers. They can always say something like, "I observed the accused leaving a known drug house", or "When the accursed walked passed me I smelled marijuana", or "The accused was exceeding the speed limit", etc. And when the cop and the judge are working together you can end up screwed really fast.
I'm glad your python experience is working out for you. My experience with major rewrites is that they tend to put a company out of business. So best of luck. However I don't believe the fact that Perl wasn't working for you any longer is proof that "People just aren't using it for anything more than 10-line throwaway scripts." Additionally, the existence or lack of existence of a Perl version 6 has not stopped the majority of working Perl programmers from continuing to improve and modernize the language they are using everyday. Perl, built around modern technologies such as DBIx::Class, Moose and Catalyst (see http://www.enlightenedperl.org/project.html for a good starting list of newer Perl projects intended to modernize the language) is powering many high traffic web sites. For a good list check out:http://dev.catalystframework.org/wiki/sitesrunningcatalyst
Highlights would include BBC iplayer (getting millions of regular hits).
So people are building new, high traffic websites with modern Perl, and continuing to add on and expand their existing Perl based websites. So if you already have a big Perl codebase, this is a great time to get involved in the community and see what we can do together.
When all your salesforce wants Their blackberry email and calenders seamlessly synchronized with multiple desktops or notebooks, and when you need to be able to wipe a blackberry remotely when it's lost or stolen, then exchange starts to buy something for you.
Particularly the mobile support and the ability to create meeting notices with people not even on your network is very valuable
People have been saying Perl's declining since 1999. Last time I checked Perl was still one of the most popular languages among the scripting languages and I don't see much of a decline. What Perl is bad at is advocacy and PR. Most of the best Perl people are really busy doing stuff, not blogging or doing other things to help raise awareness.
I'm not sure why Ruby/Python/PHP people feel the need to beat on Perl... the real competition is .Net and Java. Last time I checked Java was several times more popular than all the scripting languages combined. It would actually be a good idea for all of us to work together.
I have no opinion about the lack of of a finished and well distributed Perl6, but you are completely wrong to say that CPAN is not getting any more useful additions. Since 2000 the number of cpan modules has grown from about 5,000 to 14390 (you can see the count and other stats, such as the number of authors registered at http://cpan.org/) Also, some of the code I've seen in the past few years is among the best. For example Moose, (http://moose.perl.org/) is a full on meta object stack for Perl, and makes writing very clear OO code trivial.
To answer the general question, "Where is IronPerl", I guess I have to say that most people in the Perl community are pretty die hard Unix people so unless we are getting paid to work on Windows supporting it is an afterthought.
Also, the CPAN philosophy is to try to write stuff that runs everywhere, and an IronPerl would be something specifically for Windows, so that's not going to be popular.
I'm not sure what you mean by lack of XML/Xpath support. There's probably a 100 modules on CPAN dealing with this.
To be honest, I am not familiar with DBI::CSV, but I really don't see not being about to do joins on a text file to be a major defeat for a language. If you could give me an example of what you are trying to do I'd be happy to comment.
people in IT that are good have been playing with computers since they were kids. Anyone that suddenly got worried they are not going to win the lottery in hedge fund management is unlikely to be happy as a programmer or system administrator. Good programmers are people that actually like to make stuff and to see how stuff works, they are not people that sit around scheming how to cook the books so they can get a fat bonus.
On the other hand, I greatly look forward to the coming interviews.
I stand corrected :)
I heard they still do security, although you might have to put up with them selling dope on the side.
I guess what it partly comes down to that I know Perl very well and if I'm going to learn something new I'd rather learn a new Java framework, since Java kicks the crap out of every scripting language combined. It's a bang for the buck thing. I'm an IT professional, what I know is my livelihood, and the livelihood of my family as well.
Last time I used Python, which admittedly was a few years ago, I couldn't even get basic features like placeholder bindings in my SQL queries to work. It seemed half baked to me. Perl has just been around longer so I find the tools are more mature. Additionally, I find that Perl fits the way I think better while with Python I feel like I am struggling to fit myself to the language. If I have to wear a straightjacket I'd rather do Java or .Net, since if I'm not going to be happy I may as well get paid :)
However I know that for a subset of programmers, writing Python just works for them, and that's totally cool.
My post is not meant as a diss on Python. The overall thread is about Perl in the enterprise and what I am responding to are all the people that seem to think Perl is only good for one off scripts.
People have been saying Perl's dying since 1999, almost ten years but I still get lots of recruiters calling me. Not sure what to say except:
http://lui.arbingersys.com/
which shows Perl ahead of all scripting languages except PHP, which has been the case for many, many years already. The numbers I see are pretty stable. Ruby had a bump last years when RoR was the new hotness, but it's back down to a more expected growth curve.
I have nothing against Python, but if I am choosing between Python and Perl for the type of work I normally do (web applications development, mostly backendish stuff) Here's why I like Perl:
1) Database Support: Perl DBI (http://search.cpan.org/dist/DBI) is very powerful and mature. Last time I used Python I found it didn't have all the options I needed for my database of choice. Also, I like the ORM choices for Perl better. DBIx:Class (http://search.cpan.org/dist/DBIx-Class) is very flexible and full featured as an ORM.
2) Stablity and Speed: Perl 5.10 has more built in tests than PHP, Python and Ruby combined (and I'll throw in the additional tests that come with RoR) and that gives me the confidence I need to build my enterprise software.
3) Object Oriented Programming: No doubt Perl's default OO is weak, but if you are using a solid OO framework like Moose (http://search.cpan.org/dist/Moose) there really isn't anything as straightforward or productive, IMHO.
4) Depth of tools. CPAN rocks (http://www.cpan.org), there's nothing else like it. Perl programmers have opensource code shareing build into their bones.
What we suck at is promoting ourselves and at cleaning up some of the crufty bits that turn off newbies but longtimers are just used to working around.
To be totally fair, regex's look difficult in most languages. Updates in the latest Perl 5.10 series should remove a bit of the line noise effect.
Perl started off as a admin language, many scripts were written by non programmers who needed to automate jobs and reports. These scripts got crufty due to the rapidly changing requirements most reporting jobs have. As a result, despite the fact that a glance at the codebase of any serious, modern Perl application which is following the evolved best practices will be well tested, documented and regularized, Perl still seems to suffer from the line noise effect.
Writing a modern Perl application using a solid framework such as Moose (http://search.cpan.org/dist/Moose) will result in very pleasing code.
Hey,
I'm not sure what your programming background is, but I'm alway glad to welcome people to Catalyst (http://www.catalystframework.org) which is a rapid development web platform written in Perl. We have a very active community. Join the mailing list or log into IRC channel #catalyst (network irc.perl.org) and ask for help. If you get lost you can ask for me specifically at handle 'jnapiorkowski'
Enjoy!