in reply to Speicilizing a field

I believe the question is:

How do you determine when you have specialized too heavily in a given field

I think what the AM was attempting to state was, say you use a language to program in (Perl *yay*), and you attempt to learn a new language (C++ || Java || .NET). Have you learned to many perlisms, or rather become to specialized in per, if you cant figure out how to code even the simplest algorithms in said new lang.

So in response to what I assume the poster was asking, then I think an individual in said circumstance has fallen prey to some degree of cargo-cult coding (note the lack of the word programming there). There is a difference between understanding how to program (define the problem space, divide and conquer, etc..), and producing working 'code' in any given language.

I mean someone could thoeretically pick up the Camel and the Ram and produce working code, with a complete lack of understanding of how things actually happen. In this case when they migrate to another language, if that language doesn't have the same level of documentation and examples that Perl has, they are obviously going to run into problems they can't solve.

On another note, there is a difference between what I said above, and being able to "think" in the new language. There is a certain level achieved with any language, when you can quickly sketch out a solution in lang X because you understand the fundamental types for X as well as the flow design and structures X prefers over what Y would use.

An personal example of such was a simple quasi AI I wrote to traverse an ASCII maze. I managed to bang it out in perl, but had a really hard time porting it to C. Why? Due to my lack of knowledge of the functions available to me in C. I managed to brute force a solution, and have yet to go back and streamline it, but I will get to it some point. Does that mean I'm too specialized in Perl? No. Does that mean I need to get my head around how C works, and what tools are available to me there, what syntax they require, etc? Yes

/* And the Creator, against his better judgement, wrote man.c */