Diferencia entre API, Framework, SDK, Kernel y Core

Un Framework es un conjunto de clases que sirven para resolver una necesidad específica y comunmente está orientado a objetos además de ser extensible.  Por ejemplo Microsoft Commerce Server es un Framework para el manejo y control de comercio electrónico (carrito de compras, catálogos, etc.).

Un SDK es un conjunto de documentos, ejemplos y plantillas relacionadas con una tecnología en específico para que comiences a desarrollar en esa tecnología.  SDK = Software Development Kit. No se usa en Joomla, pero es aplicable perfectamente en las prácticas de desarrollo del software.

Un API es el conjunto de definiciones de métodos o funciones que exponen las clases.  De hecho este término se usa como sinónimo de Framework pero las diferencia principal es que el Framework es extensible y/o más extenso.

Un Kernel (de la raíz germánica Kern) es un software que actúa de sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Este término no se usa en Joomla.

Un Core es el término que usan los desarrolladores de Joomla para designar al conjunto de archivos de sistema, aplicaciones y extensiones que forman parte del  paquete predeterminado que se entrega con cada realización. Lo conforman los componentes, módulos y plugines, así como las plantillas por defecto que acompañan el sistema.