No creo que pueda programar sin crear un nuevo idioma, por lo que es bueno darse cuenta de que es lo que está haciendo y comprender los problemas.
- ¿Qué es un idioma?
Vocabulario, sintaxis y semántica.
Un lenguaje estándar como VB, Java, C #, etc. es solo un lenguaje base . Tan pronto como le agregue clases, métodos, etc., habrá agregado vocabulario y semántica. Hay muchas formas de implementar idiomas: análisis y traducción, análisis e interpretación, macros sobre un idioma existente, agregando clases y métodos a un idioma existente.
- ¿Qué quieres que haga un idioma?
Sea bueno para expresar problemas de manera concisa.
¿Cómo sabes si has hecho esto? La medida que uso es editar recuento . Si aparece el requisito A de una oración, procedo a implementar el requisito en código. Cuando termino y elimino todos los errores, reviso el código, y el repositorio de códigos me da una lista de los cambios que hice, B. Cuanto más pequeño es B, mejor es el idioma. Promediada en el espacio de requisitos reales y posibles, esa medida me dice cuán "específico de dominio" es el lenguaje.
- ¿Por qué es buena la concisión?
Porque minimiza los errores.
Si se necesitan N cambios en el código para implementar 1 requisito, y a veces comete errores, entonces el número de errores que introduce es aproximadamente proporcional a N. En el límite donde N = 1, es casi imposible introducir un error sin intentarlo.
Tenga en cuenta que este es un desafío directo a la "acumulación de código" que vemos hoy en día.
AGREGADO: en respuesta a su solicitud de un ejemplo, vea la ejecución diferencial . No diré que se puede entender rápidamente, pero reduce significativamente el código de la interfaz de usuario.