Those who are good at it like it. People who have cleaned up after those who are bad at it try to keep it out of their projects at all costs.
In other breaking news, the sky is blue, pie is tasty, and the cake is a lie.
For those who want additional context, allow me to take a crack at a definition.
1. non-programmers writing programs in substandard programming environments
1a. …leading to debugging said programs with tools that would have sucked in the early 1980’s
2. an amazingly powerful and useful prototyping and development tool when wielded in the right hands
3. a painful and frustrating experience for all parties, not entirely unlike having intimate relations with a capascin-coated cheese grater when the wrong hands are forced to wield it
4. a terrible idea that can destroy the future of entire projects by making them infinitely less maintainable and extendable
5. the performance killer that you wish you never met
6. a fantastic idea that can make the difference between getting the project done right and not getting it done at all
7. a tool that people ask for when they don’t know what tools they need to complete a given job
7b. …or aren’t yet sure what the job is in the first place, but are positive they’ll need to be able to do everything
8. a great way of helping your staff grow into becoming better, more creative, more expressive developers
Pick as many as you like. They can all been true. Sometimes even on the same project.
Those results above are a small sample of permutations of answers to the following questions:
1) What project objective(s) are you using it for?
2) Who’s using it?
3) Do they need to use it, or do they have alternatives?
4) Which language is it?
5) In what ways can that language interact with your particular system?
There are far too many dimensions of “Scripting” for it to boil down into a simple good vs. bad argument. I’m busy as hell at work this week, but I’ll try to argue some of them tomorrow, and probably end up disagreeing with myself in the process.