Для разработки используйте динамический язык, такой как Python или Ruby: вам не нужно бороться со многими проблемами, с которыми сталкиваются другие языки, в первую очередь являющимися причиной "шаблонов проектирования".
Динамические языки в сочетании с автоматизированным тестированием дают результаты очень быстро, чтобы вы знали, какое направление выбрать. Если вы понимаете, что вам следует использовать статический язык для повышения производительности или для чего-то еще, что вы можете перевести динамическое программное обеспечение, которое вы уже создали.