Pull to refresh
26
0
North @North

User

Send message
Почему так все негативно относятся именно к тесту по обходу бинарных деревьев? :)
Интересная задача - не самая распространенная конечно, но иногда очень нужная.
И показательная - как в плане вычислительной мощности языка, так и в плане демонстрации синтаксиса.
"Скорость работы массивов/циклов" в предметной области PHP имеет не главенствующее значение.

"Скорость работы массивов/циклов" в предметной области PHP имеет не главенствующее значение.

Скорость работы массивов/циклов/регулярных выражений/рекурсии – имеет не главенствующее значение – а что тогда имеет? Скорость работы операторов print и echo?
Мы же все таки языки программирования сравниваем, а не шаблонные движки.
Так ведь сравнивают скорость работы массивов/циклов - а не то, какие в каком языке есть хитрые хаки - именно для этого там и должны они быть, а не что то другое.
Вы серьезно не понимаете в чем вообше смысл тестирования или специально претворяетесь? :(
Ага, массивы, циклы, рекурсии, регулярные выражения - это все неудачные тесты ? :)
А удачные это какие тогда -
print "Hello World";
что ли? :)))
Еще раз - есть условия задачи/действия (как пример - перечисленные ниже) - их нужно реализовать на конкретном языке. Я уже говорил - если реализовано не правильно - предложите вариант где те же действия будут реализованы более удачно.

Ну а требовать, что бы тест, общий для всех языков, специально для PHP как то особенным образом корректировался - это уже черезчур.
А вот тут давайте не будем.
Тесты реализуют типовые задачи - именно на этом и нужно сравнивать производительность языков. Почти в любой задачи используются типовые элементы -массивы, циклы, рекурсивные функции и т.д. Вот именно скорость/потребление памяти при работе с этими элементами и изучается.
А что по Вашему должно сравниваться - (особенно раз Вы упомянули некую "предметную область") - скорость подключения к БД что ли? Так это зависит от БД.
Посмотрите тесты дальше - реализуются разные алгоритмы. Причем именно - скорость работы одного и того же алгоритма но написанного на разных языках – мы же языки сравниваем по скорости, а не алгоритмы – разве не так?
А давайте не путать две разные вещи - то, что пока не реализовано, и то что не может быть реализовано в принципе.
Code Inspections в IDEA реализован для Java а не для Scala - разве нет (несмотря на ее стат. тип)?
А давайте в праведном гневе не переигрывать - а то понимаешь ли международный заговор против PHP разоблачили :)
Сравниваются по скорости очень много языков - на тестах, которые реализуют определенную функциональность - в ссылке которую я привел постом выше указано - какую именно. И если допустим та же строчка в тестах для С допустим выглядит как
for( i=1 ; i<n ; ++i ) {
perm[i] = perm1[i];
}
В тестах для Java
for (int i = 0; i < n; i++) perm[i] = perm1[i];

То почему она в тестах для PHP она должна быть специально так написана, что бы у PHP преимущество было?

Ниже уже написал - Если Вы считаете что приведенный в тесте код не достаточно оптимально реализует требования теста- напишите свой и отправьте тестировщикам.
Гм. Вы читали требования к тесту? - что он должен делать - (ссылку чуть выше давал)
Each program should

* "Take a permutation of {1,...,n}, for example: {4,2,1,5,3}.
* Take the first element, here 4, and reverse the order of the first 4 elements: {5,1,2,4,3}.
* Repeat this until the first element is a 1, so flipping won't change anything more: {3,4,2,1,5}, {2,4,3,1,5}, {4,2,3,1,5}, {1,3,2,4,5}.
* Count the number of flips, here 5.
* Do this for all n! permutations, and record the maximum number of flips needed for any permutation.
* Write the first 30 permutations and the number of flips.


Если Вы считаете что приведенный в тесте код не достаточно оптимально реализует эти требования - напишите свой и отправьте тестировщикам. Всем будет только на пользу, если тестирование будет правильным и корректным для каждого языка.
(Повысил карму :)
Если смотреть с этой стороны тогда Вас должен заинтересовать
Roadsend PHP Compiler - кроссплатформенный компилятор в машинный код
А $perm ? Ниже по коду посмотрите
Стоп стоп стоп :)
Это например какой анализ кода можно провести только в стат. тип. языках, а в динам. тип. нельзя?
performance - о.к. понятно
а с tools что?
Так же как и у PHP - пока медленней
У Scala есть интересная вешь - встроенная Акторная модель.
Все остальное есть и в Руби :)
И для руби можно писать все на руби - но пока есть проблемы с производительностью. просмотрим - во 2 версии вполне возможно у руби будет все так же хорошо как у Java ^_^
И в принципе, там особо не разгуляешься, так что разница в производительности интерпретаторов PHP & Ruby всегда будет минимальна и никак это не поменяется.

И тем не мение - разница в производительности между PHP/Perl/Python/Ruby все же многими учитывается при выборе языка разработки.

Вообще да - когда выйдет Ruby 2.0 с компиляцией в байткод - будет уже совсем другая ситуация :)

Но вот на счет этого -
Но за динамическую структуру всё же приходится платить и тяжёлые вещи переписывать на той же Java

тяжелые вещи при работе с руби уже сейчас переписвают на С - и замечательно работают (и без Scala :)
Почему? :) вполне хорошее сравнение :)
Но вообще реализация для NET есть не только для PHP :)
Есть и IronPython и IronRuby - компиляторы для .NET

Information

Rating
Does not participate
Date of birth
Registered
Activity