En las últimas décadas, los notebooks computacionales, mostrados por primera vez por Wolfram Mathematica, han evolucionado para dar soporte a los flujos de trabajo de investigación científica, exploración y educación. De forma natural, al soportar flujos de trabajo de ciencia de datos y mediante herramientas como Jupyter notebooks y Databricks notebooks, se han convertido en un gran complemento al proporcionar un entorno interactivo de computación simple e intuitivo para combinar código que analiza datos junto con texto enriquecido y visualización para contar una historia de datos. Los notebooks se diseñaron para ser el mejor medio para la comunicación y la innovación científica moderna. Sin embargo, en los últimos años, hemos visto una tendencia a utilizar los notebooks como medio para la ejecución de código de calidad de producción utilizado generalmente para guiar operaciones empresariales. Hemos visto a proveedores de plataformas de notebooks publicitando el uso de notebooks exploratorios en producción. Este es un caso de buenas intenciones, por intentar democratizar la programación para científicas de datos, con una implementación incorrecta y a cambio de escalabilidad, mantenibilidad, adaptabilidad y otras cualidades que un código de producción longevo necesita proporcionar. Por ello, no recomendamos llevar notebooks a producción y, en su lugar, animamos a empoderar a las personas científicas de datos para que construyan código de calidad para producción con los frameworks de programación adecuados, y así simplificar el uso de herramientas de entrega continua y abstraer la complejidad a través de plataformas de aprendizaje automático de punta a punta.
Jupyter Notebooks have gained in popularity among data scientists who use them for exploratory analyses, early-stage development and knowledge sharing. This rise in popularity has led to the trend of productionizing Jupyter Notebooks, by providing the tools and support to execute them at scale. Although we wouldn't want to discourage anyone from using their tools of choice, we don't recommend using Jupyter Notebooks for building scalable, maintainable and long-lived production code — they lack effective version control, error handling, modularity and extensibility among other basic capabilities required for building scalable, production-ready code. Instead, we encourage developers and data scientists to work together to find solutions that empower data scientists to build production-ready machine learning models using continuous delivery practices with the right programming frameworks. We caution against productionization of Jupyter Notebooks to overcome inefficiencies in continuous delivery pipelines for machine learning, or inadequate automated testing.