Esto es RegEx, y está comprobando el formato de una dirección de correo electrónico. Así que RegEx es un DSL. SQL, como mencioné al principio de la presentación, también es un DSL. En estos días, es más probable que lo escribamos en forma de ORM, como Prisma o SQLite, algo así. Pero aún está con nosotros después de todos estos años, al igual que nuestro buen amigo Keanu. Así que SQL es un DSL.
O este ejemplo obvio del mundo de React es JSX, que también es un DSL. Bueno, hemos establecido qué es un DSL y que realmente los usas con bastante frecuencia. Pero ¿por qué? ¿Por qué querríamos crear un nuevo lenguaje especializado que solo funcione para una cosa muy específica en lugar de simplemente usar esos lenguajes de programación generales que pueden hacer todo eso y más? Bueno, como dice Dwight, creemos que es posible mejorar, al menos en el caso de construir mejores aplicaciones web. ¿Realmente necesitamos especificar, por ejemplo, autenticación, enrutamiento, operaciones CRUD y todas estas cosas una y otra vez? No. Con los DSL, solo tienes que decir lo que quieres y sucede.
Veamos cómo. Aquí está nuestro ejemplo de RegEx de antes. Simplemente dijimos lo que queremos aquí. Realmente no nos importa cómo se valida o en qué orden, cuáles son los mecanismos. Solo decimos lo que queremos y obtenemos el resultado que buscamos. Entonces, si no estuviéramos usando RegEx en este caso, y en su lugar solo JavaScript por ejemplo, tendrías que escribir algo como esto, ¿verdad? Y esto es cómo podría verse el cómo, en lugar del qué. Tienes que especificar cada pequeño detalle de la comprobación. Es largo y bastante tedioso. SQL también es un ejemplo muy interesante. Nuevamente, esto es el qué. Solo tienes que especificar lo que quieres y no te importa cómo lo obtienes. Por otro lado, en el fondo está el cómo. Entonces SQL es un DSL y solo tienes que decir lo que quieres y todo esto sucede. No solo el motor de consulta SQL realiza los algoritmos de búsqueda correctos por ti, sino que también sabe cómo optimizar tu consulta para obtener velocidad, lo cual es bastante increíble que pueda empaquetar todo ese conocimiento y procesarlo en un comando tan corto.
Y aunque este es un ejemplo simple de JSX, podemos imaginar lo complicado que sería con un ejemplo más complejo, ¿verdad? Entonces, JSX nos ahorra tener que especificar exactamente cómo deben suceder las cosas. Pero, ¿por qué necesitamos un DSL para WebDev? Quiero decir, ya tenemos un montón de bibliotecas, muchos frameworks que pueden hacer todas estas cosas sin un DSL ya. ¿Realmente, realmente necesitamos esto? Además, podrías estar pensando, el próximo año, AI podrá encargarse de todo ese código boilerplate por nosotros, ¿verdad? Entonces, ¿cuál es el punto? Bueno, incluso con todo eso, esta es una búsqueda en Google que hice ayer y a pesar de todos los avances que hemos hecho en WebDev, parece que se está volviendo más complicado en lugar de más fácil, Este es un sentimiento que los desarrolladores expresan con bastante frecuencia. Así que todavía hay mucho por hacer. Entonces, ¿por qué los DSL podrían ser la posible solución a todo este lío de WebDev? Veamos tres razones por las que.
Comments