A mi entender, lo de las capas es una manera de programar, es un modelo de programacion, no tanto un lenguaje.
Se trata de que mantengas separadas las cosas, que finalmente son utiles por cuestiones de seguridad y futuras actualizaciones, por ejemplo:
Cuando haces paginas web, un diseñador se encarga de generar el esquema grafico, regularmente termina como .html y .jpg's (esto seria la capa de presentacion).
Un programador por otra parte incorpora sus programas para hacer que los datos sean desplegados en la plantilla, esto seria una capa de programacion.. vemos que tenemos alli 2 capas.
El MVC (Modelo, Vista, Controlador) por ejemplo, es con 3 capas:
http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
1.- VISTA-Capa de presentacion.. que puede ser html, flash, jpg's scripts javascript
2.- Controlador.- Se encarga controlar de los "ires" y "venires" de los request y response, cargando los datos que el cliente solicito a traves de una peticion web.
3.- Datos.- O capa de negocio.- En esta parte de programacion se coloca toda la logica del negocio y acceso a los datos
por ejemplo:
Te piden una pantalla de consulta de saldos bancarios.
1.- El diseñador genera las plantillas html de salida
2.- Un programador le mete programacion ASP, JSP, PHP, .net para colocar dato en su lugar en la presentacion
3.- Otro programador, genera un programa que mediante un parametro accede a la base de datos, calcula saldo, datos confidenciales, etc y los deja en un objeto para que sean usados por el punto 2.
Asi, ni el encargado del paso 1 ni paso 2 necesariamente deben conocer el nombre de la base de datos, ni nombre de tablas, ni nombre de campos, que, en el caso de un banco son datos delicados.
Si despues desean modificar el website unicamente puede alterar la capa de presentacion, las demas capas no necesariamente requeriran cambios.
SI luego desean cambiar de motor de base de datos, las capas de presentacion no necesariamente requeriran cambios.