-
проекты плодятся, при этом многие компоненты приблизительно одинаковые
- копирование кода из проекта в проект
- не хватает средств описания ПО в целом, в декларативном стиле, и построения его из типовых блоков
- концептуальное программирование: описание логики ПО по частям, без привязки с какому-либо конкретному языку реализации / СУБД / варианту GUI
-
жёсткая фиксация на один и тот же язык программирования и его стек
- очень бы хотелось иметь один язык проектирования, и несколько целевых языков в которые транслируются модели разрабатываемого ПО
- при необходимости свободно менять целевой стек языков для генерации кода: Python/Django, Java/Spring, PHP + JS/HTML + pgSQL (Nim/C++/Rust?)
-
большинство проектов требуют одновременного использования до 5+ языков программировния, скриптов сборки, html-шаблонов, хранимых процедур,...
- часто требуется копировать одну и ту же логику одновременно на несколько языков (Python/JS валидация данных, сериализация, описание форматов данных, отображение data-моделей Django на frontend-уровень в JS)
- иногда возникает необходимость/желание по переносу проектов между языками (PHP/Python)
- желательна одновременная подержка Web/Desktop/Mobile версий одного и того же ПО (как минимум Web/native mobile — массовое использование браузера для ПО на мобильном телефоне провоцирует у пользователей психические расстройства)
-
существующие языки не удовлетворяют вас как программиста
- нерасширяемость и немодифицируемость синтаксиса
- целевой язык бесит своим синтаксисом и/или семантикой (PHP)
- поддержка метапрограммирования: отсутствие, слабая, только в рамках одного языка (Python), и упоротая (С++)
метапрограммирование
- удобный язык не позволяет его использовать из-за ограничений платформы (Python на микроконтроллерах) или невозможности запуска (веб frontend только JavaScript)
- отсутствие поддержки парадигм программирования которые вам хотелось бы иметь
- функциональное программирование
- распределённое программирование на сообщениях (чистый ООП)
- программирование на потоках днных (DataFlow)
- странные или откровенно неудачные решения в дизайне языка
- необходимость работать со слишком низкоуровневыми (С/С++) или legacy (PHP5) языками