|
Re: Static Versus Dynamic Attitude
|
Posted: Feb 11, 2005 8:58 PM
|
|
I have to agree with Berco Beute about looking for the path of least resistance. However, I approach this two ways. One is looking at how fast I can get it done. This speaks directly to library support, language features, etc. as Berco points out. The other is who else will be working with this, what will they be expecting and what can they handle? Maintainability is a key thing to look at for long term projects that gets overlooked until you've been burned by it a few times. Sometimes that means creating the more verbose C, C++, Java, etc. version.
On average I've had an easier time reading other people's code when written in a strongly typed static language. Maybe this speaks more to the quality of the people writing the code than to anything inherent in the language, but that is my experience. Given some of the heated viewpoints that have come out of various Static vs. Dynamic threads, I know I am not alone with that experience.
To touch on skilled developers exhibiting mastery of their tools, what does that mean exactly? I know many people who are pretty good developers who put no qualifier on their resumes, etc. about their knowledge of a language or platform. All the job ads ask for experts in this, that or the other thing. Unless you're Linus Torvals, Bjarne Stroustrup, etc., how people can claim 'expert' is beyond me. Heck, where I work I think I'm the only one that does any Python at all, so that makes me the 'expert' there, although I know I pale in comparison to most people that are actual Python developers.
I think in a way that is another manifestation of Static vs. Dynamic attitude. Dynamic implies ever-changing and it is hard to master something that won't stand still. The idea of static, on the other hand, lends itself easier to the idea of mastery, I think. I know once I've learned an efficient idiom or algorithm in C or C++ or C# or even VB, I tend to stick with it most of the time. Some people may call that a rut. I call it proven.
When I am working in Python or PHP I am much more apt to experiment. The feedback in either one of those environments is almost instantaneous, which gets to be addicitive. I find it kind of ironic that one of Python's tenets is that there is usually one best obvious way to do something, yet the language itself makes it so easy to try so many different permutations to solve a given non-trivial problem.
|
|