Efecto inner-platformEl efecto inner-platform (plataforma interna) es la tendencia de los arquitectos de software de crear un sistema tan personalizable para crear una réplica, y a veces una pobre réplica de la plataforma de desarrollo del software que están utilizando. Esto es generalmente ineficiente y tales sistemas son a menudo considerados por William J. Brown, como ejemplos de un anti-patrón. EjemplosAlgunos ejemplos son en software basados en plugins (complementos) como algunos editores de texto y navegadores web que a menudo tienen personas creando plugins que recrean software que normalmente ya está en el sistema operativo. Un ejemplo es el mecanismo de add-ons de Firefox, que ha sido usado para desarrollar un número de clientes FTP y administradores de archivos, en el cual se replican algunas de las características del sistema operativo, aunque en una plataforma de desarrollo más restringida. Otro ejemplo es el fenómeno de los webtop's, donde un entorno de escritorio, que a menudo incluyen un navegador web, corre dentro de un navegador (el cual típicamente corre dentro del entorno de escritorio proporcionado por el sistema operativo). Un escritorio dentro de un escritorio puede ser inusualmente incómodo para el usuario, y por ello esto es generalmente hecho para correr programas que no pueden ser fácilmente desarrollados en la plataforma principal para el usuario final, o para esconder el exterior del escritorio. EfectoEs normal para desarrolladores de software para crear una biblioteca de funciones hechas de encargo que relaciona a su proyecto concreto. El efecto de plataforma interna ocurre cuándo esta biblioteca se expande para incluir el propósito general funciona que la funcionalidad duplicada ya disponible cuando parte del lenguaje de programación o plataforma. Desde entonces cada cual de estas funciones nuevas generalmente llamarán un número de las funciones originales, tienden para ser más lentos y si mal programadas y menos fiables también. Por otro lado, tales funciones son a menudo creadas para presentar una capa de abstracción más sencilla (y a menudo más portátil) encima de servicios de nivel más bajo que tienen una interfaz incómoda, es demasiado complejo, no-portátil o insuficientemente portátil, o sencillamente un partido pobre para código de aplicación de nivel más alto. Usos apropiadosUna plataforma interior puede ser útil para portabilidad y separación de privilegios, en otras palabras, de modo que la misma aplicación puede correr en una variedad ancha de plataformas exteriores sin afectar cualquier cosa fuera de un sandbox dirigido por la plataforma interior. Por ejemplo, Sun Microsystems diseñó Java para conocer ambos de estos objetivos. |