JavaScript es un lenguaje de programación popular. Uno que ha crecido en alcance durante la última década. ¿Pero tiene las herramientas y funciones para hacer ciencia de datos?
JavaScript es la columna vertebral de Internet. Creado en los años 90 como una forma de manipular el contenido de los navegadores web, ha crecido tanto en popularidad como en funcionalidad. Convirtiéndose en uno de los lenguajes de programación más populares del mundo.
Con su creciente popularidad, muchos se preguntan si sería una buena opción para los científicos de datos y el análisis de datos en general. La respuesta no es tan simple. Echemos un vistazo a los pros y los contras de JavaScript como lenguaje de ciencia de datos.
El argumento en contra de JavaScript
Ningún científico de datos en su sano juicio recomendaría a los recién llegados que aprendieran JavaScript primero. Python, R, Scala y Julia se citan a menudo como LOS lenguajes de programación para la ciencia de datos. Pero, ¿por qué ocurre esto?
David Beazley , autor de JavaScript para ciencia de datos, nos dice en las primeras páginas del libro que originalmente planeó llamar a su trabajo JavaScript versus ciencia de datos. Data Science, como reconocimiento a la reputación de JavaScript.
JavaScript es famoso por sus numerosas peculiaridades, algunas de las cuales tienen que ver con la forma en que maneja los números. Como ejemplo común, en IEEE 754, el estándar de punto flotante NaN (no un número) se introdujo como una representación de un valor que no se puede presentar dentro de las limitaciones del tipo numérico.
En términos simples, divida por cero y JavaScript devolverá un NaN. No es la respuesta más informativa o útil. Peor aún, el lenguaje todavía reconoce NaN como un número; Así que si marcas el tipo, no atraparás a ese molesto pícaro.
Honestamente, esto es un inconveniente menor, pero apunta a un problema mucho más amplio: JavaScript se escribe dinámicamente y tiene una forma bastante flexible de descubrir qué es un número o una cadena. Nuevamente, nada que no se pueda evitar, pero definitivamente requiere algo de codificación defensiva.
Tratar con grandes cantidades también es un problema. JavaScript no solo es impreciso cuando se trabaja con grandes números, sino que el hecho de que no admite subprocesos múltiples o procesamiento paralelo significa que puede olvidarse del big data. Ni JavaScript ni Node.js son adecuados para tareas informáticas intensivas vinculadas a la CPU.
La mayoría de estos problemas pueden superarse, pero el último clavo en el ataúd es el costo de oportunidad. Como científico de datos, ¿por qué dedicaría tanto tiempo a aprender JavaScript cuando ya tiene una gran cantidad de lenguajes que lo hacen mejor y con menos esfuerzo?
Cada hora invertida en JavaScript es una hora menos invertida en otros lenguajes… pero eso puede que no sea malo.
El caso de JavaScript
El argumento principal de Beazley en su libro es que el JavaScript moderno ha abordado muchas de estas preguntas y que el interés de la comunidad JavaScript en la ciencia de datos ha crecido exponencialmente en los últimos años. Esto ha promovido herramientas y características que lo convierten en una opción competitiva.
Quizás el primer punto a favor de JavaScript sea su facilidad de uso y legibilidad. Por ejemplo, si estás leyendo esto en tu computadora, simplemente presiona F12 y tendrás una consola JavaScript lista para usar de inmediato.
JavaScript es muy fácil de aprender y, debido a su popularidad, existen literalmente miles de recursos que le ayudarán a conocer sus entresijos. Un vistazo rápido a las estadísticas de StackOverflow revela que la cantidad de información en JavaScript es simplemente asombrosa.
Otro punto a su favor es que cada vez más empresas utilizan tecnologías web con una pila basada en Nodos para construir sus productos. Si un científico de datos va a trabajar en estrecha colaboración con los desarrolladores de productos, hablar un idioma común es definitivamente una ventaja.
Aún mejor, el hecho de que todos trabajen con la misma tecnología significa que la integración con otros productos y servicios es más fácil y requiere menos gastos generales y preparación. Así como es más fácil comunicarse con alguien cuando todos hablan el mismo idioma.
TypeScript, un superconjunto de JavaScript desarrollado por Microsoft, resuelve una de las principales críticas a JavaScript: su tipificación débil. De hecho, con TypeScript, el lenguaje es más rígido que el favorito de los científicos de datos, Python. Los lenguajes de tipado estático tienden a promover mejores prácticas y código con menos errores, razón por la cual ha habido una explosión en las empresas y servicios de desarrollo de TypeScript.
Y hablando de Microsoft, Napa.js es una alternativa fantástica a Node.js si lo que le preocupa es el subproceso múltiple. Aunque todavía se encuentra en sus primeras etapas y no es una solución ideal. Esto muestra el gran interés que existe en promover JavaScript como un lenguaje de programación multiuso, incluso para la ciencia de datos. Pero eso no es todo…
Nuevas herramientas para la ciencia de datos
Uno de los argumentos más comunes en contra de JS es que carece de bibliotecas de ciencia de datos de soluciones más sólidas como R y Python. Estamos absolutamente de acuerdo con este argumento. Incluso el partidario más ferviente de Javascript tendrá que admitir que cualquier aspirante a científico de datos necesita otra herramienta en su repertorio.
El panorama de la ciencia de datos para JavaScript está creciendo exponencialmente. Hace cinco años, nadie hubiera imaginado que TensorFlow tendría una biblioteca de JavaScript funcional y, sin embargo, aquí estamos.
Dicho esto, el ecosistema de ciencia de datos de Javascript está creciendo. Considere, por ejemplo , D3.js, una biblioteca popular para visualización de datos que proporciona un fantástico conjunto de herramientas para crear paneles, informes e historias de datos a través del navegador.
Otro buen ejemplo es TensorflowJS. Para aquellos que no lo saben, Tensor Flow es una de las bibliotecas de aprendizaje automático más populares que existen. Con su variante JS, puede ejecutar algoritmos de aprendizaje automático directamente en su navegador y/o en un servidor Node.js.
¿Pero por qué querrías hacer eso? Sí, un entorno de navegador no es el espacio de trabajo más optimizado. Pero, por otro lado, es muy conveniente para prototipos rápidos, pequeños proyectos y aplicaciones que no requieren mucha memoria. ¿Por qué crear un entorno virtual cuando un simple navegador funciona perfectamente?
El hecho de que estemos adquiriendo estas herramientas para el lenguaje que impulsa Internet y las aplicaciones web en general está abriendo puertas a nuevas posibilidades. Con la ciencia de datos basada en navegador, podemos explorar nuevas formas de procesar y presentar datos en un entorno fácil de usar.
Imagine tener una aplicación web que actúa como una presentación para su historia de datos, todo codificado como una solución frontend con JavaScript, HTML y CSS. Cualquier persona con un dispositivo inteligente y conexión a Internet puede acceder a los resultados en segundos.
Esta ola de JavaScript en la ciencia de datos apunta al hecho de que el campo se está expandiendo. Ya no se espera que los científicos de datos sean personas sentadas en un rincón polvoriento analizando datos. Son narradores de historias que tienen que encontrar formas de presentar sus resultados y promover entornos basados en datos.
Otra herramienta en la caja de herramientas
Puede que no estemos preparados para un mundo en el que conocer JavaScript sea suficiente, pero como conjunto de habilidades auxiliares, es un recurso perfecto para los científicos de datos. Lo importante aquí es que esto probablemente no revolucionará el campo, pero lo que sí hará será aumentar su alcance y alcance. Un resultado positivo al final.
Fuente: BairesDev