Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: The Gates of Perl are not newbie friendly.

by Anonymous Monk
on Apr 19, 2003 at 08:36 UTC ( [id://251615]=note: print w/replies, xml ) Need Help??


in reply to The Gates of Perl are not newbie friendly.

Hi, another comment on books - they aren't necessary, really. Learning Perl is a decent intro book, but if you go through the online tutorials (even if it takes a couple passes) you will be better off in the long run. As for reference books, Programming Perl is great, but so is perldoc. Ideally you shouldn't need to buy any documentation for open source projects, and in Perl's case it comes pretty close to being unecessary.

One other thing to consider is that new development with Perl 5 (the current version) will soon decline dramatically. While Perl 6 will still be Perl, and many Perl 5 concepts will apply, it will also have major differences. If you're just looking to learn a language, I would recommend python or possibly ruby (python has far better documentation then ruby, so it would be my choice).

Before I get flamed into oblivion, have my post reaped, and start receiving death threats, here are a few reasons for my suggestions:

  • Object-oriented programming is far, far simpler in Python and Ruby. This is not to say Perl's OO is inferior, but when it comes to someone without any experience on the subject, Perl's OO can be very, very confusing.
  • Perl's strength and weakness is in its flexibility. This is arguably good thing for experienced programmers, but is about the worst thing possible for novice ones. When you're reading through an introductory tutorial and it's throwing maps and greps and all sorts of other strangely named fuctions at you, it gets confusing. References and other such intermediate concepts seem to pop up frequently in early Perl programming lessons as well, whereas they remain mostly invisible (for most intents and purposes) in python.
  • If you learn a different language now, and put off learning Perl 6 until it is somewhat stable, you'll benefit from being able to compare the languages and choose the most suitable one for each task. You'll also avoid the Paul Graham blind advocate syndrome(</cheapshot>;-). It also looks good on a resume.
  • Python is a lot closer to certain other Large Corporate Languages (that shall remained unnamed) and will make learning such languages much easier. It will enable you to easily branch off and learn such languages if the need arises.

So that's some of my reasoning, feel free to flame away now :).

Replies are listed 'Best First'.
Re: Re: The Gates of Perl are not newbie friendly.
by Anonymous Monk on Apr 19, 2003 at 13:49 UTC
    Whether or not this is good advice entirely depends on what someone wants to do. Advantages of Perl include CPAN, widespread availability of good help, and more mindshare. My view is that Python and Perl are about equal on quality but appeal to different personalities. Python also doesn't have CPAN, and doesn't have the same mindshare. Ruby is hands down a better designed language than either Perl or Python, but is so far below critical mass in English-speaking areas that it isn't funny.

    Which means that for an infrequent programmer, Perl is better. They can get stuff done, using convenient CPAN modules and with lots of useful assistance. Choosing modules can be confusing, but they can ask somewhere like here. For a more frequent programmer, well if you tackle lots of different things, then CPAN pays off again, and again, and again. A better language only beats a better library if the language is quite a bit better, you are better and library design than the library author, and you can amortize the cost of writing that library over a lot of further work. You will note that Paul Graham used Common Lisp (in his opinion a much better language) for the core stuff, and then Perl for all of the random bits that needed to get done but not built on (like email).

    Oh, and the demise of Perl 5 is often predicted and has yet to come true. The truth is that Perl 6 is unlikely to be released for a good time yet, and after it is, the differences are such that Perl 5 will continue to grow on a separate trajectory. Therefore the possibility of Perl 6 on the horizon shouldn't dissuade people from learning Perl 5 one bit.

Re: Re: The Gates of Perl are not newbie friendly.
by Anonymous Monk on Apr 19, 2003 at 08:44 UTC

    Oh, I forgot one point. Whatever language you end up choosing to learn first, for the love of all that is holy get your hands on an Open Source operating system. It will make your life, way, way easier and far more enjoyable. Pick up something like Redhat (other distros) it's dead simple to install and use, and if you want to keep you're existing OS installed, you can (although I'd recommend you ditch it, you'll never want it again :). Even if you're barely into programming, it's worth it.

    If you need any help with this, just reply to this post. If you do decide to stick with a different proprietary operating system you can still use all the languages I've listed, but it won't be nearly as fun :). Anyways, best of luck, reply if you need any help :).

    Oh, and since I'm going to get it anyways now... Vi sucks, Emacs Rocks! ;-P

      This is useless advocacy.

      Worse than that, it is stupid useless advocacy.

      People need to tackle things one at a time. Telling someone who is learning a language that they also need to use an operating system is counterproductive. Telling someone that they need to tackle an operating system without giving them any solid reasons is just silly. Claiming that learning something new will make their lives easier is iffy in the short term, and given the proliferation of APIs in open source projects, is pretty doubtful in the long term. Suggesting that they immediately ditch their existing systems, which have lots of data that they care about and all of the applications that they know how to use, is a recipe for utter disaster.

      Now yes, if you need a certain level of control of your system, then open source is better. I am not adverse to the right people using it for the right reasons. At the moment, in fact, I am typing into Galeon running on a Debian system. If this system was directly facing the Internet, I would set up and run OpenBSD. In comparison to what I am happy with, Red Hat is an insecure piece of proprietary shite that hobbles its basic update and dependency system because they need something to charge businesses a premium for. Have I established that I am not a Windows weenie yet?

      OK, then now you know where I am coming from. So listen up. Please don't throw around counter-productive, useless advocacy. People get burned by it and it makes it harder to apply useful, targeted advocacy when there is an opportunity to make a real difference. As the doctors like to say, "First, do no harm." Please.

        I agree mostly with your post, most people need to learn one major thing at a time, but to quibble: A poor carpenter blames his tools. What exactly is proprietary about redhat (all source code is available), and what's so hard about using something (free) like Ximian RedCarpet, which is essentially apt-get for RPMs, with both GUI and CLI interfaces?

        I agree that the redhat network system sucks. RedCarpet doesn't. I use debian and redhat daily, and they both work fine for me when you used correctly.

        -Any sufficiently advanced technology is
        indistinguishable from doubletalk.

        You make a very valid argument, and I did fail to adequately address certain essential points. So to clarify a few things:

        • By default, I say again, by default, the Red Hat installation is rather insecure. This is almost purely due to installing unnecessary software. This is obviously fairly easy to fix, but it not completely straightforward. Have a look at the Redhat security quickstart, and you should be able to easily secure your system to an acceptable level (definately far superior to windows anyways). I stand corrected, I should have mentioned this point.
        • I recently was asked by three friends how to best get started with Perl. They were all running windows and had little experience with programming. I set them all up with activestate perl. One was happy with it, the other two said this sucked. They were obviously referring to more than just the actual executable, but the environment. I then helped them install Redhat (not like they needed much help) and they found it much more usable. Face it, the windows CLI sucks, try getting a really good editor (like kate) for windows, and ultimately the whole perl philosophy goes against windows like operating systems. It simply goes better with OSS.

        As for ditching their systems with "lots of data", I did suggest alternatives.

        if this system was directly facing the Internet, I would set up and run OpenBSD

        I'd properly administer basically any of the open source *nix-like distributions, and probably end up with a better track record.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://251615]
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-04-26 05:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found