Articulo de referencia

XPCOM

XPCOM ( Cross Platform Component Object Model ) es un modelo de componentes multiplataforma de Mozilla . Es similar a COM ( Component Object Model ), CORBA ( Common Object Reque...

XPCOM ( Cross Platform Component Object Model ) es un modelo de componentes multiplataforma de Mozilla . Es similar a COM ( Component Object Model ), CORBA ( Common Object Request Broker Architecture ) y SOM ( System Object Model ). Ofrece enlaces a múltiples lenguajes y descripciones en lenguaje de descripción de interfaz (IDL), lo que permite a los programadores integrar sus funciones personalizadas en el marco de trabajo y conectarlas con otros componentes.

El uso más notable de XPCOM se encuentra en el navegador web Firefox , donde muchos componentes internos interactúan a través de interfaces XPCOM. Además, Firefox solía permitir a los complementos un acceso XPCOM extenso, pero esto se eliminó en 2017 y se reemplazó con la API WebExtensions, menos permisiva . [ 1 ] [ 2 ] Dos bifurcaciones de Firefox aún admiten la capacidad de complementos XPCOM: Pale Moon [ 3 ] y Basilisk . [ 4 ]

Modelo

XPCOM es uno de los elementos principales que convierten al entorno de aplicaciones de Mozilla en un verdadero framework. Se trata de un entorno de desarrollo que proporciona las siguientes características para el desarrollador de software multiplataforma:

Este modelo de objetos de componentes pone a disposición prácticamente toda la funcionalidad de Gecko como una serie de componentes, o bibliotecas multiplataforma reutilizables , a las que se puede acceder desde el navegador web o mediante scripts desde cualquier aplicación de Mozilla. Las aplicaciones que deben acceder a las diversas bibliotecas XPCOM de Mozilla ( redes , seguridad , DOM , etc.) utilizan una capa especial de XPCOM llamada XPConnect , que refleja las interfaces de la biblioteca en JavaScript u otros lenguajes. XPConnect conecta la interfaz con los componentes basados ​​en lenguajes de programación C++ , C o Rust en XPCOM, y se puede extender para incluir soporte de scripting para otros lenguajes: PyXPCOM [ 5 ] ya ofrece soporte para Python . wxWidgets [ 6 ] proporciona soporte para Perl , y se están realizando esfuerzos para agregar soporte para Common Language Infrastructure (CLI) y Ruby a XPConnect.

Para los desarrolladores, XPCOM permite escribir componentes en C++ , C , JavaScript , Python u otros lenguajes para los que se hayan creado enlaces especiales, y compilar y ejecutar esos componentes en docenas de plataformas diferentes, incluidas estas y otras en las que Mozilla es compatible.

La flexibilidad para reutilizar los componentes XPCOM de la biblioteca Gecko y desarrollar nuevos componentes que se ejecuten en diferentes plataformas facilita el desarrollo rápido de aplicaciones y da como resultado una aplicación más productiva y fácil de mantener. La biblioteca de redes, por ejemplo, es un conjunto de componentes XPCOM a los que puede acceder y utilizar cualquier aplicación de Mozilla. La entrada/salida de archivos, la seguridad, la gestión de contraseñas y los perfiles también son componentes XPCOM independientes que los programadores pueden utilizar en el desarrollo de sus propias aplicaciones.

Uso excesivo anterior

XPCOM añade mucho código para la serialización de objetos, y en la era de Netscape se usó en exceso para interfaces internas donde no era realmente necesario, lo que resultó en un software inflado . [ 7 ] Esta fue una razón clave por la que en 2001 Apple bifurcó KHTML , no Gecko, para crear el motor WebKit para su navegador Safari . [ 8 ]

Desde entonces, Mozilla ha limpiado parte del exceso de XPCOM. [ 9 ] Para 2008, esto combinado con otros esfuerzos resultó en grandes mejoras de rendimiento para Gecko . [ 10 ]

Referencias

  1. Notas de la versión de Firefox 57
  2. Kev Needham (21 de agosto de 2015). "El futuro del desarrollo de complementos para Firefox" . blog.mozilla.org . Consultado el 2 de abril de 2018 .
  3. "Hoja de ruta futura de Pale Moon" . Pale Moon . Consultado el 2 de abril de 2018 .
  4. "El equipo de Pale Moon lanza la primera versión del navegador Basilisk" . ghacks.net . 17 de noviembre de 2017. Consultado el 2 de abril de 2018 .
  5. "PyXPCOM" . Archivado del original el 20 de octubre de 2020. Consultado el 2 de enero de 2018 .
  6. Desarrollos multiplataforma basados ​​en Perl
  7. Jorge O. Castro (15 de junio de 2004). "Ars Technica se sienta con Scott Collins de Mozilla.org" . Ars Technica . Consultado el 16 de febrero de 2017 .
  8. Paul Festa (14 de enero de 2003). "El desaire de Apple perjudica a Mozilla" . CNET Networks . Archivado del original el 25 de octubre de 2012. Consultado el 16 de febrero de 2017 .
  9. "Gecko:DesCOMtamination" .
  10. Ryan Paul (09/09/2008). "Por qué Mozilla sigue apostando por Gecko a medida que crece la popularidad de WebKit" . Consultado el 16/02/2017 .
  • Referencia de la API de XPCOM
  • Documentación de XPCOM
  • Un sencillo tutorial de XPCOM