Я не думаю, что вы можете программировать без создания нового языка, поэтому хорошо осознавать, что вы делаете, и понимать проблемы.
- Что такое язык?
Словарь, синтаксис и семантика.
Готовый язык, такой как VB, Java, C # и т. Д., Является просто базовым языком. Как только вы добавляете в него классы, методы и т. Д., Вы добавляете словарь и семантику. Существует много способов реализации языков - синтаксический анализ и перевод, синтаксический анализ и интерпретация, макросы поверх существующего языка, добавление классов и методов к существующему языку.
- Какой язык вы хотите сделать?
Будьте хороши для краткого изложения проблем.
Как вы знаете, если вы сделали это? Мера, которую я использую, является счетчиком редактирования . Если требование A состоит из одного предложения, я перехожу к реализации этого требования в коде. Когда я закончу и вытащу все ошибки, я проверю код, и репозиторий кода выдаст мне список изменений, которые я сделал, B. Чем меньше B, тем лучше язык. Усредненный по пространству реальных и возможных требований, эта мера говорит мне, насколько «специфичен для предметной области» язык.
- Почему краткость хороша?
Потому что это сводит к минимуму ошибки.
Если для реализации требования 1 требуется N изменений кода, а вы иногда допускаете ошибки, то количество ошибок, которые вы вводите, примерно пропорционально N. В пределе, где N = 1, почти невозможно ввести ошибку без попытки.
Обратите внимание, что это прямой вызов «раздутию кода», которое мы наблюдаем в настоящее время.
ДОБАВЛЕНО: В ответ на ваш запрос для примера, см. Дифференциальное выполнение . Я не скажу, что это можно понять быстро, но это значительно уменьшает код пользовательского интерфейса.