Попробую сформулировать такой термин: "дискретность стиля программирования", который всецело зависит от возможностей конкретного языка
( Read more... )
С другой стороны чем прямолинейнее язык, тем сложнее будет на нем сказать "а вот там две недели назад мы сгенерили вот такую вот штуку, надо бы ее прикрутить". Я не уверен что корректно говорить о том, что мысль все время движется только вперед основываясь только на том, что она непрерывна.
Я специально уточнил, что речь о прототипировании и проверке идей. Понятно, что в отделе на пять тысяч индусов и проекте на двадцать гигабайт заархивированных исходников правила будут несколько иными :)
Хм, в случае совсем-совсем прототипирования да, но идея идее рознь.
С другой стороны возможно же, что идея подлежащая прототипированию сама по себе не будет прямолинейной. Хорошо если мы говорим о прототипе чего то небольшого и абстрактного. Но это таки и в голове просчитать можно не тратя время на собственно набор кода в редакторе (:
Под идеей я понимаю что-то типа такого: "Интересно, что для поиска в этих данных будет быстрее: тупо перебрать подряд параллельно на четырех ядрах, или сначала построить обратный индекс и искать в один поток?"
По-моему, быстрее и надежней накидать, замерить и посмотреть глазами на гнуплотовский график, чем пытаться прикинуть в уме :)
Единственно, "быстро накидать" не получается на "дискретных" языках, потому как твоей основной мысли (проверить идею) начинают мешать второстепенные, касаемые собственно реализации (а где что мне надо объявить сначала).
Но в данном случае, если мы говорим о производительности поиска данных нам уже нужен будет язык, который поддерживает такие понятия как "поток" и при этом довольно близок по основным характеристикам к языку, который будет использоваться для конечной реализации того, что мы прототипируем. То есть я, например, не могу быть уверен, что тот же питон будет вести себя в случае потоков так же как с++. В результате прототип для теста вроде "что будет быстрее - один поток или несколько" на питоне не имеет смысла для конечной системы на с++.
Я говорю в данном случае о том, что чем более комплексная задача, тем меньше ее можно прототипировать в отрыве от основной платформы реализации а чем менее комплексная тем проще ее просто продумать, вместо того, чтобы писать код. Как то так это мне видится.
То есть чтобы сразу быть понятнее - я ни в коем разе не пытаюсь строить опровержение всего на частном случае, я просто показываю свое видение: существует впринципе очень небольшой участок задач на которых непрерывный язык даст преимущество именно в силу своей непрерывности.
Reply
Reply
С другой стороны возможно же, что идея подлежащая прототипированию сама по себе не будет прямолинейной. Хорошо если мы говорим о прототипе чего то небольшого и абстрактного. Но это таки и в голове просчитать можно не тратя время на собственно набор кода в редакторе (:
Reply
Под идеей я понимаю что-то типа такого: "Интересно, что для поиска в этих данных будет быстрее: тупо перебрать подряд параллельно на четырех ядрах, или сначала построить обратный индекс и искать в один поток?"
По-моему, быстрее и надежней накидать, замерить и посмотреть глазами на гнуплотовский график, чем пытаться прикинуть в уме :)
Единственно, "быстро накидать" не получается на "дискретных" языках, потому как твоей основной мысли (проверить идею) начинают мешать второстепенные, касаемые собственно реализации (а где что мне надо объявить сначала).
Reply
Я говорю в данном случае о том, что чем более комплексная задача, тем меньше ее можно прототипировать в отрыве от основной платформы реализации а чем менее комплексная тем проще ее просто продумать, вместо того, чтобы писать код. Как то так это мне видится.
Reply
Reply
Leave a comment