Standard lib es una biblioteca fundamental para el cálculo numérico en la web, similar a lo que tenemos numpy o scipy en Python. Algunas de sus características incluyen fancy indexing y por fancy indexing, nos referimos a lo que tenemos en Python, la indexación donde puedes crear y establecer cortes arbitrarios de datos de arrays y aplicar cosas como máscaras de arrays booleanos e enteros para filtrado y extracción de datos. También tiene blast, que es una colección de operaciones fundamentales utilizadas para álgebra lineal, análisis estadístico, transformación de imágenes, aprendizaje automático, e incluye operaciones para multiplicación de matrices, manipulación, escalado y transformación, algunas de las cuales consisten en ejemplos como DASM, que se utiliza para calcular la suma de valores absolutos o D. para calcular el producto punto de dos vectores de punto flotante de doble precisión o incluso Gswap, que se utiliza para intercambiar dos vectores. Además, tiene varios generadores de números pseudoaleatorios, como uniforme, gamma, discreto uniforme y mucho más. Toman argumentos como min y max en el caso de uniforme o parámetros de forma y tasa alfa y beta en el caso de gamma y generan un número pseudoaleatorio de esa distribución particular.
Standard lib también viene con un REPL, que es un entorno de intérprete interactivo para ejecutar JavaScript. Viene con temas personalizables, resaltado de sintaxis y muchas más características. Ahora algunas personas podrían preguntar si es posible simplemente compilar y cargar bibliotecas como NumPy y Scipy para ejecutarlas directamente dentro de los navegadores web. Aunque esto es posible, hacerlo viene con una desventaja significativa en comparación con usar standard lib. Para dar un poco de contexto, Pyodide, WebR y standard lib permiten ejecutar funciones de Python o JavaScript directamente en el navegador web. Y basándonos en estos gráficos, podemos concluir que standard lib es mejor o igual a otras alternativas basadas en la velocidad de carga como podemos ver en el primer gráfico, mientras que hay una gran diferencia entre lo que hay en el caso de Pyodide y está standard lib. También hay una gran diferencia en el caso de la velocidad, como podemos observar en el segundo gráfico. Standard lib también proporciona órdenes de magnitud más APIs que otras bibliotecas dentro del ecosistema web numérico como TensorFlow, JSTAT, MathJS, SciJS, y hay una diferencia muy significativa si echas un vistazo al número de APIs con standard lib en comparación con el resto de ellas. Hay un ejemplo particular que demuestra cómo uno puede implementar el famoso algoritmo PageRank que impulsa la Búsqueda de Google usando solo la funcionalidad de standard lib. A un alto nivel, quiero llamar tu atención sobre las declaraciones de importación. Estas pueden parecer muchas pero esto es en realidad un beneficio ya que todo el proyecto se descompone en paquetes individuales permitiendo a los usuarios importar y usar solo las funciones que requieren, reduciendo así los tamaños de los paquetes. Cada función llamada en esta implementación es una función de standard lib por lo que no hay necesidad de importar otras bibliotecas. Standard lib puede ser una solución integral para el cálculo numérico y científico y en esta implementación tales funciones incluyen aquellas para escalar vectores, realizar multiplicación de matrices y vectores, calcular la norma, creación de arrays y aritmética elemento por elemento.
Pero eso no es todo, incluso tenemos integración prototipo de standard lib directamente en Google Sheets. Aquí estamos usando generadores de números pseudoaleatorios de standard lib en Google Sheets. Los nombres de las funciones siguen las mismas convenciones que se usan en Google Sheets. Así que no hay nueva sintaxis que aprender. Además, todas las funciones destacadas están impulsadas por rutinas de standard lib que ejecutan JavaScript puro bajo el capó. Nuevamente, las funciones de standard lib usan una sintaxis familiar pero con rutinas blast se vuelve aún mejor. La integración con hojas de cálculo ayuda a visualizar operaciones complejas como strides u offsets haciendo que la depuración y la comprensión sean mucho más fáciles. Entonces, ¿estás pensando en ser parte de todo este material genial? Sí, puedes ir adelante y acceder al repositorio de GitHub de standard lib. Puedes comenzar por iniciar el repositorio, revisar las pautas de contribución y sumergirte en la base de código. Hay una comunidad útil y atractiva ahí fuera. Si tienes alguna duda o quieres agregar nuevas características también puedes lanzar todas tus preguntas a ellos. También tienen un blog donde se actualizan publicaciones regulares relacionadas con standard lib y como este año también standard lib planea postularse para Google summer of code en 2025 nuevamente. Así que eso fue todo de mi parte. Gracias. Que tengas un buen día.
Comments