KDE (K Desktop Environment) es un entorno de escritorio gráfico e infraestructura de desarrollo para sistemas Unix y en particular Linux. La 'K' originariamente representaba la palabra "Kool", pero su significado fue abandonado más tarde. Actualmente significa simplemente 'K', la primera letra luego de la 'L' (inicial de Linux) en el alfabeto. Actualmente KDE es distribuído junto a muchas distribuciones Linux.
KDE imitó a CDE (Common Desktop Environment) en sus inicios. CDE es un entorno de escritorio utilizado por varios Unix.
De acuerdo al sitio de KDE: "KDE es un entorno gráfico contemporáneo para estaciones de trabajo Unix. KDE llena la necesidad de un escritorio amigable para estaciones de trabajo Unix, similar a los escritorios de MacOS o Windows".
La mascota del proyecto es un pequeño dragón llamado Konqi. La versión más reciente de KDE es la 3.2.
El proyecto fue iniciado en octubre de 1996 por el programador alemánMatthias Ettrich, quien buscaba crear una interfaz gráfica unificada para sistemas Unix. La elección de la biblioteca Qt, la cual para ese entonces no poseía licenciamiento libre, y en menor medida la importancia del lenguaje C++ para el desarrollo de KDE, llevaron a la creación del proyecto rival GNOME en 1997. La rivalidad actual entre los proyectos es generalmente considerada saludable y existe, de hecho, una constante cooperación e inspiración mutua.
El año siguiente, KDE 1.0 fue lanzado. Esta versión contenía un panel (barra de tareas y lanzador de aplicaciones), un escritorio sobre el cual dejar íconos, un manejador de archivos (Kfm) y un gran número de utilidades. KDE 2.0, lanzado en el año 2000, fue reescrito casi por completo. Esta versión incluía a Konqueror, un navegador web y gestor de archivos, además de muchas nuevas tencnologías con el objetivo de mejorar la integración entre aplicaciones. KDE 3.0, publicado en el año 2002, es la evolución de KDE 2.
KDE intenta ser un proyecto completamente neutral en todo aspecto político, racial y cultural. Los colaboradores del proyecto son bienvenidos a tener sus propias opiniones en cualquiera de estas áreas, pero les es solicitado que las expresen o discutan fuera del proyecto para evitar cualquier tipo de conflicto que pueda dañar al mismo.
La apariencia de KDE es configurable en varios niveles. Tanto el gestor de ventanas (llamado Kwin) como los controles (botones, menúes, etc.) utilizan "estilos" intercambiables, los cuales definen cada aspecto de su apariencia. Es por este motivo que KDE no mantiene una única apariencia entre versiones, sino que se opta por aquella más ampliamente aceptada al momento de cada nuevo lanzamiento.
La intención del proyecto KDE es la de crear un entorno gráfico que no se comporte de un modo predefinido, sino que permita al usuario adecuar el sistema a su gusto y comodidad. Esto no impide que KDE resulte amigable para nuevos usuarios, detalle al que no se resta importancia.
Personas externas al proyecto a menudo critican su similitud con los escritorios Windows y su falta de inovación. Esta observación, sin embargo, recae sobre la selección de parámetros predefinidos del sistema, a menudo orientada a facilitar la integración de nuevos usuarios, acostumbrados en su mayoría a trabajar con Windows.
KDE es escrito casi exclusivamente en C++, una variación del lenguaje de programación C con características ampliadas, en especial en cuanto a la programación orientada a objetos. A pesar de las críticas en contra de este complicado lenguaje, su adpoción por el proyecto KDE ha resultado en un desarrollo más dinámico y ciclos de lanzamiento más breves a la vez que permite producir programas eficientes en menor cantidad de líneas de código que las requeridas para iguales tareas empleando lenguajes de programación estructurados (por ejemplo: C).
KDE está construído sobre la bibliotecaQt para programación de aplicaciones gráficas. Qt facilita la programación orientada a objetos y la creación de componentes, proveyendo sólidos simientos para la construcción de cualquier tipo de aplicación gráfica.
KDE cuenta además con su propio sistema de entrada/salida llamado KIO, el cual puede acceder desde un archivo en una partición local hasta un recurso de red (HTTP, FTP, NFS, SMB, etc.) con absoluta transparencia. La arquitectura modular de KIO permite a los desarrolladores agregar nuevos protocolos sin requerir modificaciones en la base del sistema.
Otros componentes importantes de KDE son su sistema de intercomunicación de procesos (DCOP), su sistema multimedial (aRts) y su sistema de componentes (KParts). Este último permite incluir aplicaciones dentro de otras, evitando así la redundancia de código a lo largo del sistema. Adicionalmente posee su propio motor HTML llamado KHTML, el cual ha sido adoptado por Apple para su navegador Safari.
Contrariamente a lo que se podría pensar de un proyecto tan extenso, KDE no cuenta con un liderazgo centralizado. Aún Matthias Ettrich, el fundador del proyecto KDE, no posee mayor peso sobre las decisiones y rumbo del proyecto KDE. Las decisiones importantes, tales como fechas de lanzamiento o inclusión de nuevas aplicaciones, son tomadas por los desarrolladores principales en una lista de correo restringida. Los desarrolladores principales son aquellos que han contribuído a KDE por un tiempo prolongado. Las decisiones no son tomadas en un proceso formal de votación, sino a través de discusiones en las listas de correo. Generalmente este método funciona muy bien.
Su versión estable es la 3.1.4. Su versión de desarrollo es la 3.2.0, la cual incluye muchas mejoras en sus aplicaciones existentes y la inclusión de varias aplicaciones nuevas. El muy esperado lanzamiento del último se espera para diciembre del 2003.
Hasta el momento los cambios de versión mayores de KDE han seguido siempre los de Qt, el cual se encuentra también en desarrollo constante. Así, por ejemplo, KDE 3.1 utiliza Qt 3.1 y KDE 3.2 utiliza Qt 3.2.
En cuanto un lanzamiento mayor se encuentra listo y es anunciado comienza el trabajo sobre el siguiente lanzamiento mayor. Un lanzamiento mayor requiere varios meses para culminar, y muchos bugs encontrados durante esta etapa son eliminados también en el rama estable.