Gracias. Así que quiero comenzar con una pregunta que tenía. Entonces, cuando estabas portando en lugar de reescribir, hubo muchos beneficios, pero hubo algunas cosas adicionales que tuviste que hacer si no hubieras reescrito. Entonces, para las personas que consideran esto, ¿cuándo crees que es realmente mejor simplemente reescribir en lugar de portar? Porque podría haber algo de complejidad adicional al portar. Esa es una buena pregunta. No estoy completamente seguro. Estoy casi tentado a decir, como, casi siempre deberías portar. Como, portar fue doloroso, fue complicado. En muchos puntos fue lo más molesto, pero creo que valió la pena porque las reescrituras son realmente difíciles. Como, una cosa de la que no hablé es, como, si hubiéramos tomado la ruta de reescribir, como, ¿habríamos seguido actualizando el código Go? Porque si no lo hacíamos, bueno, nuestros usuarios simplemente se quedarían atascados y no recibirían nuevas características o correcciones de errores. Pero si lo hacíamos, entonces, bueno, el código REST tendría que ponerse al día. Sería como una especie de carrera interminable. Y así diría que, como, tal vez si tienes un muy buen conocimiento institucional del producto, has trabajado, tu equipo ha trabajado en él durante mucho tiempo, y tienes el, como, apoyo para pasar el próximo, ya sabes, año o dos reescribiendo, entonces tal vez valga la pena. Pero de lo contrario, diría que probablemente deberías portar.
Bien, y déjame revisar las preguntas aquí. Entonces, de Brian, ¿hubo algunos patrones en el código que no pudiste replicar exactamente en REST debido al borrow-checker? Um, un poco, nada tan loco. Como, definitivamente hubo algunos casos donde tendrías que pensar en el código muy cuidadosamente, y también tal vez te darías cuenta de que el código GO tenía algunos problemas que nunca habían sido, como, vistos antes. Como, me di cuenta mientras portaba parte del código de caché que había, como, una ligera condición de carrera que nunca había sido detectada en un código GO que el código REST no permitiría. Y así te encontrabas con esos. Pero en general, TurboRepo fue un proyecto muy propicio para ser escrito en REST porque los tiempos de vida no eran muy complicados.
Bien. Y a continuación de John, si hubieras sabido sobre el problema de glibc de antemano, ¿habrías elegido aún portar? Sí. Quiero decir, sabes, fue molesto, pero eventualmente funcionó, y, ya sabes, sí, no habría sido un obstáculo a largo plazo. Sí. Siguiente pregunta. ¿Es posible portar TypeScript a REST usando esta estrategia similar? Probablemente. Podrías usar algo como una API para interoperar y luego mover las cosas de manera incremental. Creo que también, como, usar la serialización podría ser una técnica interesante donde básicamente solo envías casi, como, mensajes a través del cable. Creo que podrías hacer esto con cualquier lenguaje, y creo que también el ecosistema para la interoperabilidad está mejorando cada vez más. Como, creo que hay más herramientas por ahí que te ayudan.
Comments