Wikifunctions:Presentación

From Wikifunctions
This page is a translated version of the page Wikifunctions:About and the translation is 57% complete.
Outdated translations are marked like this.
El principal objetivo de la Wikifunctions (Wikifunciones) es apoyar a los Proyectos de Wikimedia, pero el apoyo va más allá de eso, al igual que con la Wikidata. Esto es una descripción de la Wikifunctions más allá de Wikipedia.
Estado de la misión
Un proyecto de Wikimedia para que todos creen y mantengan en colaboración una biblioteca de funciones de código para respaldar los proyectos de Wikimedia y más allá, para que todos puedan llamar y reutilizar en los lenguajes naturales y de programación del mundo.

La Wikifunctions (Wikifunciones) es un repositorio abierto de código que cualquiera puede utilizar y contribuir.

Cada página en la Wikifunctions representa una función. Una función tiene una descripción, una lista de parámetros, casos de prueba, una lista de implementaciones en lenguajes de programación diferentes, y más lejanos metadata. Las implementaciones pueden ser reused en otros proyectos de software (guiones o aplicaciones privados), apellidarse y ejecutado on-line (cualquier justo en el navegador o en un entorno de nube o Jupyter[1] o PAWS[2] libretas), compuestos para conseguir funcionalidad más compleja, firmado, analizado o validado, y mucho más.

La Wikifunctions es un proyecto en el espíritu de Wikipedia, Wikidata, Wikcionario y otros, y permite a los colaboradores de todo el mundo crear y mantener una biblioteca de funciones, que puede ser utilizada por cualquier persona para cualquier propósito. Cada función puede ser respaldada por múltiples implementaciones en diferentes lenguajes de programación, casos de prueba, condiciones previas y posteriores, documentación, metadatos en forma de estimaciones de tiempo de ejecución y garantías de complejidad para las diferentes implementaciones, etc. Los usuarios pueden llamar a una función directamente en el sitio web, o desde su propio código o aplicaciones, desde una interfaz de línea de comandos o una aplicación local. La función puede ejecutarse localmente en el navegador, en la nube o localmente e incrustada dentro de la aplicación del usuario.

El objetivo de la Wikifunctions es crear un catálogo común bien definido de funciones que se pueda reutilizar ampliamente, así como un entorno en el que las funciones se puedan combinar y ejecutar rápidamente sobre la marcha. La Wikifunctions tiene como meta hacer la vida de los desarrolladores mucho más fácil, de forma que puedan confiar en este repositorio como en cualquier biblioteca externa, y para los usuarios finales permitiéndoles llamar a funciones según sea necesario, de una manera que actualmente solo está disponible con una cobertura muy desigual a través de sitios web específicos, que a menudo se escriben en forma de sitios web de la década de 1990 con subprogramas de Java.

Todas las funciones son puras, para permitir una ejecución segura en un espacio aislado. Además, cada implementación se puede anotar con metadatos y firmar criptográficamente. Los usuarios finales pueden seleccionar y auditar qué implementación de cada función utilizarán, según los recursos de hardware disponibles y la configuración de la red de confianza.

La Wikifunctions permitirá un fácil acceso a grandes bases de conocimiento como Wikidata, pero también a archivos binarios de entrada y salida. Es completamente posible cargar una imagen como un archivo de entrada y devolver los resultados del análisis, como lo que se muestra en la imagen, o cuántos colores diferentes tiene la imagen, o un binario diferente, p. ej. en un formato diferente. Esto estará disponible para los flujos de trabajo en Wikimedia Commons.

Wikifunctions continúa la tradición de mover más computación, lo que generalmente ha sucedido en la línea de comandos o con aplicaciones de usuarios de computadoras más expertos en computación, a la Web y democratizar el acceso a funciones que antes no estaban disponibles. Al mismo tiempo, aumentará la productividad de los desarrolladores en todas partes, ya que solo pueden usar una gran biblioteca de código en lugar de confiar en copiar y pegar correctamente las respuestas de StackOverflow.

A diferencia de Wikipedia, los colaboradores crearán principalmente nuevas implementaciones para una función en lugar de actualizar las funciones existentes. Las implementaciones se pueden probar automáticamente con las pruebas dadas, entre sí, y se pueden analizar más a fondo.

Las implementaciones podrían ser escritas en varios lenguajes de programación diferentes y, aún así serían capaces de llamar a funciones implementadas en otros lenguajes de programación. El motor de ejecución puede funcionar sin problemas (aunque no necesariamente con el mayor rendimiento posible) en diferentes idiomas. Aunque en la mayoría de los casos hay un gran aumento de rendimiento al componer funciones dentro de un solo lenguaje de programación, no es necesario hacerlo. En muchos casos, la velocidad de desarrollo y el tiempo del desarrollador serán más valiosos que los ciclos informáticos adicionales dedicados al motor de ejecución.

Referencias

  1. m:WikiCite 2017/Jupyter notebooks on Wikimedia sites
  2. PAWS