Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^6: pissed off about functional programming

by adrianh (Chancellor)
on Apr 26, 2005 at 08:05 UTC ( #451448=note: print w/replies, xml ) Need Help??


in reply to Re^5: pissed off about functional programming
in thread pissed off about functional programming

I think an accent comes from moving from a less feature-rich language to a more feature-rich language, and not using the new features.

While Perl is a nice wide language it still has it's restrictions, corners and peculiar mind set. I know I have to unbend my mind from Perl when I wander off into other languages. Some examples of my Perl accent include:

  • I keep forgetting about meta-classes when I amble over to Python or CLOS.
  • I have to remind myself that macros are useful in Lisp
  • I have an awful temptation to sling everything into the local equivalent of a hash even when more appropriate data structures are available.
  • Since currying is such a pain in Perl I tend to forget to use it in languages that support it nicely.
  • etc.

  • Comment on Re^6: pissed off about functional programming

Replies are listed 'Best First'.
Re^7: pissed off about functional programming
by Roy Johnson (Monsignor) on Apr 26, 2005 at 11:37 UTC
    You are right that Perl lacks (or discourages) certain things from other languages, so maybe the feature-rich distinction isn't so important as the TIMTOWDI distinction. Many languages try to do everything with one or two key tools. Because Perl borrows tools from so many other languages, I still question whether it has its own accent.

    You can look unfamiliar with a language without having another language's accent. Of the things you list, throwing things in a hash might be one that is distinctively Perl-tinged — something that might make someone who reviews your code say, "You're trying to write Perl in Mumble!"


    Caution: Contents may have been coded under pressure.
      You can look unfamiliar with a language without having another language's accent.

      I don't really understand what your definition of accent is then ;-)

      For me it's using one language in a non-idiomatic manner because your approach to solving problems has been pushed in one direction by another languages idioms.

      For example, I'm not avoiding meta-classes in CLOS because I'm unfamiliar with the concept. I started learning OO with CLOS and other languages that supported meta-classes long before I came across Perl. I'm avoiding them because I've spent a lot of time coding type in Perl over the last few years, and Perl doesn't support classes in the same way as other OO languages.

      Another example is when I started learning Ruby. I definitely wrote Ruby with a Perl accent for some time before I learned the more natural Ruby idioms. I had people comment on that fact because I was doing things like explicit loops rather than using iterators/continuations.

        For me it's using one language in a non-idiomatic manner because your approach to solving problems has been pushed in one direction by another languages idioms.
        If the idioms you choose to use are typical of one language, you're coding with an accent. If the idioms you choose to use are common to a lot of languages, but the language you're using has a "better way", you're coding in baby talk, which is different from an accent. In other words, if it's clear that your background is with a particular language, you're coding with an accent; if it's only clear that your background isn't with the language you're using, no accent.

        Caution: Contents may have been coded under pressure.
      Of the things you list, throwing things in a hash might be one that is distinctively Perl-tinged
      Don't forget the very Perlish "every problem can be solved with a regex" mindset.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://451448]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (12)
As of 2019-10-23 20:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?