|There's more than one way to do things|
why i may have to leave perl...by eduardo (Curate)
|on Aug 05, 2000 at 20:56 UTC||Need Help??|
I don't know to what degree this qualifies a meditation, however, it is something that I have been pondering for a considerable amount of time now, and it is something that I wanted to ask of the perlmonks community.
I find myself in a very interesting situation at this particular point and
time in my life. I have spent a great many years in the trenches, coding,
debugging, profiling, designing... and I have discovered what my favorite
tools as a programmer are. I have discovered the methodologies by which I
enjoy programming the most, as well as the languages and enviroments which
caused me to be more productive, as well as happier. However, I realize that
I have been blessed, and that the people I have had the good fortune of working
with, were not representative of the programming community, and did not need
the "crutches" that other enviroments present. Professionally, at my last
job, I had a small team of programmers working under me... I had total faith
in this team, and I knew that they were amazingly talented, so I had no
problems giving them more than enough rope to hang themselves with... so of
course, we wrote everything in perl.
The productivity my programmers had, thanks to perl, is of course amazing. The sense of happyness that they had, by working in such a great enviroment, was of course itself great. And they communicated, and spoke, and shared their designs, and interactions... and the objects talked to each other, and the modules communicate perfectly, and all of the tools worked exactly as I would have wanted them to.<br.
During this time, however, my attitude changed slightly. I began to see that
the very power which perl gave you, the flexibility and expressability that it
created, would also be it's biggest downfall. In an environment with only 5
programmers, the communicational heirarchy was small enough that it was
trivial to ask about the subtelties of object interactions, aspects of
instantiation and parameter passing, etc... In such a small team, the very
large software engineering issues, which can be encountered, were manageble,
despite of a language that realistically, gives very little restriction and
form to the programmer. TMTOWTDI. that was the mantra... and i have reached
a stage in my professional life, where I fear it.
I find myself the VP of Strategy and Technology at a firm, and I have been
charged with developing and designing the software engineering plans,
methodologies, and platforms that we will use, and build a software services
firm around. And, for a series of reasons, I am having a very hard time
finding a way, any way, to use perl as our main development platform.
If you chose other platforms, something like java for example, you have a
great many choices for middleware application servers. From a blue martini
to an enhydra, there are standardized platforms you can utilize. If you
want a software design methodology, you can shoot for something as simple
as the Java Servlet Specification, and try to be J2EE compliant. The
language gives you compile type checking, strictness, and enforces a software
engineering methodology (OO) that will alow for large firms to be able to
communicate and guarantee their software processes. that is of course not to say
that java is a panacea... but an example... let us not look at this meditation as
a religious war...
In a perfect world, I would be able to reach down into the pools of developers
that exist, and pluck out any developer intelligent enough to read the pod
of an object, interact the subtleties of a hash or a hashref... intelligent
enough to go to CPAN, and use POD, and know that you CAN put whitespace
in regexps to make them readable by a human. However, this is not a real world,
and I am not so sure that the "average" developer, can be trusted with this
much flexibility, in an enviroment where he is just working as a small piece
of a very large puzzle... where he may not even see the entire picture.
So my meditation becomes... are there any "trully large" perl shops? Shops
where 100k line programs, with thousands of objects, and thousands of
interactors are written in perl? Are there application servers that provide
a complete framework for me to utilize in perl? Are there software engineering
practices that would make an 80 man software team using perl a viable, fruitful,
and productive team... that was able to produce fault tolerant, secure, and
This language, my favorite language, has shown me so much power and beauty,
yet I fear that I will have to desert it for a stricter world... show me the
way, tell me how you have dealt with it... tell me how 100 person perl teams
function, where the caveats are, and how I convince myself that this is the
right way to go.
Thank you, and here's to hoping that we find a way.