Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Perldoc, the tutorial

by Ovid (Cardinal)
on Jun 03, 2002 at 04:00 UTC ( [id://171124]=note: print w/replies, xml ) Need Help??


in reply to Perldoc, the tutorial

++ for an excellent node. However, I did notice something that stood out. You wrote I learned Perl and do not feel any need to learn other languages anymore.

I can understand the motivation behind that statement, but learning other languages allows you to appreciate different methods of approaching a problem. For example, later in the thread you wrote "a beginner's tutorial should have _some_ OO". Well, learning Java, Ruby, or some other language that is better suited to object oriented programming will quickly teach someone better ways of looking at OO. Further, some of the hacks in Perl's OO system are frustrating, at best. There is no clean separation of class and instance data, for example, but it would be nice to have. However, many Perl programmers who know Perl's OO system don't know what class and instance data are, so they have trouble appreciating why Perl has a potential weakness here.

Why I like functional programming by tilly, gives a nice quote by Tom Christiensen:

A programmer who hasn't been exposed to all four of the imperative, functional, objective, and logical programming styles has one or more conceptual blindspots. It's like knowing how to boil but not fry. Programming is not a skill one develops in five easy lessons.

tilly further goes to give an example of functional programming in Perl and argues that procedural programming would be a horrible fit for the described problem. Attaching actions to text isn't a typical way of thinking about a problem, but it works nicely here. Read the full thread to appreciate the scope of the problem.

I also recently posted Productive, Prolog, and Perl, which shows a simple problem for which procedural or object-oriented programming would be an awful fit, but Logic programming suits it just fine. I used Prolog in the example and, ignoring for the moment that Prolog-alpha is on the CPAN, I think that Perl would be a poor choice for said problem, but it could be made to fit the problem if one were to try and write Perl in a "Logical" programming style. However, most of us (including me, to be frank) have little to no knowledge of this type of programming, so writing a Perl program in a style that more naturally fits the problem would be challenging, at best.

I'm glad you like Perl, but don't overlook the utility of learning different programming styles :)

Cheers,
Ovid

Update: I forgot to point out that learning "non-programming related" stuff is also good (though I'm sure you know this). In "The Mythical Man Month", Brooks points out that adding programmers to a project can often slow it down. For many project managers, this was a revolutionary assertion. However, if I told any economist that, they would have replied "Duh! Tell me something I don't know." Decreasing marginal productivity is Economics 101, but if we don't know economics, the ideas can seem counter-intuitive. Depth of knowledge is good, but I think width of knowledge pays off more in the long run.

Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2024-03-30 02:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found