Az általános programozás a számítógépes programozás stílusa, amelyben az algoritmusok a későbbiekben specifikálandó típusokból íródnak, és amelyeket akkor kell instantiáltatni, amikor a paraméterekként megadott típusoknál szükséges. Ez az ML 1973-ban bevezetett megközelítése lehetővé teszi olyan közös funkciók vagy típusok írását, amelyek csak azokon a típusokon térnek el, amelyeken működnek, és így csökkentik a párhuzamosságot. Az ilyen szoftverelemek generikusként ismertek Ada, C, C #, Delphi, Eiffel, F #, Java, Objective-C, Rust, Swift, TypeScript és Visual Basic. Parametrikus polimorfizmusként ismertek ML, Scala, Haskell (a Haskell közösség szintén használja a "generikus" kifejezést egy kapcsolódó, de kissé eltérő koncepcióra) és Julia; sablonok C és D; és a paraméterezett típusok a befolyásos 1994-es könyv Design Patterns. A Design Patterns szerzői megjegyzik, hogy ez a technika, különösen akkor, ha a delegációval kombinálva nagyon erős,
A dinamikus, nagymértékben paraméterezett szoftver nehezebb megérteni, mint több statikus szoftver. - Négy gang, tervrajzok (1. fejezet)