I'd like to collect some opinions about the following things. I am referring to some of the recent posts on linked-in, about recruitment and the lack of "great programmers".
A bit of history in my (possible distorted) view:
OO appeared there were debates on the fact that has certain
disadvantages over procedural like speed and being more verbose (over
the advantages of allowing abstraction and allegedly being better for
organizing huge code).
Then, in Perl's world, there were voices
saying that one should not bother to learn OO perl because it is not a
real OO, it is more a set of cumbersome conventions than a proper OO
Finally Moose appeared and practically defined a sub-language, a lot of "sugar" to overcome the base language OO limitations.
everybody jumped happily in Moose's boat and no-one talks about
procedural Perl and, more important, they don't accept anymore
procedural at interviews.
Like OO Perl is more than just another way to structure Perl code.
I call "There Is More Than One Way To Do It" in my support. True, I read somewhere: "Because TIMTOWTDI, don't assume that you can do it any way you want" but I tend to disagree for most of the situations.
my opinion, the main purpose of any application is to meet the specs
and also to be done in the allocated time. If you think of the
application as a black box, and you managed to make it work as expected
and tested it thoroughly from any angle, I really don't understand why
would anyone would care *how* it is inside the black box. Is like, you
can hit a nail with a hammer or with a pair of pliers and to a certain
extent the outcome will be the same, depending of the wood's resistance.
course, when it is about interacting in a team and if there is a
defined programming style, the applicant should converge to it, to
respect the house rules. Still, it doesn't mean that procedural Perl
should be a reason to reject a candidate at technical interview time.
seems that only few companies are still willing to allow time for
learning and they all ask for guys that can "hit the ground running"
(again, mind you, we talk about a style not about core programming
skills). But no one can know everything needed at the new job already.
If (s)he knows everything, there is a chance (s)he might be tempted to
look somewhere else for a challenge.
I think that's
why a lot of recruiters/companies complain about the fact there are not
many "great" programmers on the market. (BTW: Define "great". How? By
compiling a list of technical questions that all "great" programmers
should know? This might be a wrong approach. See http://it-quirks.blogspot.com/2012/10/modern-perl-recruitment-contd.html).
bet there are lots of good Perl programmers but they get rejected (and
possibly going to other languages) because they were considered as not
fitting the target company's programming style. The companies are
incredible picky these days about the style, and the middle layer
(agents) is escalating this much more by not knowing what's really
And then the advertised job stays on the market
for 6 months or more and the agents and companies, at unison, lament
about the fact that "great" perl guys are a scarce resource. Maybe
giving a chance to any Perl programmer that can do the application no
matter the style, would be more beneficial for the company. Put in
balance the 6 month fishing for the "great" programmer versus few month a
"regular" guy can learn the new environment's specifics, style, etc.
Maybe it is time to admit that we're not so many out there, therefore you need to be more flexible. Otherwise, wait.
not trying to diminish the importance and role of OO Perl or Moose. I
would just love that the recruitment wouldn't be so exclusive about it
nowadays, because things can be still done very well and fast, the
procedural way. Besides I don't think that it'd take more than few weeks
for someone to adjust from procedural to OO style of the company. Not
to mention that OO design sometime is a separate job in many companies,
and in the end the programmer ends up writing code inside the same
class, not needing to know the big OO picture.
So, how hard you think it is for an "regular" perl programmer to switch from procedural programming to Moose?