NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
HN is a kludge (Score:1)
Sigils don't tell you much (Score:1)
Re:HN is a kludge (Score:2)
Notation Hungarian Reverse Perl and (Score:2)
At the heart of it all, Perl has only five types that matter: scalars, arrays, hashes, filehandles and coderefs. (Yes, I skipped two. If you know what they are, you know why I skipped them. ;-) Yes, there are tied variables, but what matters about them is not how their internals differ, but how they automagically hide those internals. And objects are another kettle of fish, but
Re:Notation Hungarian Reverse Perl and (Score:2)
The sigil is only half the battle. Joel's article has a great example of pulling in unsafe data from a Web form. Perl's taint mode aside, we can't always know when it's safe to use a variable. When I was coding CGI apps, I did something like this:
my $_name = $cgi->param('name'); my ($name) = $_name =~ /($untainting_regex)/;
In this case, the sigil tells me nothing about whether or not it's safe to use that variable. If everything untaints, I can shove that data in the database. If it doesn't, I h
Re:Notation Hungarian Reverse Perl and (Score:2)
Crud, I hit 'Submit' instead of 'Preview'. Damn. Someone needs to read The Design of Everyday Things [mit.edu]. (Including me, to be fair.)
Re:Notation Hungarian Reverse Perl and (Score:2)
Right. Because Perl embeds RHN-the-lesser (the kind of stuff in Petzold's book and the Windows API). The entire point of RHN-as-intended is to use common prefixes and principles of composition to describe the meaning of a variable: taintedness, Primality, object behavior, worksafe content, etc.
The one huge problem with "Reverse Hungarian Notation", as Joel says, is that virtually everyone thinks RHN is RH
That's what type systems are for ;-) (Score:1)
I'd much rather use a language where I can sensibly declare points and primes as different types and get a nice compile time or runtime error if I try and add them.
Getting humans to do things that compilers can do seems counterproductive now we have the chance to use vaguely decent languages ;-)
Re:That's what type systems are for ;-) (Score:2)
+1
Re:That's what type systems are for ;-) (Score:2)
I'd much rather use a language that handles these kinds of strict typing issues for me and provides sensible error messages when a type error is found. ;-)
(Yes, I'm using Haskell these days. And whenever I haven't seen a type error in a couple of days, it takes a while to figure out what ghc is trying to tell me.)