in reply to Seeker Of Perl Sympathy
- Perl is a "write only" language.
I've found that most people who say this are uncomfortable with sigils. They look at a piece of code and see all these weird symbols everywhere and they get confused. Their inability to read sigilized code makes them assume that nobody can read perl. What they miss is that sigils make thing _easier_ to read once you understand their signifigance. What they also tend to forget is that langugaes without sigils often end up emulating them with variable prefixes ala hungarian notation and friends. Next time someone says something about the sigils in perl, ask them what lpzw_foo is. (Or pick a better example :-)
- People say Perl doesnt have "proper" Data Structures
- Well, perl doesnt have structs or records with compact representation and compile time resolution. But thats ok, you can more easily prototype behaviour in Perl than in most other languages (modifying the data structure on the fly is trivial in Perl and extremely difficult in other langauges). But turn this one around, challenge them to write an implementation of a basic Binary tree with built in serialization support at the same time you do the same in Perl. Let them explain why they took so long to do what you did in only a hundred lines of code (or less.) Ask them which they think is easier to maintain. Dont let them suck you into a execution speed contest or a memory profile contest. Just point out that CPU time is cheaper than Programmer time and has been so for a long time.
As a last point you should educate your colleagues as to the ease with which one can link to external libraries and custom code. Grant to them the point that some core features should be implemented in C or the like, but ask them to demonstrate why anything that doesnt have stringent speed and memory requirements is better written in the other language. If they are C programmers point out that Perl + C is much easier to maintain than Shell + C, and ask them to demonstrate why their forty lines of C code is better value for money (programmer time) than your one line regex (as an example.)