suji - alternativa a Electron
(github.com/ohah)Es algo tipo Electron hecho con Zig.
La verdad, el título suena más elegante de lo que es: básicamente es un framework de escritorio hecho con Zig.
Creo que Electron es, en la práctica, una opción difícil de evitar cuando desarrollas apps de escritorio.
Sobre todo cuando tienes que considerar al mismo tiempo entornos de Mac y Windows, y además buscas una alta productividad, me parece que no hay otro framework tan atractivo como Electron.
Puedes aprovechar todo el ecosistema de JS tal cual, ya fue validado por el mercado (vscode, slack, discord, etc.)
Y como tiene tanto alcance general como ventajas, también se conocen mucho sus desventajas y es un framework que recibe bastantes críticas.
Yo también soy uno de esos usuarios inconformes.
Por eso probé Tauri, pero tampoco me gustó que Tauri dependa del webview del sistema,
que tenga esa limitación crónica (¿?) y que el lenguaje de backend quede restringido a Rust si usas Tauri,
a Node si usas Electron,
y a Go si usas Wails.
Claro, usando FFI puedes meter otros lenguajes, pero...
La verdad, especialmente en una época como la actual en la que la barrera entre lenguajes se ha reducido bastante, no me gustaba que un framework impusiera restricciones de lenguaje.
zig, rust, go, lua, node
pueden elegirse cada uno como lenguaje de backend, y también puedes seleccionar varios al mismo tiempo para configurar múltiples lenguajes de backend.
Mi idea es seguir agregando más lenguajes de backend.
También python o Ruby.
Como pueden entrar varios lenguajes, los distintos backends también pueden comunicarse entre sí por IPC.
Por ejemplo, al llamar a SQLite desde Node
normalmente tendrías que instalar better-sqlite3, pero en el caso de SQLite viene incluido como plugin integrado y además Node lo usa llamando directamente a Zig.
También se puede compilar para móvil, pero por ahora, salvo Mac, el resto sigue siendo inestable.
Solo en iOS, por políticas de la plataforma, no se puede usar Node como lenguaje de backend.
Actualmente en Mac ya está en un estado en el que se puede compilar de verdad y producir productos reales; Windows y Linux todavía necesitan algunos ajustes.
También está previsto soporte móvil.
Por las desventajas del webview del sistema que experimenté en Tauri
no tengo pensado usar webview del sistema en Mac.
La API y la forma de uso se hicieron lo más parecidas posible a las APIs de Electron,
y como tiene documentación y especificaciones fáciles para que la IA desarrolle, en realidad basta con poner el enlace de la documentación para que valide incluso el E2E por sí sola, así que se podría decir que, frente a otros frameworks "competidores", es un framework con una productividad para IA abrumadoramente superior.
La verdad, simplemente lo hice porque Electron y Tauri me frustraban,
y personalmente ahora, cuando hago herramientas de DX o apps de escritorio, desarrollo usando suji.
Puede que lo haya medido mal, pero hasta ahora me deja más satisfecho porque esta estructura permite comunicación entre lenguajes más rápida que las llamadas vía FFI.
Para crear apps sencillas y sacar algo rápido sin quedar atado a un lenguaje, siento que es más rápido que Electron o Tauri, así que personalmente estoy satisfecho con el resultado.
Pero también me da curiosidad saber si solo me gusta porque yo lo hice, o no, y quería escuchar qué opinan otras personas sobre esta idea y este enfoque, así que lo publico aquí.
Aún no hay comentarios.