Comments 264
суровый сумрачный гений скрестил HipHop с APC?
интересно посмотреть что же они там такого наворотили.
интересно посмотреть что же они там такого наворотили.
У PHP был фатальный недостаток…
Типичный вконтакт — взять то что придумал фэйсбук и сделать его лучше :)
Это же хорошо. Вы так не считаете?
Еще-бы выдали наружу все это дело…
Написали же, что выложат. Думаю надо время подготовить это все. Весточка в любом случае хорошая.
По моему мнению пользы от этого действия будет не много. Из-за урезанности PHP фреймворки работать там с большой вероятностью не будут. Можно будет использовать только для собственных наработок и то, если вы прочувствуетесь их подходом. Так как они под себя оптимизировали, то там может быть вырезано много того, что вы привыкли использовать.
Разве что посмотреть что они там наваяли…
Разве что посмотреть что они там наваяли…
А кто мешает это форкнуть и развить до полной работоспособности?
Возможно за счёт вырезания функционала они и получили такую оптимизацию. Добавите все возможности и получите продукт схожий по скорости с APC :). Но это всего-лишь мои предположения.
Для малых проектов это вообще не имеет смысла. А вот для больших, когда на серверных ресурсах можно сэкономить огромные финансы. Стоит заморочится и возможно отказаться от приятностей ooп.
и главное не какую-нибудь «сильно испорченную версию»
Молодцы же
За что и любúм. ;-)
На очереди надёжная быстрая распределённая база — ждём-с. А то фейсбук на свою совсем забил. :-)
На очереди надёжная быстрая распределённая база — ждём-с. А то фейсбук на свою совсем забил. :-)
люби́м
У меня так через Compose-Key не ставится, возможно не знаю как — приходится извращаться с латинницей
Илья Бирман странно относится к Линуксу. Впрочем, это его личные тараканы.
Вики привела на вот эту статью по теме, обещающую, что всё должно быть из коробки, но я у себя в штатных раскладках не нахожу.
Пользуюсь украинской RSTU — она тоже богата типографикой.
Хм, забавно: таки случайно нащупал модифицирующий акут а́ е́ о́ на «ф» в третьем ряду (интересно, как это смотрится под виндой?). Но то, что в редакторе смотрится правильно, то ли парсер, то ли браузер преобразует в смещённый в сторону апостроф. В общем, предпросмотр рулит )
UPD.: а при сохранении всё не так как на предпросмотре — вот и доверяй после этого! ))
Вики привела на вот эту статью по теме, обещающую, что всё должно быть из коробки, но я у себя в штатных раскладках не нахожу.
Пользуюсь украинской RSTU — она тоже богата типографикой.
Хм, забавно: таки случайно нащупал модифицирующий акут а́ е́ о́ на «ф» в третьем ряду (интересно, как это смотрится под виндой?). Но то, что в редакторе смотрится правильно, то ли парсер, то ли браузер преобразует в смещённый в сторону апостроф. В общем, предпросмотр рулит )
UPD.: а при сохранении всё не так как на предпросмотре — вот и доверяй после этого! ))
Решил так:
>>> grep apostrophe .XCompose
<Multi_key> <apostrophe> <apostrophe> : "́"
Unicode Character 'COMBINING ACUTE ACCENT' (U+0301) вам поможет:)
Да, есть такой, я тут случайно нашёл на своей раскладке ))
и, Shift+Ctrl+U0341 = и́
А то фейсбук на свою совсем забил
Это про Cassandra? Так она и без них отлично развивается.
Вконтакт = Фэйсбук + блэкджек + шлюхи :)
+ музыка
+ видео
+ более вменяемое API
+ видео
+ более вменяемое API
Пиратская, замечу, музыка и пиратское же видео.
Ну и про API не смешите!
Ну и про API не смешите!
То есть, если я, к примеру, сам пишу музыку и выкладываю её для того, чтобы показать людям, она сразу становится пиратской? :)
Выкладывать собственную музыку вам никто не мешает и на Фэйсбуке.
Но в контакт народ в основном ходит, увы, не за вашей музыкой :)
Но в контакт народ в основном ходит, увы, не за вашей музыкой :)
Все правообладатели так и делают чтоб потом получить деньги!
В РФ если Вы ее не зарегистрировали в нужных организациях — то и ее могут признать пиратской.
Да и не только в РФ — аналоги РАО существуют почти во всех странах.
а у кого она будет «спирачена» в таком случае? Мне казалось, что нужно заявление от правообладателя, если музыка не зарегистрирована то и правообладателя нет. Я ошибался?
Ошибались. Вспомните, например, дело РАО против группы Deep Purple за исполнение песен группы Deep Purple без отчисления авторских гонораров группе Deep Purple, само собой, без заявления со стороны группы Deep Purple.
при таком раскладе да, но
вот при этой ситуации, каким образом отсутствие регистрации музыки в нужных организациях делает ее пиратской? украденной у кого?
То есть, если я, к примеру, сам пишу музыку и выкладываю её для того, чтобы показать людям, она сразу становится пиратской? :)
вот при этой ситуации, каким образом отсутствие регистрации музыки в нужных организациях делает ее пиратской? украденной у кого?
Абсолютно аналогично. Возьмется такая организация защищать авторские права на ваши произведения без вашего ведома и согласия, от вас, в том числе…
это очень абсурдно звучит. Подача иска подразумевает какое-то наказание ответчику при удовлеторении иска. Вы всерьез утверждаете что человека, выложившего свою музыку в сеть могут за это оштрафовать и, как следствие, штраф будет выплачен ему же?
А вы всерьез утверждаете, что такой маразм невозможен? :) У РОА государственная аккредитация по коллективному управлению правами на обнародованные музыкальные произведения в т.ч. по 7-8му подпунктам 2го пункта статьи 1270 ГК — если хватит наглости, и за такое наезжать начнут. Само собой, штраф будет выплачен РОА, где половина, как издержки и за услуги посредника, и осядет, а остаток автор получит назад :)
Передергиваете. Иск был к какому-то российскому ООО — организатору концерта.
Пиратским контент делает не носитель. Замечу, что для одного человека она может быть пиратской, а для другого — вполне законно приобретённой )
Конечно не носитель! Мы все знаем, что по-настоящему пиратскую музыку пишут пираты!
От пиратская музыка на ютуб: www.youtube.com/watch?v=uWwgumMwqmA
Замечу, что для одного человека она может быть пиратской, а для другого — вполне законно приобретённой
«Законно приобретённый» в большинстве случаев вряд ли предполагает неограниченное распространение / публичный доступ.
Пиратская или нет, это не понятия среды передачи данных.
А социалка — это просто среда для передачи музыки. Не делать плеер в социалке — это всё равно, что откачивать воздух из зала собраний.
А социалка — это просто среда для передачи музыки. Не делать плеер в социалке — это всё равно, что откачивать воздух из зала собраний.
Слушайте, а почему апи более вменяемое?
У меня какие-то проблемы с ним постоянно, в том числе с документацией. А в фб всё почти всегда работает предсказуемо, и документация хорошо структурирована.
У меня какие-то проблемы с ним постоянно, в том числе с документацией. А в фб всё почти всегда работает предсказуемо, и документация хорошо структурирована.
Еще скажите что в ФБ интерфейс интуитивно-понятный:)
API слабо документированно. Для несложных задач вроде получения имени и фамилии друзей все хорошо описанно. Но вот, например, работа с массивами в методе execute почти не документированна. Вообще документация по методу сводится к шести примерам и пару строчкам о возможностях.
Прошу убедиться: https://vk.com/dev/execute
Я, например, так и не понял как изменять значения в массиве.
Прошу убедиться: https://vk.com/dev/execute
Я, например, так и не понял как изменять значения в массиве.
Тут человек не понял, как виджет на сайт кинуть, чтобы он в лог не гадил.
stackoverflow.com/questions/8048564/fb-getloginstatus-called-before-calling-fb-init-error-in-console
stackoverflow.com/questions/8048564/fb-getloginstatus-called-before-calling-fb-init-error-in-console
+ адекватный интерфейс.
Где вы видели API лучше фейсбука? Да, оно сложное, но оно полное и предсказуемое. А ещё есть масса средств тестирования.
У ВК, хотя бы тем, что его не меняют каждый месяц без предупреждения.
Эм, предупреждает FB сильно заранее и при этом есть куча Developer Alert'ов, которые об этом напоминают. ЧЯДНТ?
Ограничение ООП — это действительно лучше? Я даже начинаю понимать почему эта разработка быстрее, учитывая то, что у фейсбука с относительно недавнего времени поддерживается весь язык…
Хотелось бы верить, что это не архитектурный просчет. И со временем возможно подтянут весь язык.
Согласен, хотя я был бы только «за», если бы наоборот — вырезали половину совершенно бессмысленных функций.
PHP открытый проект, думаю можно провернуть такой фокус выпустив свой форк ))
Вот только первым же issue в багтрекере появится «Ну и как мне на этом запустить вордпресс?»
учитывая то, что их уже 924, не думаю что 925-ый без половины функционала будет особо популярным. А вот если он будет не только урезанным, но ещё и в два раза быстрее — это уже другой разговор.
Типичный путь всего нового — основываясь на существующих технологиях и идеях создавать новое и лучшее. Вы же перед тем как писать код не придумываете язык программирования.
> Скажем, там сильно ограничено все, что связано с ООП.
у них там все лапшой написано, что ли? :)
у них там все лапшой написано, что ли? :)
«Ограниченно», не значит «отсутствует».
Я так полагаю «магию» вырезали — для такого проекта это более чем оправдано.
Я так полагаю «магию» вырезали — для такого проекта это более чем оправдано.
У пыха «магия» работает быстрее чем, допустим метод миссинг в руби и зачастую без подобной магии не обойтись, так что отсутствие гетов\сетов\коллов\инвоук и прочее — считаю довольно сильным ограничением языка.
А при чём тут руби? Тот же пых написанный без магии работает прилично быстрей. Просто не всем это существенно.
Без всего этого добра вполне обойтись можно, вызывая их в явном виде, как это принято в Java. Да, не так удобно, не руби-стайл, но жить можно. Тем более, что в подобных случаях народ вообще лезет в написание модулей на си и вспоминает о спичках.
Без всего этого добра вполне обойтись можно, вызывая их в явном виде, как это принято в Java. Да, не так удобно, не руби-стайл, но жить можно. Тем более, что в подобных случаях народ вообще лезет в написание модулей на си и вспоминает о спичках.
Я думаю сложность только в гетах, сетах, коллах и статикКоллах, но и их можно сделать, при большом желании.
инвоук — так вообще просто, $obj() ~> $obj->__invoke();
инвоук — так вообще просто, $obj() ~> $obj->__invoke();
в коде вк ООП именно что отсутствует :)
У меня от прототипов, например, большая головная боль, чем от объектно-ориентированности. Может к лучшему, может к сожалению, но альтернатив ОО пока нет, если уж брать в глобальном масштабе (ну если не считать пристройки в виде аспектов), а все попытки что-то реализовать иначе — выливаются… хм, в друпал например. Или есть альтернативы?
Textpattern посмотрите, например.
Все очень просто, понятно и логично. Современный процедурный стиль во всей красе.
Все очень просто, понятно и логично. Современный процедурный стиль во всей красе.
альтернатив ОО пока нет
Безболезненно перешел на методы, используемые для организации исходного кода в golang. Сильного зуда из-за отсутствия ООП не ощутил.
Не стоит быть таким категоричным :)
Безболезненно перешел на методы, используемые для организации исходного кода в golangА что там используется?
Я, наверное, не совсем корректно выразился. Имеется в виду не что-то агрегирующее исходники(идея packages не нова), а сам подход при написания кода.
Если же вы меня правильно поняли, то Go многопоточный императивный структурированный язык. Притянуть за уши идеи ООП конечно можно(си с классами вот до сих пор выдумывают :)), но на мой взгляд пустая трата времени.
Если же вы меня правильно поняли, то Go многопоточный императивный структурированный язык. Притянуть за уши идеи ООП конечно можно(си с классами вот до сих пор выдумывают :)), но на мой взгляд пустая трата времени.
Пишу и на Erlang и на Python. И ничего, создавать в Erlang абстракции прекрасно удаётся и без наследования. Если очень хотите — могу примеров привести (но лень как то).
Создавался чемпионами ACM.
Вот они программисты-олимпиадники: враг ни за что не догадается, как работает их код:-)
Печально что чемпионам ACM приходится писать на РНР
Я не думаю, чтобы они компилятор писали на пыхе. Они же не больные, в самом деле.
Ну, строго говоря, чемпионам АСМ приходится разрабатывать новый язык программирования(не особо существенно, что синтаксис основан на синтаксисе PHP), а это вполне интересная задача:)
Не думаю, что это можно назвать новым языком. Семантику им тоже нужно было сохранить.
Ну C++, несмотря на обратную совместимость с ANSI C таки является новым языком. А тут мы даже подробностей не знаем, чтобы на 100% говорить, что это НЕ новый язык)
Вы через одно место всё вывернули.
В вашем случае (очень-очень грубо говоря) С++ — надмножество языка С.
С сабже же выделили подмножество PHP — KPHP. Семантически это всё же урезаный PHP.
В вашем случае (очень-очень грубо говоря) С++ — надмножество языка С.
С сабже же выделили подмножество PHP — KPHP. Семантически это всё же урезаный PHP.
>грубо говоря С++ — надмножество языка С.
классики С++ так не считают, они утверждают, что Си и С++ это два разных языка, с одинаковыми элементами синтаксиса.
классики С++ так не считают, они утверждают, что Си и С++ это два разных языка, с одинаковыми элементами синтаксиса.
Я с вами согласен. Но я сделал небольшое допущение. Совсем небольшое.
Ну, в допущениях можно пойти чуть дальше — PHP является частично пересекающимся множеством с C, вследствие чего урезанный PHP оказывается ближе к C ))
Кажется я только что догадался как это расшифровывается — К(астрированный)PHP. Давно пора, а то популяция быдлокодеров на этом языке размножается почище кроликов.
хейтеры, когда же вы успокоитесь?
И такое же API в придачу :)
А что, ООП каким-то магическим образом распутывает лапшу из кода или препятствует её появлению?
Я вообще слабо представляю как можно писать на PHP без нормально ООП и как вообще можно писать на PHP проект уровня вконтактика.
Хм, и что же мешает? конкретно пожалуйста.
а как можно писать проект уровня FB? уровня Википедия?
и ВК и ФБ,… и Дуров и Марк, были когда-то студентами. И начиналось все с небольших стартапов и кучей кривого кода. Дурову было полегче, он шел протоптанной дорогой и знал уже куда нужно грести… а впрочем песня не о нём, а о любви…
В общем, молодцы что сделали. Осталось посмотреть и оценить, что получилось и на сколько этим можно пользоваться. Яндекс вон уже более трех лет обещает выложить сырцы своего WEB сервера. Сколько там лет обещенного ждут?
и ВК и ФБ,… и Дуров и Марк, были когда-то студентами. И начиналось все с небольших стартапов и кучей кривого кода. Дурову было полегче, он шел протоптанной дорогой и знал уже куда нужно грести… а впрочем песня не о нём, а о любви…
В общем, молодцы что сделали. Осталось посмотреть и оценить, что получилось и на сколько этим можно пользоваться. Яндекс вон уже более трех лет обещает выложить сырцы своего WEB сервера. Сколько там лет обещенного ждут?
Вначале прочитал по-русски как КНР.
Такими темпами появится новая ОС
Одного меня мучает вопрос, что такое загадочное K?
Компилируемый, вестимо. Надо же в названии обнозначить, что сделано в России .)
Кастрированный? :)
Из минусов — поддерживается не весь синтаксис PHP, а только то подмножество, которое мы использовали в ВК
ВКонтакте?
Контакт же!
Контакте Эр Нэ Эр
Контакт, очевидно же.
Как я надеюсь, что это пришло из KDE. У нас в сообществе, почти у всех продуктов первая согласная К. Например: Kate, KWin, Okular, KWrite и так далее.
Вот и пополнится коллекция KDE.
Вот и пополнится коллекция KDE.
Меня одного смущает вопрос, почему бы сразу не писать на C/C++ и не изобретать всякие там HipHopKPHP?
Т.е любая другая причина, кроме времени разработки.
Т.е любая другая причина, кроме времени разработки.
На плюсах писать дольше, это же очевидно. Да и поддержка сложнее. Дешевле докупить оперативки или новый сервер, чем поддерживать серьёзную команду плюсовиков.
Точно. Об этом в 12 ночи как-то забыл. Тогда всё верно.
Не слышал, чтобы вконтакте экономил на кадрах. Подозреваю, просто изначально он писался на коленке на пхп, рос, а теперь переписать на плюсы просто нереально, проще что-нибудь сделать с пхп.
А на D?
А еще круче C — писать веб-приложения на Ассемблере!
Ну с Ассемблером Вы явно загнули.
Практически — тоже. :) В начале 2000-ных мы в стенах веб-студии девелопили полнофункциональную CMS на С++. Скорость работы была феерической. Но вот с саппортом — реально проблема, ибо каждый проект это был по-сути отдельный форк со своими допилками.
И лично у меня был проект интернет-магазина для немцев с абсолютно безумными требованиям: C++, Windows, Apache+FastCGI, MSSQL. Тоже весьма шустро работало.
И лично у меня был проект интернет-магазина для немцев с абсолютно безумными требованиям: C++, Windows, Apache+FastCGI, MSSQL. Тоже весьма шустро работало.
Половина мейлрушных проектах на сях написана.
Я работаю в проекте, который реализован, как модуль апача. Проект обслуживает 20-30К сессий одновременно, 3 млн сообщений ежесуточно. Так что — полноценный WEB проект полностью на Сях (и даже не плюсы). И работает, и с поддержкой, и с расширением нет проблем. Обслуживался двумя программистами сишниками, недавно еще двух программистов взяли.
Неужто действительно с юмором настолько туго?
Жаль, нет Brainfuck. Я бы поиздевался над собой.
Тут рядом «веб-сервер на ассемблере» выложили, можно заняться портированием :-)
Потому что до определённого предела это долго, сложно и невыгодно.
А потом как подумаешь, что можно перенести код и полтора года серверов не добавлять и сразу задумываешься, наверное =)
А потом как подумаешь, что можно перенести код и полтора года серверов не добавлять и сразу задумываешься, наверное =)
Надо было сразу на perl писать, и не мучаться.
А, да, чуть не забыл: [sarcasm]
А, да, чуть не забыл: [sarcasm]
Вот бы еще они своей СУБД поделились с сообществом…
И хорошо бы вместе со всем содержимым )
Это типично русский подход к программированию — взять чужую жалкую наработку, выкинуть все ненужно, нужно оптимизировать, запилить туда Катюшу и покорить мир.
А можно еще таких «типичных» проектов? Интересно даже, почти не слежу за опенсорсом русских компаний.
Спасибо, но вроде Игорь Сысоев, работая в Рамблере, с нуля писал nginx, речь была про чужие перепиленные разработки.
Почему-то все, за что в последнее время берется Фейсбук, завершается на стадии «жалкой наработки».
Вот что бывает, если чуть-чуть начать ДУМАТЬ ГОЛОВОЙ и НЕ ЗАБЫТЬ про оптимизацию архитектуры, алгоритмов и кода!!!
Если еще подумать — будет еще быстрее! Было бы желание.
PS: Вообще нужно всегда это стараться СРАЗУ делать по-максимуму…
Если еще подумать — будет еще быстрее! Было бы желание.
PS: Вообще нужно всегда это стараться СРАЗУ делать по-максимуму…
Мы сделали свой PHP с приложениями и одноклассницами…
Господи, Vk начинают мне напоминать яндекс. Решают уже решенную задачу, правда яндекс еще обычно делает это хуже, чем уже существующие решения. Дуров говорит, что у них хотя бы работает быстрее, но утверждение голословное.
Что мешало им взять HipHop и сделать его лучше? Они бы осчастливили не только тех, кто перейдет на этот KPHP, но и тех, кто уже использует HipHop.
Ну и, конечно, не могу не отметить, что в Facebook уже (спрашивал лично разработчиков) около 50% инфраструктуры работает на HipHop VM github.com/facebook/hiphop-php, www.facebook.com/note.php?note_id=10150415177928920. Так что я слабо представляю, где там «на некоторых тестах можно ждать окончания компиляции полчаса».
Кому, конечно, нужен мой совет, но я бы сказал так: лучше меньше снобизма и больше открытости. Пускай примером служат то, как Google поступил с Vine, а Facebook с Cassandra.
Что мешало им взять HipHop и сделать его лучше? Они бы осчастливили не только тех, кто перейдет на этот KPHP, но и тех, кто уже использует HipHop.
Ну и, конечно, не могу не отметить, что в Facebook уже (спрашивал лично разработчиков) около 50% инфраструктуры работает на HipHop VM github.com/facebook/hiphop-php, www.facebook.com/note.php?note_id=10150415177928920. Так что я слабо представляю, где там «на некоторых тестах можно ждать окончания компиляции полчаса».
Кому, конечно, нужен мой совет, но я бы сказал так: лучше меньше снобизма и больше открытости. Пускай примером служат то, как Google поступил с Vine, а Facebook с Cassandra.
прошу прощения, Google поступил с Wine.
а как гугл поступил с вайном?
тоже интересно)
Когда портировали Picasa, google очень много патчей туда влил. Примерно в 2009-2010 годах
Wine, и рекурсия мозга секунд на 10.
Очень часто бывает, что реализовать с нуля аналог решения получается быстрее чем взять чужое готовое, полностью разобраться как оно работает и рефакторить, улучшать, допиливать (ваш ко). Думаю что ничего не мешало смотреть в хипхоп и вк-шники конечно смотрели. Ничего криминального в своей разработке с нуля нет. Да и снобизма вроде никакого… Имхо сейчас чтобы не ляпнули из вк — воспринимается в штыки. Есть конечно причины, но тут-то вроде место ровное. Выложат исходники там и поглядим.
А чем вам Яндекс не угодил?
А чем вам Яндекс не угодил?
Звучит как: почему бы разработчикам symfony не взять yii и пилить его, почему бы разработчикам mercurial не забить на свое видение и не пилить git, почему бы битбакету не присоединиться к гитхабу, почему бы…
Да потому что конкуренция! И хорошо что она будет. Вам нравится бешеный темп развития техники за последние 10 лет? Неужели это от того что у нас существует 1 супер-компания, в которой собраны лучшие умы, а не от конкуренции и различий подходов к одному и тому же?
Да потому что конкуренция! И хорошо что она будет. Вам нравится бешеный темп развития техники за последние 10 лет? Неужели это от того что у нас существует 1 супер-компания, в которой собраны лучшие умы, а не от конкуренции и различий подходов к одному и тому же?
Потому что вы сравниваете два фрэймворка, у которых разный подход к разработке. KPHP это технология, которая решает одну задачу, И такая технология уже есть, я как раз не за одну большую компанию, которая соберет лучшие умы. Я за то, чтобы все компании, в которых собраны лучшие уму объединялись и пилили один продукт, доводя его до совершенства. Здесь мы видим не свою идеологию, а велосипед.
У yii и и symfony одна задача — вывод информации посетителю сайта (если грубо)
Но разгые методы реализации.
Вы сравнивали архитектурный подход HipHop-a и KPHP? Сомневаюсь. А уже делаете выводы.
Но разгые методы реализации.
Вы сравнивали архитектурный подход HipHop-a и KPHP? Сомневаюсь. А уже делаете выводы.
ну то есть гугл молодцы, придумали хороший поисковик, а яндекс, дакдакго, бинг и прочие — идиоты, пилят велосипед, присоеденились бы к гуглу и проблем не было бы
Вообще то наоборот. Яндекс появился раньше, насколько мне известно
Нет, все молодцы. Но все, что вы перечислили — это коммерческие продукты. А мы вроде бы про опенсорс говорим, мне кажется странным такие паралели проводить
Разрабатывают свой шифрованный протокол для im, собственный компилируемый язык и обещают поделиться с миром. В любой другой стране их бы похвалили, а у нас как всегда…
Да пусть делают что угодно. Проблема в том, что от кол-ва разных проектов качество онных не поднимается. В итоге 90% не то что в продакшен ставить не рискнешь, а даже экспериментировать с этим не станешь, когда увидишь сколько детских болезней у этого нового проекта.
Они что-то сделали, что позволило им ускорить код в 2 раза? — Прекрасно! Только вот энтузиазма по поводу выкладывания этого чего-то в паблик лично я не разделяю.
Понимаю, что переписывать код с нуля на другом языке задачи не стояло, но PHP, даже ускоренный в 2 раза, все равно в N раз будет медленней той же Java. Еще, как вариант, Erlang есть. Масштабируется отлично. Кстати, не сильно сложный язык, если только не учитывать сложность перехода к функциональной парадигме.
Они что-то сделали, что позволило им ускорить код в 2 раза? — Прекрасно! Только вот энтузиазма по поводу выкладывания этого чего-то в паблик лично я не разделяю.
Понимаю, что переписывать код с нуля на другом языке задачи не стояло, но PHP, даже ускоренный в 2 раза, все равно в N раз будет медленней той же Java. Еще, как вариант, Erlang есть. Масштабируется отлично. Кстати, не сильно сложный язык, если только не учитывать сложность перехода к функциональной парадигме.
гхм… а где сказано, что скорость исполнения всего в два раза возросла? Сказано, что скорость генерации страниц возросла в 2 раза, а это очень разные понятия. Вполне возможно, что допустим нагрузка при генерации страницы упала в 10ть раз. И еще не известно какие процессы стоят перед процедурой генерации страницы.
Я в свою очередь обещаю честно их похвалить.
Если и вправду будет лучше, чем HipHop, то почему бы и нет.Свои продукты — это хорошо, тем более, если выкладывать в открытый доступ.
Они молодцы, в любом случае.
Они молодцы, в любом случае.
Быстрее ли оно чем java c# go?
это компилируемые, статически-типизированные языки, о чем вообще тут речь?
ага, только компилируется скрипт не статически типизированный. И если уже совсем на чистоту говорить, то для начала он транслирует код в c++, а затем уже компилирует.
Ну почитайте, пожалуйста, хотя бы страничку github hiphop'a, ну какой он уже статически компилируемый. github.com/facebook/hiphop-php
Очень сомневаюсь, с учетом малого времени компиляции (минута на весь код ВК) и нерасположенности синтаксиса и семантики PHP к оптимизациям.
Расскажите мне еще раз про вечно тормозящую базу и несущественное время выполнения кода на основном языке в хайлоаде.
Интересно почему не VPHP?
<sarcasm>
Я вот сижу, и думаю — Велосипед? Да не. Наверное новая технология пришла в мир, что тут ровнять Павел VS Zend? </sarcasm>
Не понимаю, почему столько критики. Во-первых, это личная разработка ВК под себя, им что именно нужно было, они то и реализовали. Во-вторых, Дуров ничего не сказал про развитие KPHP, а вполне возможно, что там появятся более широкие возможности PHP.
Почему ВК не взяли Hip-Hop у фейсбука и не стали развивать его — тут все та же целесообразная необходимость — для них, вероятно, Hip-Hop был избыточен, и решили написать под конкретные нужды свой компилятор, тем более, что это весело и средства позволяют.
И наконец, много ли кто вообще пользуется Hip-Hop для себя? Для подавляющего большинства оно нафиг не нужно. Хватает обычной скорости PHP + кеширование байткода. А те, кто собираются писать новый HighLoad-проект c использованием одно лишь Hip-Hop или KPHP — ну удачи, я бы не рискнул. Это ВК и Фейсбуку деваться уже некуда, у них приличная часть всего написана на PHP, но мы то в сами сегодня располагаем более широким инструментарием, чем даже 5 лет назад, верно? Где нужно, применим Node, где оправдано — Erlang или, прости господи, Go, а всякую обвязку — на PHP. И не нужно говорить, что потом это все будет сложно поддерживать, поддерживать конкретную реализацию, заточенную под конкретную задачу куда эффективнее, чем мостырить PHP для всего-всего.
Почему ВК не взяли Hip-Hop у фейсбука и не стали развивать его — тут все та же целесообразная необходимость — для них, вероятно, Hip-Hop был избыточен, и решили написать под конкретные нужды свой компилятор, тем более, что это весело и средства позволяют.
И наконец, много ли кто вообще пользуется Hip-Hop для себя? Для подавляющего большинства оно нафиг не нужно. Хватает обычной скорости PHP + кеширование байткода. А те, кто собираются писать новый HighLoad-проект c использованием одно лишь Hip-Hop или KPHP — ну удачи, я бы не рискнул. Это ВК и Фейсбуку деваться уже некуда, у них приличная часть всего написана на PHP, но мы то в сами сегодня располагаем более широким инструментарием, чем даже 5 лет назад, верно? Где нужно, применим Node, где оправдано — Erlang или, прости господи, Go, а всякую обвязку — на PHP. И не нужно говорить, что потом это все будет сложно поддерживать, поддерживать конкретную реализацию, заточенную под конкретную задачу куда эффективнее, чем мостырить PHP для всего-всего.
Это ВК и Фейсбуку деваться уже некуда, у них приличная часть всего написана на PHP, но мы то в сами сегодня располагаем более широким инструментарием, чем даже 5 лет назад, верно? Где нужно, применим Node, где оправдано — Erlang или, прости господи, Go, а всякую обвязку — на PHP. И не нужно говорить, что потом это все будет сложно поддерживать, поддерживать конкретную реализацию, заточенную под конкретную задачу куда эффективнее, чем мостырить PHP для всего-всего.
Я думаю, что при большом желании такие монстры как VK и FB могут себе позволить переписать все на Node / Erlang и т.п. И по времени это займет скорее всего меньше, чем писать свой компилятор для PHP. И кстати у VK по-моему довольно много сервисов работает на Node.js (по крайне мере Node.js они точно используют в качестве прослойки для реализации XMPP). Я думаю, что все они используют PHP более чем эффективно и как раз-таки по месту, где и надо. Другое дело что, как вы правильно заметили, с их масштабами все время приходится придумывать что-то новое и выкручиваться.
Плюс выбор PHP как языка (а не какого-нить Erlang-а или там чего-нить ещё) обусловлен ещё тем, что ребята просто хорошо умеют его готовить. А зачем использовать что-то новомодное, если ты хорошо справляешься и со старым?
Я думаю, что при большом желании такие монстры как VK и FB могут себе позволить переписать все на Node / Erlang и т.п. И по времени это займет скорее всего меньше, чем писать свой компилятор для PHP.
ЕМНИП, как раз таки после выхода HipHop'а, ребята из FB сказали, что когда они уперлись в производительность так, что добавление железа было уже экономически невыгодным, у них было 2 пути:
1. переписать все под что-нибудь более шустрое;
2. написать компилятор для PHP.
Второй путь оказался намного более дешевым.
Думаю, главным образом они не переписывают с PHP на что-то другое по причине того, что уже есть хорошая команда PHP-кодеров, а для чего-то другого опять придется нарабатывать опыт, изучать, наступать на грабли. Но я правда думаю, что основным аргументом написать компилятор было что- вроде «почему бы и нет?». Одна команда пишет в привычных рамках на PHP, а другая в это время пишет компилятор. В час X весь код компилируют, и как такового изменения команда PHP-кодеров не заметила. А вот как раз-таки взять и начать внедрять в уже работающем проекте что-то совсем новое — сильно не просто, на памяти есть только пример Твитера.
Хоть реализация XMPP на Node и получилась, стоит отметить, что при ее невероятной непопулярности, там что-то отпадывает по нескольку раз на дню (пользуюсь IM через QIP). При этом Node.js довольно неплохо подходит для подобной задачи, и видимо вопрос действительно в умении готовить на чем-то другом.
Хоть реализация XMPP на Node и получилась, стоит отметить, что при ее невероятной непопулярности, там что-то отпадывает по нескольку раз на дню (пользуюсь IM через QIP). При этом Node.js довольно неплохо подходит для подобной задачи, и видимо вопрос действительно в умении готовить на чем-то другом.
Команде Дурова нужно выписать медаль «Legacy Fighters 2013». Сделать надмножество было, очевидно, самым простым вариантом, чем переписывать код.
Переписать код всего ВК на другой язык?
Флаг вам в руки =)
Флаг вам в руки =)
Какой мне флаг то? Я вообще-то написал, что это тяжело. Но, на самом деле, задача на практике сводится к написанию транслятора.
А сопровождать это оттранслированное потом как?
А в чем проблема? вы же не в бинарные коды транслируете, а в похожий язык.
Как правило, результат подобной трансляции пригоден только для выполнения на другом языке, но внутри состоит из кучи однотипных непонятных конструкций.
А если там ещё будет какой-нибудь оптимизатор, то совсем беда.
А если там ещё будет какой-нибудь оптимизатор, то совсем беда.
То что вы говорите представляется мне надуманным: между языками можно установить вполне четко однозначное соответствие. PHP — это C-подобный язык. Более сложная проблема — это построить соответствие API/Standard library, но и это тоже разрешимо.
Откуда возьмутся «однотипные непонятные конструкции», если в транслирующей грамматике их не будет?
Откуда возьмутся «однотипные непонятные конструкции», если в транслирующей грамматике их не будет?
php это не c-подобный язык, так как в нём нет статической типизации.
Следующий код будет очень тяжело перенести на си/с++, сохраняя его смысл и не добавляя костылей:
Либо вводить волшебный тип вроде QVariant, который умеет быть контейнером для всех используемых типов/функций/классов.
Следующий код будет очень тяжело перенести на си/с++, сохраняя его смысл и не добавляя костылей:
if ($x == 2)
$y = 1
else
$y = "один"
$z = 2 + $y;
$a = function ($x) {
return $z + 2;
}
var_dump($a($z));
Либо вводить волшебный тип вроде QVariant, который умеет быть контейнером для всех используемых типов/функций/классов.
Можно переносить код на динамический язык. Если нет, то нужно делать вывод типов. Я проблему вывода типов глубоко не знаю, но вышеуказанный пример точно поддается автоматизации.
Вы уверены что такой код _действительно_ нужен?
Мне кажется главная проблема переноса кода с динамической типизации на статическую это не возможность жонглирования типами в рамках переменной а угадывание типа с которым нужно эту переменную объявлять.
В большинстве случаев изменение типа это серьезный признак говнокода.
Да задача сделать универсальный транслятор сильно сложно, но если речь идет о своем проекте, то в принципе можно внести соответствующие изменения в корпоративный стандарт и провести рефакторинг под эти изменения. Заодно и качество кода улучшится. Проблема здесь будет только с чужими библиотеками.
Частный случай с контактом не учитываем, вполне возможно что их стиль работы может требовать определенной лапши.
Мне кажется главная проблема переноса кода с динамической типизации на статическую это не возможность жонглирования типами в рамках переменной а угадывание типа с которым нужно эту переменную объявлять.
В большинстве случаев изменение типа это серьезный признак говнокода.
Да задача сделать универсальный транслятор сильно сложно, но если речь идет о своем проекте, то в принципе можно внести соответствующие изменения в корпоративный стандарт и провести рефакторинг под эти изменения. Заодно и качество кода улучшится. Проблема здесь будет только с чужими библиотеками.
Частный случай с контактом не учитываем, вполне возможно что их стиль работы может требовать определенной лапши.
Такой код, конечно, не нужен. Он был примером того, что поддерживать очень сложно.
Нужно — это, например, аналог Nullable из c# — вроде int/bool/ещё чего-то, что может быть ещё null и отличаться от нулевого значения этого типа. То есть обёртывание всех примитивных типов в отдельные классы.
Другим вопросом при конвертировании на c++ будет вопрос использования ссылок или указателей при передаче аргументов и отсутствие сборки мусора.
К сожалению, я не могу сказать, насколько всё плохо в случае контакта, но, видимо, если они приняли решение писать свой продукт, а не пользоваться готовым, то необходимость рефакторинга их не устраивала.
Нужно — это, например, аналог Nullable из c# — вроде int/bool/ещё чего-то, что может быть ещё null и отличаться от нулевого значения этого типа. То есть обёртывание всех примитивных типов в отдельные классы.
Другим вопросом при конвертировании на c++ будет вопрос использования ссылок или указателей при передаче аргументов и отсутствие сборки мусора.
К сожалению, я не могу сказать, насколько всё плохо в случае контакта, но, видимо, если они приняли решение писать свой продукт, а не пользоваться готовым, то необходимость рефакторинга их не устраивала.
Главное чтоб он не был очередным ёмобилем (извините за кусочек политики).
Я так понимаю VK не пробовали новый HipHop VM с JIT, где нет понятия «компиляция»?
Вы считаете, что отсутствие компиляции это безусловное благо?
Я не считаю, я смотрю на бенчи Facebook www.facebook.com/notes/facebook-engineering/speeding-up-php-based-development-with-hiphop-vm/10151170460698920, где HHVM стал быстрее компилируемого HPHPc.
Кстати HHVM уже работает вместо HPHPc на Facebook.
Кстати HHVM уже работает вместо HPHPc на Facebook.
На момент написания этого комментария у статьи уже 230 комментариев, но только 2 человека, включая вас, упомянули про HipHop VM. Печально, что большинство PHP-разработчиков не следят за этим замечательным проектом. Странно, но кажется, что даже в Вконтакте не в курсе про виртуальную машину HipHop…
Вы случайно не знаете, когда планируется к выпуску стабильная версия HipHop VM?
Вы случайно не знаете, когда планируется к выпуску стабильная версия HipHop VM?
На момент, когда у статьи уже 230 комментариев, вы статью даже не прочли и поиском по странице даже не пользовались.
Вообще-то статью я прочел еще вчера и поиском пользовался. Но все равно спасибо за информацию.
Несмотря на 230 бессмысленных комментариев хомячков, ни один не захотел увидеть бенчмарки HipHopVM vs KPHP от Vkontakte.
Эти же бессмысленные хомячки заминусовали первый логичный и релевантный комментарий с упоминанием HopHopVM, что как-бы намекает что большинство комментируемых — школота и идиоты с отключенным мозгом, набежавшие на красную тряпку с надписью VK.
Эти же бессмысленные хомячки заминусовали первый логичный и релевантный комментарий с упоминанием HopHopVM, что как-бы намекает что большинство комментируемых — школота и идиоты с отключенным мозгом, набежавшие на красную тряпку с надписью VK.
Решение не в стиле ВК. Хотя подоплека неизвестна, может у них кроме непосредственно бекенда сайта и АПИ еще куча сервисов на ПХП написана. Не думаю, что сам бекенд это такой уж огромный объем кода.
Преимущества переписывания бекенда на каком-нибудь хорошем компилируемом языке, например D:
— еще большая скорость
— разработка на нормальном языке
— не надо тратить время на поддержку и развитие компилятора
Преимущества переписывания бекенда на каком-нибудь хорошем компилируемом языке, например D:
— еще большая скорость
— разработка на нормальном языке
— не надо тратить время на поддержку и развитие компилятора
Забавно, еще никто не видел проект живьем, но уже столько мнений и критики.
«Создавался чемпионами ACM»
Многие справедливо считают, что успехи в олимпиадном программировании не всегда многое значат для реальных разработок. После того, как окажется в паблике, можно будет в этом убедиться или разочароваться.
А вообще заявление серьезное. Может быть было бы разумнее уже после успеха похвалить свою команду, чем их так выставлять, на суд)
Многие справедливо считают, что успехи в олимпиадном программировании не всегда многое значат для реальных разработок. После того, как окажется в паблике, можно будет в этом убедиться или разочароваться.
А вообще заявление серьезное. Может быть было бы разумнее уже после успеха похвалить свою команду, чем их так выставлять, на суд)
Было бы глупо на их месте сидеть, и ничего не делать добившись такой большой постоянной аудитории. Браво.
Одному мне по заголовку показалась ассоциация с КНР?
а потом понесется: KAJAX, KSQL, KavaScript…
А кто-нибудь сталкивался с такой штукой как Phalanger?
Например WordPress + Phalanger = WP.NET с тестами производительности (улучшение в 4 раза).
Не сочтите рекламой, но блин, выглядит красиво.
Phalanger — это компилятор языка PHP для .NET, представляет собой язык и реализацию стандартной библиотеки совместимой с большинством существующих PHP-приложений. Также поддерживает вызов родных PHP4 расширений, что дает возможность использовать большинство PHP-функций и классов. Phalanger, для внутренних нужд, использует ASP.NET фреймворк, но только для реализации управления HTTP запросов и ответов, сессий и куки. Рендеринг страниц все еще такой же как в PHP, что дает программисту полный контроль над генерируемым кодом, а также совместимость с уже существующим кодом.
вики
Например WordPress + Phalanger = WP.NET с тестами производительности (улучшение в 4 раза).
Не сочтите рекламой, но блин, выглядит красиво.
Сталкивался, сейчас перевожу один свой проект (не веб) на Phalanger+Gtk#. Есть некоторые проблемы, с одной стороны с поддержкой Mono (сами авторы говорят, что приоритетной платформой является windows+.net+visual studio, Mono поддерживается по остаточному принципу), с другой — с самим phalanger'ом: интеграция с .net неполна (например, нельзя напрямую создать не-дженерик делегат если существует дженерик версия такого делегата с совпадающим именем), документации мало, коммюнити довольно невелико. Плюс в том, что как минимум один человек из команды довольно оперативно отвечает на вопросы на форуме и принимает пулл-реквесты на гитхабе.
А первоначально ваш проект на чём написан? php? если да, то компиляция фалангером прошла успешно? был прирост производительности?
Это интерактивное GUI-приложение (изначально на php-gtk). На phalanger переводится не из соображений производительности, а потому, что php-gtk сейчас практически не развивается. Плюс возможность получить доступ к многопоточности, и за счет этого упростить код (блокирующийся сетевой код проще, чем неблокирующийся, хотя такое упрощение и скомпенсируется необходимостью межпоточного взаимодействия). Также надеюсь получить более отзывчивый пользовательский интерфейс, тоже благодаря многопоточности.
Собственно, производительность не мерял, т.к. во-первых, и старая версия особых проблем не имела и во-вторых, большую часть времени приложение спит, ожидая действий пользователя.
Собственно, производительность не мерял, т.к. во-первых, и старая версия особых проблем не имела и во-вторых, большую часть времени приложение спит, ожидая действий пользователя.
прочитал заголовок «КНДР Вконтакте», удивился, только поэтому открыл
Sign up to leave a comment.
KPHP от ВКонтакте