CPAN was great at the start to encourage experimentation and helping others, in the Open Source fashion. perhaps perl needs a similar thing to be revived. it's still a great language, but modules/frameworks and so many variants, are also detriments to mainstream takeup
I'm very conflicted on this. As such, the following is not yet a completely coherent argument.
At least in part, the problem is: what is it that these days constitutes "mainstream take-up"?
In the quite recent past this was a fairly easy question to answer. Programming was pretty much exclusively the preserve of programmers. Whether they were college educated graduates, corporate professionals, or autodidactic enthusiastic amateurs--or some combination of the three--they had sufficient grounding in the subject that expecting them to either have a certain base of knowledge or to learn it tout de suite, was accepted as the norm.
This allowed certain assumptions to be made when it came to discussions or producing documentation that made life much simpler. It meant that there was a ground plain of concepts that could be assumed, and below which it was not necessary to explain further.
That time has come to an end--though I wonder if it should have?
Since the advent of mass participation in the web, more and more, the "mainstream" is becoming (by numbers at least), the owners of a billion "Mom&Pops Pot-pourri Emporium"s, who have an entrepreneurial idea and see the web as their route to fulfilling it. And there's nothing wrong in that.
Less desirable is that whilst those same people would never consider doing the wiring for their own offices; or laying the tarmac on the car-parks; or trying to deliver their goods country or world-wide; or any other form of support infrastructure, themselves. They frequently seem to think that they can write and/or maintain the own web-sites, accounts packages and other IT infrastructure themselves. Despite that they've no education, experience or particular aptitude for software.
In part, this has come about because of the very success of Perl--and its many imitators--to provide an 'easy in' to the world of programming. Few, if any non-enthusiasts would persist long enough using C or C++ or Java, to actually reach the point of getting something semi-usable working. And that's testimony to the power of the language(s) to map complex ideas to everyday, real-world concepts. But it is a double-edged sword. Both gift and curse.
Maybe, just maybe, we are in danger of trying to take it too far.
This is not 'programmer snobbery'; nor a wish for exclusivity. I hope it has become fairly clear that I have near infinite patience with newbies to the world of programming. Leastwise, newbies that want to learn. I'm far more likely to rail against the experienced than the newbie, and not just for altruistic reasons. It's simply that it is from them that I have most to gain. Ie. learn.
There is currently a prevalent movement to simplify programming by trying to encapsulate everything. To make programming an IKEA-style, stack'em high and sell'em cheap, mix'n'match, self-assembly process. To reduce programming to a blue-collar, teach-yourself-in-24-hours, anyone can do it, commodity occupation. Something that Mom&Pop can do between taking sales calls and tying bows around presentation packs of dried petals.
And I reject these moves entirely.
Not because I want to preserve the mystique of the white-coated God's of the machine room I encountered when I first started looking at programming with a view to a career in it. Nor because I have any need to try and artificially maintain my earning power--those days are pretty much over for me. Nor even because I think that non-enthusiastic amateurs have the potential to bring the profession into disrepute. Though they do, that isn't their exclusive preserve. Plenty of "professional programmers" are guilty of that also.
Mostly, it comes down to the fact that I believe that it doesn't achieve anything good--for them (inept prgrammers) or others.
I read somewhere recently that the British Medical Council had only struck off some tiny proportion of doctors over the past 100 or more years. And similarly, inept teachers are rarely removed from their profession. And of all the law students that matriculate each year, only a handful are ever failed before they complete their studies, or are struck off after they start working. This despite that law college professors almost universally say (off the record) that more half of their students show no particular aptitude for the subject; and far less than half are anything like competent in the courtroom. Hence the phenomena of celebrity lawyers.
That is lawyers who become celebrities in their own right rather than those who's clients are celebrities. Though there is often a wide overlap for obvious reasons.
So where does this all lead?
I think it leads me to the conclusion that there is a point below which it does no good to try and simplify programming any further. Nor seek to simplify the learning process (of programming, but also other subjects) further.
No one would tolerate it if their favourite sports team started to field truly incompetent players. Indeed, the very nature of the game (literally: games) is such that even the most aspiring of wannabes, would-like-to-bes and will-work-very-very-hard-to-bes simply doesn't make it beyond the feeder leagues. (Though if your team just lost you might contest this :)
In essence, I think programming is a complex and skilled craft, that is trying, but struggling to become a "profession". And some people are just not cut out for it. Just as I'm not cut out to be an artist, musician, ballet dancer, footballer or abstract mathematician. And it does no one any favours to try and lower the path of entry below a certain level.
To do so by trying to encapsulate everything to a higher and higher level, is like putting ever more powerful handguns in the hands of the untrained. Even if their intentions are all good, eventually they're going to let loose on a crowd of innocents.
The relevance of all this, to this thread, or your reply?
Quite possibly none :) You just caught me off the back of a long and deeply involved discussion elsewhere and this is the result.
For anyone who feels aggrieved by my use of the word 'amateur' above, don't be. You almost certainly fit under the heading 'autodidactic enthusiastic amateur' whom, in my experience, generally have far higher knowledge, skills, and experience base than many (if not most) purely professional programmers.
S'funny. I can't think of a single other profession where what you do at home is as strong, if not stronger indicator of your skills as it is in programming. Can you imagine a neuro-surgeon doing a bit(*) on the side at weekends :)
(*)of work!
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.