Это всё в развитых странах прокатывает. Надо всё-таки делать поправку, что у нас совсем не та страна, в расчете на которую пишется большинство открытых лицензий.
Скорее всего, если сообщество хоть как-нибудь, но таки доведёт дело до суда — мэйлрушники быстренько всё перепишут, это ведь не сетевой стек украсть (хехе), не такой уж и сложный этот XMPP.
> Во-первых, чтобы Си (и тем более Си++)-программа была эффективной, тоже надо держать в голове кучу факторов,
Вот только при написании на Си не надо держать в голове тех вещей, которые надо деражть когда пишешь на голом асме. Многое берёт на себя компилятор.
> достаточно один раз использовать например STL — и сразу же вес программы подскочит, а производительность нет.
С удовольствием посмотрю, как вы воспользуетесь STL в C :). А если серьёзно, то STL-ем тоже надо уметь пользоваться.
Никто не говорит, что код на Си всегда более эффективен, естественно надо писать с умом. Но, соглситесь, гораздо проще возложить много рутинной и очень сложной работы по раскидыванию переменных по регистрам (переменных много, а регистров мало), по описанию всяких вызовов функций, по input/output (в том числе файловом) и т.п. на компилятор и озадачится написанием эффективного кода на более высоком уровне абстракции (всё таки Си это язык более выского уровня чем асм, хотя и не такого как, например, питон).
Попробуйте написать какое-нибудь более-менее нетривиальное приложение на Си (например, простой лексический анализатор) и на асме — поймёте о чем я говорю.
То что скомпиленный рукописный асм-код будет быстрее скомпиленного современным компилятором рукописного кода на Си (++, etc) — распространенное заблуждение. При кодировании на асме сложного приложения руками надо учесть СТОЛЬКО факторов и столько всего в голове держать, столько всяких вещей просчитывать, что человеку это если и под силу, то ооооооочень медленно и с кучей (трудноуловимых) ошибок.
Я бы не сказал, что Эрланг быстрее кого-то в принципе. Он быстрее и надежнее в некотором классе задач. Хотя, наверное, для веба он быстрее на всех задачах из-за специфики веба. Кстати, там эти фэйсбучники еще и те самые плюсы (не к ночи будь помянуты) используют. Так что автору есть куда копать :)
ЗЫ. А почему именно хаскелл? Он для веба насколько актуален, в плане наличия фреймворков, инфраструктуры и т.п. Тот же самый разбор POST-запроса и прочее, биндинги к базам. Я с этой стороны просто на него никогда не смотрел.
Можно посмотреть в сторону OCaml-а/Ocsigen, который не сильно проигрывает в производительности Сям (будучи откомпилённым). Но параллелится будет легче, ФП всё-таки.
Тогда у вас в коде ошибка — если ведро с хтмлем кончится посередине тега, то этот тег пропустится. Сам на такие же грабли в другом месте наступал, вот и насторожило…
Отличная статья. Свой модуль писать я, конечно врядли стану, но всегда приятней знать как всё устроено. Особливо то, с чем постоянно работаешь. :)
А данные в «вёдрах» :) приходят всегда в законченном виде или может прийти несколько ведёр? В том смысле, что, пусть отдаётся какой-то HTML, он придёт в одном ведре и может в разных в зависимости от длины?
Или там ацко секретные наработки? :)
Скорее всего, если сообщество хоть как-нибудь, но таки доведёт дело до суда — мэйлрушники быстренько всё перепишут, это ведь не сетевой стек украсть (хехе), не такой уж и сложный этот XMPP.
Вот только при написании на Си не надо держать в голове тех вещей, которые надо деражть когда пишешь на голом асме. Многое берёт на себя компилятор.
> достаточно один раз использовать например STL — и сразу же вес программы подскочит, а производительность нет.
С удовольствием посмотрю, как вы воспользуетесь STL в C :). А если серьёзно, то STL-ем тоже надо уметь пользоваться.
Никто не говорит, что код на Си всегда более эффективен, естественно надо писать с умом. Но, соглситесь, гораздо проще возложить много рутинной и очень сложной работы по раскидыванию переменных по регистрам (переменных много, а регистров мало), по описанию всяких вызовов функций, по input/output (в том числе файловом) и т.п. на компилятор и озадачится написанием эффективного кода на более высоком уровне абстракции (всё таки Си это язык более выского уровня чем асм, хотя и не такого как, например, питон).
Попробуйте написать какое-нибудь более-менее нетривиальное приложение на Си (например, простой лексический анализатор) и на асме — поймёте о чем я говорю.
сколько времени ушло на тестирование? вот что важно на самом деле.
ЗЫ. А почему именно хаскелл? Он для веба насколько актуален, в плане наличия фреймворков, инфраструктуры и т.п. Тот же самый разбор POST-запроса и прочее, биндинги к базам. Я с этой стороны просто на него никогда не смотрел.
Отличная статья. Свой модуль писать я, конечно врядли стану, но всегда приятней знать как всё устроено. Особливо то, с чем постоянно работаешь. :)
В тексте статьи неточность, стало быть.