Кажется, что оба варианта описывают более тяжелые управляемые мышью фреймворки, где программное обеспечение помогает писать программное обеспечение. (Это обычные подозреваемые - рамки, за которые вы платите прямо или косвенно.)
Я думаю, что возможно иметь шаблоны и практики, которые лежат где-то посередине; где вы пишете программное обеспечение, но в большинстве случаев подходит то, что вам и так удобно. (Я думаю, что ключевое слово - это сильная связь с «узорами».)
Хорошим конкретным примером является недавно популярная концептуальная структура MVC (и его родство). К ним можно относиться довольно обобщенно; и вы можете или не можете платить за инструменты на основе вашей платформы, контекста и / или личных предпочтений. Но я думаю, что не так много ситуаций, когда MVC и т. Д. Были бы не в восторге или не в восторге (но один из двух вариантов, предложенных в этом вопросе, был бы решительно лучше).
По крайней мере, я бы очень старался найти средний путь, если бы ни по какой другой причине это не приводило к шаблонам и инструментам с коротким жизненным циклом, а также к проблемам масштабируемости (к которым этот вопрос относится напрямую).