Здравствуйте, CoderMonkey, Вы писали:
A>>Неважно. Если в JS нет указателей, к примеру, это его проблемы. Ты ведь не будешь писать код на C#, постоянно вспоминая, что в JS нет указателей? Если в JS нет quick sort (может и есть, я не знаю), то пусть тот, кто пишет на JS, сам делает свою реализацию.
CM>Встроенная реализация может быть абсолютно разной. Может, там вообще реализация на ассемблере, которая встроена в рантайм. И чего ты добьешься, сравнивая ее с реализацией на ЯВУ?
Я сравню скорость получения желаемого результата на разных языках. Польза очевидна — на каком языке задача решается быстрее, тот и подходит лучше для решения похожих задач, когда скорость важна. Когда скорость не важна, ничего сравнивать не нужно, и все наши наши изыскания в этой теме лишены смысла.
Если подгонять реализации решения задачи на разных языках друг под друга и потом их сравнивать, то пользы от такого сравнения я уже не вижу. Проблемы две, принципиальная и непринципиальная:
1. В реальном проекте такой код никто писать не будет. Подгонять реализацию на C# под гипотетическую реализацию того же самого на JS — зачем такое может понадобиться практически? Или ты выбрал C# и пишешь на нём, потому что он лучше подходит под задачу; или ты пишешь на JS, потому что он лучше подошёл. И естественно ты пишешь на языке X в стиле языка X с использованием любых доступных в языке X средств. Если это вдруг не так, то непонятно, какого хрена был выбран X, а не Y.
Как определить, какой из языков лучше подходит для решения задачи? Решить её (или её упрощённый вариант) средствами этих языков и сравнить. Что я и делаю.
2. Реализации одного и того же на разных языках всегда будут отличаться. Как ты заметил, встроенная реализация чего-угодно может быть абсолютно разной. Например, в JS нет разделения чисел на целые и дробные. Всё, приехали. Не писать же из-за этого в C# такую хрень: for (double i = 0; i < 5.0; i++). В JS выхода нет, а в C# ToString от целого и ToString от дабла — две большие разницы.