Стриктно погледнато, истинското, научно име за функциите е „subroutine“ или „routine“, a на български – „подпрограми“.
Набори или поредици от програмни инструкции, групирани логически така, че да извършат своята определена част от общата функционалност на цялата програма. Но трябва да са именовани по някакъв начин. Защото иначе един ред или купчина редове код, сами по себе си, ако не са именовани с име и изобщо – signature, не могат да се нарекат subroutine, защото са на практика – неизползваеми. Как да ги извикаш пак? Как да им подадеш аргументи?
Много важно, макар и не задължително (по-скоро признак на добър стил) е дадената подпрограма да извършва само дадена, тясно специализирана дейност, а не да е колкото се може по универсална. По-добре да имаме много на брой подпрограми, но всяка вършеща само конкретна част от цялата програма, отколкото обратното.
А вече отделно тези подпрограми биват:
- функции – трябва да върне резултат;
- процедура – извършва обработка върху подаден параметър/параметри или глобален обект, без да има нужда да връща резултат;
- метод – процедура или функция, принадлежаща на даден клас;