Это, конечно, приятно, но пролистав ту же сотню без удивления обнаружил многие несоответствия. Это как по рейтингу певцов оценивать их голосовые данные. Популярность песен и уровень вокала совсем не обязательно находятся в зависимости.
Если твоя песня называется React, то знать что такое замыкание не обязательно.
Задача Raphaël была создать кроссбраузерное решение. А именно поддерживать IE6 и выше. Для нервных напоминаю, что это было в 2008 году. Да и сейчас IE8 живее всех живых, как бы вам и мне не хотелось бы обратного. В данном контексте не пойму о какой конкуренции идёт речь.
Если уж вы упоминаете Raphaël в названии, да ещё и в негативном ключе, то неплохо было бы увидеть сравнительный анализ. Иначе как-то некрасиво получается, дорогой автор.
Raphaël назван в честь известного художника ренесанса и произносится Рафаэль. Диарезиз в название добавлен для англоязычных читателей, чтобы они не читали “ae” как один звук.
Вообще не стоит заморачиваться, как произносит большинство, так и правильно. Мало кто поймёт у нас что «найки» и «эдоби» это на самом деле Nike и Adobe. ;)
SVG не тормозной, просто для определённых задач наличие DOM — это плюс, а для других — минус. И Canvas, и SVG замечательные технологии со «страшными» API.
Какого метода?
Говорить, что всё объекты — это то же самое что говорить, что киты и дельфины это рыбы. Так оно может и проще рассуждать, только это неправда и в приведённом вами коде это явно видно.
Примитивы может и не нужны, во многих языках их нет и всё в порядке. Стоит понимать разницу между примитивами и объектами и не валить всё в одну кучу.
Обратите внимание, что даже null и undefined могут быть сведены к Number. Это дает нам полное право утверждать, что всякая структура данных выражается числом. То же верно и про строку и про boolean.
{valueOf: function () { return 6; }} / 2 === 3
это то же самое что
«habr».length === 4
оператор преобразовал значение в нужный нам тип чтобы разделить его на два или взять свойство length.
Немного резко, но в целом я согласен. Проблема высосана из пальца. ["1", "2", "3"].map(parseInt) работает не так как кому-то ожидалось. А ["1", "2", "3"]["0", "1", "2"] работает ещё более непредсказуемо. И что? Если вы пользуетесь методом не зная как он работает, то это не проблема языка — это ваша проблема.
Вот только SVG в десять раз тормознее, чем Canvas на определённых задачах. А на других задачах всё с точностью до наоборот. Давайте действительно, без фанатизма.
Я понимаю, что вас задолбали, но это не повод отвечать столь агрессивно на довольно-таки невинные вопросы:
«Вот только SVG в десять раз тормознее, чем Canvas»
«SVG — тормозилово.»
«Демонстрация убогости платформы.»
(Не нужно так полагаться на тест Камерона. Можно создать тест при котором SVG и Canvas покажут противоположные результаты.)
и отдельное спасибо за
«Но лично у меня (Raphaël) ассоциируется только с зависшим браузером.»
Не надо сравнивать яблоки и апельсины. Сравните задачи и решения. Какую задачу решает библиотека А? Если уже есть библиотека Б, которая решает ту же задачу, то как А решает её лучше?
Не надо опускаться до «обсирания» чужой работы. Люди, реализующие SVG тэг <animate> в браузерах, не заслуживают этого.
И ещё, когда спорите о скорости, не забывайте, что IE6 всё ещё живее всех живых. ;)