Is "programming" not a noun?
I never used the terms "gerund" and "participle" when I was learning syntax, nor when I was teaching it, so I think we could easily do without those terms. However, on the other hand, I don't see a problem with the terminology, provided that one is careful.
For the English forms derived from verbs by adding "-ing", there are:
A. nouns. These take articles, can be modified by adjectives (like any ordinary noun), but do not take direct objects (though sometimes logical objects can be expressed with "of"). They cannot be modified by adverbs, just as other nouns cannot.
B. gerunds, which are verbs used as nouns. These are the heads of nominalized sentences (so that is why they are said to be used as nouns), but like other verbs, do not take articles, cannot be modified by adjectives, can be modified by adverbs, and if transitive, can take direct objects (unlike true nouns).
C. participles, which are verbs used as adjectives. These are either like predicate adjectives, used for the English progressive construction, or noun modifiers. Unlike true adjectives, they cannot be modified by "very". When they are noun modifiers, they can be thought of as coming from reduced relative clauses, and when they are alone, without a direct object or other complement, they will be preposed to the noun they are predicated of. [Chomsky gave the example "the (*very) sleeping child".] If you think of a noun modifier as an adjective, then these are derived adjectives.
D. adjectives. These can usually be modified by "very", but cannot take direct objects. Compare the true adjective "annoying" in "He is very annoying to me", with modifier "very" but without a direct object, and the participle "annoying" in "He is annoying me", which cannot have "very" and does have a direct object.