Why I'm here

tgape on 2009-07-29T01:00:21

I've debated exactly what bio details to put in my first post, but I eventually decided to save that for my second post. My first post is why I am here.

I know over a dozen programming languages. I've forgotten more than I know. Perl is the only language I really *like* programming in. Shells are too limited and too slow. Most programming languages do not have sigils to clearly identify identifier types (most crucial: what is a variable, and what is a function).

C is an exercise in using malloc and free properly, to the point of distraction. C++ reduces that significantly by allowing one to use the power of scope to facilitate proper deallocation, but it is still too verbose. Java has C++'s verbosity, but lacks some of its power; it is also difficult to do procedural Java (as evidenced by the many Java programs I've seen which use a faux class to enable procedural programming).

Python's yet another attempt to force good programming habits by language restrictions, but apparently written by people who don't understand this or why it is doomed to fail.

Perl, on the other hand, does what I want it to do very concisely. It has associative arrays and regular expressions as first-class language features. It has a nearly complete set of assignment operators, such as '||=', which reduces 'variable = (variable || default)' to 'variable ||= default'. It has sigils. It allows one to do both OOP and procedural programming without fighting. I could go on. Perl has more of the features I want and the programming feel I want than any other language, hands down. That was true with Perl 5.6.1, it's true with Perl 5.8.9, it's even more true with Perl 5.10 and Perl 6.

Yes, there's poorly written Perl code in the wild. I've rewritten over a hundred thousand lines of bad Perl code. But there's bad code written in every language. With discipline, this can be fixed. I personally find it easier to fix Perl code than other languages - in part, because I'm more familiar with Perl. However, part of it is also my ability to use Perl to fix it - not only are there tools like perltidy around to reformat better than any of the reformat tools I've seen for other languages, but specific issues can be fixed with quick command-line transform scripts.

I also admit Perl OOP should be better documented - but that is, as I understand it, in process now.

I would like to facilitate reversing the current trend towards Perl being marginalized. The best way I can see to do that is to become an active member of the Perl community, find out what needs doing, and do it.


I like it !

thickas on 2009-07-29T07:30:57

You could also add (from this ning-nongs view) that while powershell wanted Perls whipitupitude (the term used in Bruce Payettes) book, powershell seems ugly and verbose by comparison.

I am not aware of another language with Perls 'helpfulness' or to use the more PC terms, conciseness and flexibility.

(pinching the quote from this page)

The key to performance is elegance, not battalions of special cases. The terrible temptation to tweak should be resisted unless the payoff is really noticeable. --Jon Bentley and Doug McIlroy

Excellent positive attitude

draegtun on 2009-07-30T13:18:32

.... The best way I can see to do that is to become an active member of the Perl community, find out what needs doing, and do it.

With more positive thoughts and actions like yours then the Perl community can only get better.

Nuff said... I'm off to do my bit and go and see the latest London Perl Monger tech talk in Richmond.

Nice!

Ovid on 2009-08-01T17:08:43

Welcome aboard!

I love what you've written here. When you talk about the assignment operators, it reminds me of one operator I love, but don't mention often.

$id &&= qq{id="$id"};

Basically, that's a handy shortcut for rewriting a string on the fly, but only if it has a true value. Otherwise, you have to do something like this in other languages:

if (id) {
  id = "id=\"" + id + "\"";
}

It's a silly thing, I know, but there are so many useful constructs like this in Perl that once you get to know them, it can really reduce verbosity and increase comprehension as a result.