9 points par GN⁺ 2025-01-03 | 1 commentaires | Partager sur WhatsApp
  • Zasper est un IDE conçu pour gérer une forte concurrence
    • Il offre une consommation mémoire minimale et d’excellentes performances, tout en gérant plusieurs connexions simultanées
    • Il convient à l’exécution d’applications de données de style REPL, comme les Jupyter Notebooks
    • Actuellement, le support est complet sur macOS et partiel sur Linux
  • Benchmarks
    • Zasper consomme quatre fois moins de RAM et de CPU que JupyterLab.
    • JupyterLab utilise environ 104,8 Mo de RAM et 0,8 CPU, tandis que Zasper utilise 26,7 Mo de RAM et 0,2 CPU.
  • Pourquoi Zasper a été créé
    • Le marché propose des outils frontend similaires à JupyterLab comme Databricks Notebooks et Deepnote Notebooks, mais la plupart ne sont pas gratuits et nécessitent de travailler dans le cloud.
    • Zasper fonctionne sans accroc sur la machine locale et exploite les ressources disponibles de manière efficace pour garantir des performances maximales.
    • Le langage Go offre un excellent support des protocoles REST, RPC et WS, et se distingue par sa concurrence et ses performances.
    • Python convient bien aux tâches asynchrones centrées sur l’I/O, mais présente des limites pour les workloads centrés sur le CPU.
  • Il propose diverses fonctionnalités : éditeur, terminal, lanceur, Jupyter Notebooks, gestion de versions, palette de commandes, mode sombre, etc.
  • Proposé en deux formats : application Electron et application web.
  • Feuille de route
    • Zasper vise à devenir un écosystème IDE puissant pour les data scientists et les ingénieurs IA, et sa feuille de route prévoit les évolutions suivantes :
      • Prise en charge d’applications de données personnalisées, en plus des Jupyter Notebooks
      • Faciliter l’intégration avec les outils existants
      • Proposer Zasper Hub pour le déploiement auto-hébergé dans le cloud

1 commentaires

 
GN⁺ 2025-01-03
Avis sur Hacker News
  • L'auteur de Zasper explique que le traitement du kernel Jupyter de Zasper repose sur des goroutines Go et surpasse l'approche Python de JupyterLab.

    • Zasper utiliserait environ un quart de la RAM et du CPU par rapport à JupyterLab.
    • Des fonctions comme la recherche ne sont pas encore optimisées et restent lentes.
    • Il est en train de le développer à plein temps seul, avec des améliorations prévues.
    • Il espère une réponse positive sur cette première version.
  • Marimo attire l'attention comme une alternative à Jupyter qui combine les avantages de Streamlit et de Jupyter.

  • Une question est soulevée sur le fait de savoir si la baisse de mémoire et de CPU a un impact significatif.

    • Comme le code Python consomme davantage de ressources, il n'est pas clair dans quelle mesure le multithreading Go aide.
  • Certains estiment que, même s'il est ancien, JupyterLab reste moderne grâce à un développement continu.

  • L'alternative semble fonctionner uniquement sur macOS, avec un support partiel sur Linux, et ne prend en charge que le kernel IPython.

    • Il est mentionné que les gains de performance apportés par Go sont annulés par l'utilisation d'Electron.
  • Il aimerait une interface semblable à celle de RStudio dans Jupyter et indique qu'il est essentiel de pouvoir exécuter des blocs de code.

    • La fonction « open console for notebook » de JupyterLab est appréciée, mais il ne parvient pas à trouver comment envoyer du texte ou changer le focus avec des raccourcis clavier.
    • Pour cette raison, il n'utilise pas l'implémentation Jupyter de VSCode.
  • Il suggère d'envisager Wails pour l'interface utilisateur.

    • Il déplore qu'Electron ait été utilisé, malgré les efforts investis dans Go.
  • Il demande quels avantages cette solution apporte par rapport au support de Jupyter Notebook dans VSCode.

  • Il demande s'il y a perte de sortie lorsqu'on se déconnecte puis se reconnecte sur le frontend en cours d'exécution.

  • Cela ressemble à un projet visant à remplacer le frontend de JupyterLab tout en gardant le lien avec le kernel Jupyter.

    • En théorie, il semble possible de supporter également des kernels JavaScript ou d'autres langages.
    • Il est noté que le projet n'a été testé qu'avec le kernel IPython, ce qui suscite un intérêt pour sa future évolution.