В настоящее время большинство решило, что premature optimization — это зло, что этого делать не надо. Надо создать некую работающую систему, а потом посмотреть — работает ли она с нужными характеристиками. Если нет — оптимизировать те места, которые являются узким местом, находить их можно с помощью профайлера и т.д.
Я в настоящем сообщении сам этот принцип предлагю не обсуждать. Примем его в этом топике как есть, хотя я и не согласен с ним.
Потому что мой вопрос в ином.
Заявляя такое, отдаете ли вы себе отчет, в том, что вы фактически говорите : "Мы не в состоянии априорно оценить характеристики разрабатываемой системы. Мы можем лишь ее сделать, а потом посмотрим, что у нас получилось" ?
(Отмечу со своей стороны, что ИМХО эта точка зрения как-то не очень вяжется с методами, используемыми при разработке иных систем. Трудно предположить, что разрабатывая самолет, создатели бы сказали — мы не знаем, с какой скорстью он будет летать, построим — посмотрим, если мало будет — будем что-то улучшать. Или, скажем, мостостроители заявили — не знаем, выдержит ли это мост груженые песком МАЗы, если не выдержит и обломится — добавим быков и укрепим полотно. Или.. примеров можно много привести. Но это в скобках).
А теперь вопрос.
Если вы признаете, что предсказать характеристики системы априорно нельзя, то из-за чего это ?
Возможные варианты ответа.
1. Это в принципе нельзя, система слишком сложна.
2. Это нельзя, потому что у нас нет для этого инструментов и методов. Пока нет. Если они появятся — сможем.
3. Это нельзя, потому что у нас на это нет денег. Нам дешевле сделать что-то , а потом исправлять, нежели потратить время на дотошный анализ.
Естественно, если есть другие варианты ответа — welcome.