Por ejemplo, existe este framework de RPC, gRPC, que utiliza Protobuf y ese mapeo entre diferentes lenguajes, por lo que puedes usar... Puedes tener comunicación entre servidores escritos en diferentes lenguajes. Y Protobuf contiene toda la información sobre el esquema, los tipos y cómo debe funcionar el mapeo. Entonces, para utilizar Java como backend y algo más como otro backend o como cliente, necesitas tener algo así. Tal vez gRPC sea algo para probar o algo similar. Supongo que esa es la forma de hacerlo.
Bueno. Permíteme hacer la pregunta opuesta, que es cuando tienes múltiples clientes para un solo servidor. La pregunta aquí es si el uso de gRPC o Blitz es un problema cuando tenemos múltiples clientes, por ejemplo, una aplicación móvil nativa y un cliente web. Bueno, si tienes la misma aplicación y tienes una aplicación web y una aplicación móvil, puede que no sea un problema. Pero es cierto que BlitzRPC y tRPC no están diseñados para crear APIs que sean consumidas por muchos clientes. Para ese tipo de cosas tenemos GraphQL, tenemos REST. Y lo que es peor, BlitzRPC y tRPC son ideales para frameworks de pila completa como Next.js, cuando todo está estrechamente acoplado porque eso es lo que también se menciona en la documentación de tRPC, que para bien o para mal, tRPC acopla estrechamente el cliente y el servidor. Sí, creo que, si me permites, la forma en que siempre he pensado en tRPC, está casi en el nombre, es una llamada a procedimiento remoto. Es como si quisieras hacer una llamada a una función, pero hay un límite de red en medio. Y es solo una solución a ese problema y no necesariamente una capa de API para todo. Sí, sí. Sí, genial.
Voy a responder un par de preguntas más de la audiencia, pero quería hacer mi propia pregunta, creo, porque una cosa que diste fue la perspectiva histórica, pasamos por diferentes enfoques, Corba y SOAP y así sucesivamente. Y a veces parece un poco como si lo estuviéramos inventando. Como si siguiéramos, ya sabes, de un cliente FAT a un cliente THIN. Seguimos haciendo RPC a catálogos orientados a servicios, y luego volvemos al anterior. Sí. ¿Son estas solo tendencias y fuerzas? ¿O crees que hay algo que está cambiando en el tipo de entorno o los problemas que estamos tratando de resolver que ahora realmente hace que RPC sea una solución más apropiada hoy que hace tal vez cinco años? Sí, sí. Creo que todavía está relacionado con cómo evolucionan otras cosas. Cómo evolucionan los lenguajes, cómo evolucionan los frameworks alrededor de los lenguajes, porque, ya sabes, con el estado de los frameworks y el estado de JavaScript y TypeScript, no sé, hace 10 años, RPC y, ya sabes, herramientas como tRPC y bt-rpc no tendrían mucho sentido. Pero ahora, dado que tenemos esta evolución en los frameworks de pila completa, como Next.js, Remix, Svelte, Kit y la creciente popularidad de TypeScript, podemos reconsiderar esas cosas. Y creo que esto es por qué seguimos yendo en círculos porque, ya sabes, otras cosas se vuelven populares o se crean otras cosas. Entonces, algunas cosas que alguna vez fueron inadecuadas para el estado actual del ecosistema ahora pueden ser reconsideradas. Interesante. Y ¿crees que el surgimiento de entornos de ejecución distribuidos de JavaScript también hace que RPC sea más atractivo porque de repente el límite de red se vuelve mucho más rápido, ¿verdad? Es más fácil modelar las cosas como una llamada a función.
Comments