Холивар на тему лучшего языка для вебдева можно вести бесконечно. Объективных данных в Сети гораздо меньше, чем необоснованных шапкозакидательских постов.
По ссылке находится сравнительный тест свежайших сборок динамических языков: PHP, Python, Ruby, Groovy. Анализируется быстродействие, расход памяти и размер скриптов для решения одной и той же задачи.
Здравствуйте, SergeyGotsulyak, Вы писали:
SG>Холивар на тему лучшего языка для вебдева можно вести бесконечно. Объективных данных в Сети гораздо меньше, чем необоснованных шапкозакидательских постов.
SG>По ссылке находится сравнительный тест свежайших сборок динамических языков: PHP, Python, Ruby, Groovy. Анализируется быстродействие, расход памяти и размер скриптов для решения одной и той же задачи.
SG>http://www.gotsulyak.com/2010/08/post404
SG>Краткий вывод: и все-таки Python круче!
Сравнение LoC (длины скрипта) — результат либо некомпетентности, либо злонамеренности: по крайней мере, скрипт на Руби написан очень плохо, за такое по пальцам бьют (его можно переписать раза в два короче, пожалуй).
Не в том суть, что я защищаю Руби, а в том, что эта часть сравнения вызывает большие сомнения.
Здравствуйте, Гест, Вы писали:
SG>>http://www.gotsulyak.com/2010/08/post404 SG>>Краткий вывод: и все-таки Python круче!
Г>Сравнение LoC (длины скрипта) — результат либо некомпетентности, либо злонамеренности: по крайней мере, скрипт на Руби написан очень плохо, за такое по пальцам бьют (его можно переписать раза в два короче, пожалуй).
на питоне тоже не айс.. range(100000) создаст список из 100к элементов.. зачем — хз..
Г>Сравнение LoC (длины скрипта) — результат либо некомпетентности, либо злонамеренности: по крайней мере, скрипт на Руби написан очень плохо, за такое по пальцам бьют (его можно переписать раза в два короче, пожалуй).
Так и любой скрипт можно сократить раза в два. Тут скорее показательный пример, какого размера код получается, если писать as is, без глубоких познаний языка и без оптимизации.
Здравствуйте, SergeyGotsulyak, Вы писали:
Г>>Сравнение LoC (длины скрипта) — результат либо некомпетентности, либо злонамеренности: по крайней мере, скрипт на Руби написан очень плохо, за такое по пальцам бьют (его можно переписать раза в два короче, пожалуй).
SG>Так и любой скрипт можно сократить раза в два. Тут скорее показательный пример, какого размера код получается, если писать as is, без глубоких познаний языка и без оптимизации.
Эксперимент, в котором погрешность измерения больше точности измеряемых величин, не имеет смысла.
Здравствуйте, SergeyGotsulyak, Вы писали:
Г>>Эксперимент, в котором погрешность измерения больше точности измеряемых величин, не имеет смысла.
SG>Погрешность измерений минимальная. Время выполнения итераций и расход памяти практически не меняются от запуска к запуску.
Здравствуйте, SergeyGotsulyak, Вы писали:
SG>Холивар на тему лучшего языка для вебдева можно вести бесконечно. Объективных данных в Сети гораздо меньше, чем необоснованных шапкозакидательских постов.
SG>По ссылке находится сравнительный тест свежайших сборок динамических языков: PHP, Python, Ruby, Groovy. Анализируется быстродействие, расход памяти и размер скриптов для решения одной и той же задачи.
PHP, Python, Ruby относятся к одной и той же группе с одними и теми же базовыми характеристиками.
Т.е. расхождение каких-то тестов между ними на порядок — это явная бага тестирующего — значит тест делает что-то другое принципиально.
Например PHP тест использует virtual properties (getters/setters) котрые есть в python и ruby тоже (но в их тестах не используются).
Сравнение будет полным если добавить туда же JavaScript. Если рассматриваются server side скрипты то
имеет смысл тестировать скажем node.js ( http://nodejs.org/ ) которая использует V8 машину.
Что-то мне говорит что результаты тебя сильно разочаруют.
CS>Например PHP тест использует virtual properties (getters/setters) котрые есть в python и ruby тоже (но в их тестах не используются).
См. UPD2 в статье
CS>Тесты явно ангажированные, как минимум в отношении PHP.
Для меня нет никакой выгоды в этом. Используем как PHP так и Python в работе.
CS>Сравнение будет полным если добавить туда же JavaScript.
На самом деле для меня более интересно сравнить быстродействие веб-фреймворков на достаточно сложжных приложениях, но это сложнее — надеюсь, что руки все-таки дойдут.
Здравствуйте, SergeyGotsulyak, Вы писали:
CS>>Например PHP тест использует virtual properties (getters/setters) котрые есть в python и ruby тоже (но в их тестах не используются).
SG>См. UPD2 в статье
Графики тогда свои тоже UPD2 сделай.
CS>>Тесты явно ангажированные, как минимум в отношении PHP.
SG>Для меня нет никакой выгоды в этом. Используем как PHP так и Python в работе.
Тогда не ясен смысл статьи.
Еще раз: PHP, Python, Ruby и кстати Perl c JS — близнецы братья.
Вопрос при выборе лишь в синтаксических предпочтениях и наличии того или иного framework. Ну и распространенность на целевой платформе.
Скоростные характеристики и память +/- десятки процентов. Ruby в принципе несколько более тормозной из-за набора встроенных фич. Но и более компактный в плане LoC.
Здравствуйте, SergeyGotsulyak, Вы писали:
CS>>Сравнение будет полным если добавить туда же JavaScript.
SG>На самом деле для меня более интересно сравнить быстродействие веб-фреймворков на достаточно сложжных приложениях, но это сложнее — надеюсь, что руки все-таки дойдут.
app.post('/', function(req, res){
if (req.body.name) {
// Typically here we would create a resource
req.flash('info', 'Saved ' + req.body.name);
res.redirect('/?name=' + req.body.name);
} else {
req.flash('error', 'Error: name required');
res.redirect('/');
}
});
app.put('/', function(req, res){
// Typically here we would update a resource
req.flash('info', 'Updated ' + req.body.name);
res.redirect('/?name=' + req.body.name);
});
app.listen(3000);
Здравствуйте, SergeyGotsulyak, Вы писали:
SG> Холивар на тему лучшего языка для вебдева можно вести бесконечно.
Все тесты проводились на моем домашнем ноутбуке Intel Core2 Duo T5500 (два ядра по 1.66 GHz) с тремя гигабайтами оперативной памяти и быстрым SSD-диском. Управляет парадом свежая инсталляция 32-битной Windows 7 Home Premium.