Complex sentence: It is primarily a pejorative term, and symptomatic of a lack of programming competence, or an insufficiently expressive development environment, as subroutines or libraries would normally be used instead.
Split into simpler sentences: It is primarily a pejorative term; those who use it are often implying a lack of programming competence. It may also be the result of technology factors (e.g., an insufficiently expressive development environment) as subroutines or libraries would normally be used instead.