LINUX.ORG.RU

DevConf 2014: Отдай свой PHP на прокачку - PHPNG - движок нового поколения

 , , phpng, ,


0

4

Дмитрий Стогов — автор идеи нового движка PHPNG выступит с докладом на DevConf 2014.

PHPNG (php new generation) - экспериментальная ветка PHP, в которой мы пытаемся подменить самые базовые структуры и примитивы PHP, оставив поведение без изменений. Это позволит существенно улучшить производительность и заложить базис для дальнейшего развития (включая JIT компиляцию). Проект велся с начала 2014, но был открыт только в конце апреля, когда у нас появились первые обнадеживающие результаты. Мы надеемся, что этот движок будет использован в следующем релизе PHP после PHP-5.6.

>>> Интервью с автором PHPNG



Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 1)

Ответ на: комментарий от burning_giraffes

C/C++ в вебе?

ты не поверишь, такое тоже есть =)

даже целые фреймворки - wt как пример.

MikeDM ★★★★★
()
Ответ на: комментарий от SDSWanderer

Че сказать то хотел?

Что школоло задолбало уже.

Если отбросить пафос

Это я тут начал перечислять ЯП которые знаю? Ты случаем не хохол?

и твой любимый PHP?

Ванга ты?

Тогда дай угадаю, кроме PHP ты знаешь brainfuck, pascal, и C++.

Слушай, зачем перед какойто школотой мне тут распинаться? ты кто такой вася? Прочитал, что то кроме о PHP и давай пузыри дуть. Школьник.

ihappy
()
Ответ на: комментарий от tux2015

Из-за большого расхода понтов Биореактором.

anonymous
()

php non-gnu ?

anonymous
()
Ответ на: комментарий от tux2015

Поясните, почему задорого. Из-за больших расходов памяти джавой?

Объясняю. Договор на соответствие проекта ТЗ и сроки исполнения. Задерка на сутки выливается в штрафы на сотни тысяч.

corjc
()

Спасибо ЛОРу, что прокачали мой PHP!

Zubok ★★★★★
()
Ответ на: комментарий от corjc

Договор на соответствие проекта ТЗ и сроки исполнения.

и сроки исполнения.

В энтерпрайзе то? Спасибо посмеялсо. Тут он ничем не отличается от стартапиков.

anonymous
()
Ответ на: комментарий от corjc

Ничё не понял, объясняйте точнее. Задержка чего? Сотни тысяч чего? Какие штрафы? Что определяет цену с технической точки зрения? Есть какие то преимущества кроме понтов созданных маркетологами sun/oracle?

tux2015
()
Ответ на: комментарий от SDSWanderer

Полно же нормальных языков для веб-бекенда, почему нужно выбирать самый каличный?

Я, вот, планировал свой фреймворк переносить на Python (Django слишком многословен и избыточен) или Java (в варианте надстройки над Play). Но потом появился Composer и сейчас альтернативы (egg/node/gem/maven) под мои типовые задачи кажутся слишком неудобными, чтобы уходить с PHP.

Ну а «каличным» PHP, наверное, только неосиляторам кажется :) Язык, как язык. Далёк от идеала, но в этом смысле совершенно идентичен Perl'у, Python'у или Ruby. Есть свои плюсы, есть свои минусы... Сравнивать с Java/Scala/JS уже в лоб нельзя, отчасти пересекающиеся, но и в немалой степени разные подходы.

KRoN73 ★★★★★
()
Ответ на: комментарий от Drolyk

ну не все же пишут форумы
бывают и огромные проекты

Zhopin
()
Ответ на: комментарий от KRoN73

На этом недоразумени тебя удержала набитая рука, а не композер. Старый ты слишком, чтоб на незнакомой платформе быть таким же эффективным.

anonymous
()
Ответ на: комментарий от xtraeft

fb и vk выбирают php, чем мы хуже?

Они его не выбирали, случайно начали на нём гогнокодить. А потом, с тоннами продуктового гогнокода, стало проблематично от него отказаться и переходить на что-то другое.

mashina ★★★★★
()
Ответ на: комментарий от mashina

Они его не выбирали, случайно начали на нём гогнокодить. А потом, с тоннами продуктового гогнокода, стало проблематично от него отказаться и переходить на что-то другое.

это ведь только твои выдумки не связанные с реальностью. PHP устраивает разработчиков и переходить на что-то «более лучшее» обычно нет смысла (если конечно не надо побольше срубить бабла от заказчика/работодателя на начальную разработку, доработку и поддержку. тут конечно нужна Java и тд). а быдлокодить можно на любом языке, более лучшие языки этому в равной степени подвержены. в итоге смысла писать сайты не на PHP смысла очень мало и инструмент со своей задачей справляется.

tommy ★★★★★
()
Ответ на: комментарий от xtraeft

fb и vk выбирают php, чем мы хуже?

FB выбирает Hack, у VK тоже свой диалект. А у тебя обычный PHP - уж сам суди, чем именно ты хуже.

tailgunner ★★★★★
()

Это как свидетельство того, что Zend Framework лучше переписывать на с++11x?

Woofywoof
()
Ответ на: комментарий от tommy

это ведь только твои выдумки не связанные с реальностью. PHP устраивает разработчиков и переходить на что-то «более лучшее» обычно нет смысла

Это только реалии хайлоада. Их всё это настолько не устраивает, что уже и не знают как ещё извратиться с этим дерьмом - пишут свои компиляторы неких диалектов пыха, приглашают к себе работать апологетов других ЯП и т.п. Правда, в основном это касается fb, у vk столько бабла не будет.

если конечно не надо побольше срубить бабла от заказчика/работодателя на начальную разработку, доработку и поддержку. тут конечно нужна Java и тд

Отлично сравнил свои гогнокодерские будни аутсорсера с крупным веб сервисом, которому с подводной лодки никуда не убежать.

а быдлокодить можно на любом языке, более лучшие языки этому в равной степени подвержены.

Это если специально заняться целью нагогнокодить. Но разработчики такой целью не озадачиваются, делают это от отсутствия ума и/или опыта. А сделать нормально поддерживаемое решение можно везде с сильно разной сепенью успешности.

Языки и средства, где это делать можно лучше и проще, привлекают к себе значильно больше квалифицированных и вменаемых людей, а упоротые и тупые идут где кажется что отработать свою смену можно просто ~копипастой в полусознательном состоянии.

в итоге смысла писать сайты не на PHP смысла очень мало и инструмент со своей задачей справляется.

почти верно, только нужно так

смысла писать сайты пыхерам не на PHP очень мало, т.к. они всё равно что-то большее не осилят

mashina ★★★★★
()
Ответ на: комментарий от mashina

Правда, в основном это касается fb, у vk столько бабла не будет.

у vk очень хорошо всё спроектировано, они просто повысили скорость и надежность создав свой вариант PHP. vk вообще совершеннее сеть, несмотря на некоторые детали (где FB удобнее) которым разработчики и руководство важности не придаёт.

с крупным веб сервисом, которому с подводной лодки никуда не убежать.

ну конечно выгодно присосаться к проекту, усложнить его и наслаждаться. или просто написать всё на PHP - что быстрее изначально и проще в дальнейшем для доработки.

tommy ★★★★★
()
Ответ на: комментарий от tailgunner

Расскажи это FB.

PHP как язык (и идея) и PHP как конкретная реализация от php.net - это не вполне равные вещи.

tommy ★★★★★
()
Ответ на: комментарий от tommy

Идея подымать все окружение на каждый запрос — идиотская. Так же как и поддержка юникода с ручным закатыванием солнца. Аппсервера? Не, макаки, о таком не слышали.

anonymous
()
Ответ на: комментарий от SDSWanderer

Но я хотел услышать про преимущества PHP.

а я о РНР и говорил ;)

За этим механизмом будущее не только асинхронного, но и многопоточного программирования

я, конечно, тоже вижу тенденцию скатывания этого сранного мира в сранное говно, но всё же надеюсь на лучшее

A PHP...

использует нативные pthreads.

PHP изначально задумывался как Perl для неосиляторов

все эти языки задумывались для неосиляторов машинных кодов.

Ford_Focus ★★★★★
()
Ответ на: комментарий от mashina

ну тот же твитор размерами не меньше. однако они нашли причины уйти с ruby на java. пользователи PHP пока таких причин не находят.

Ford_Focus ★★★★★
()
Ответ на: комментарий от tommy

PHP как язык (и идея) и PHP как конкретная реализация от php.net - это не вполне равные вещи.

А Hack как язык - это вещь, не вполне равная первым двум.

tailgunner ★★★★★
()
Ответ на: комментарий от Ford_Focus

ну тот же твитор размерами не меньше.

У них кода сильно меньше было.

anonymous
()
Ответ на: комментарий от anonymous

Идея подымать все окружение на каждый запрос — идиотская

спорно.

Аппсервера?

это на данном этапе не имеет смысла, так как не приносит ничего существенного в профит.

tommy ★★★★★
()
Ответ на: комментарий от tailgunner

очень странно что PHP по твоей теории не имеет права иметь различные реализации и иметь развитие вне изначального проекта.

tommy ★★★★★
()
Ответ на: комментарий от SDSWanderer

PHP изначально задумывался как Perl для неосиляторов, так что по поводу Perl даже и говорить нечего.

и это глупости. Perl просто был фактически непригоден (по факту) для работы высоконагруженных сайтов (их вынуждены были срочно переписывать или переходить на иные движки на иных технологиях), а простенький PHP интерпретатор легко справлялся даже с наспех набыдлокоденными движками сайтов и форумов. плюс написание кода на Perl не особо похоже на программирование, несмотря на некоторую привлекательность этого инструмента.

tommy ★★★★★
()
Ответ на: комментарий от tommy

очень странно что PHP по твоей теории не имеет права иметь различные реализации

Это очень странное понимание того, что я сказал. Впрочем... наверняка для среднего похаписта Hack - тот же похапе. Потому что похапист есть похапист.

tailgunner ★★★★★
()

В новости про Perl 5.20, пыхомакаки гадостей не писали, поэтому я тоже ничего плохого говорить не буду. Просто помните, что за вами наблюдают.

fero ★★★★
()
Ответ на: комментарий от anonymous

Идея подымать все окружение на каждый запрос — идиотская.

Возможно. Но кто заставляет осуществлять эту идею? Гуглим 'php server'.

Не, макаки, о таком не слышали.

annonymous ★★
()
Ответ на: комментарий от tommy

спорно.

Personal Home Pages можно отдавать и через cgi, да.

это на данном этапе не имеет смысла, так как не приносит ничего существенного в профит.

А вот это окончательно выдает твою специализацию по страничкам-визиткам.

anonymous
()
Ответ на: комментарий от annonymous

Гуглим 'php server'.

И получаем тонну нерелевантного говна, да. Кстати вы с томмибоем определитесь, нужен аппсервер или не нужен.

anonymous
()
Ответ на: комментарий от annonymous

И да, любая макака знает, что php течет как сучка ядерной весной, поэтому любые попытки реализовать долгоживущие процессы обречены на провал. Плюс отсутствие слабых ссылок.

anonymous
()
Ответ на: комментарий от SDSWanderer

в питоне

супер грамотно спроектированный синтаксис

Я правильно понял эту фразу? Синтаксис, зависящий от отступов (привет Фортрану) объявляется суперграмотным???

hobbit ★★★★★
()
Ответ на: комментарий от swwwfactory

отстань ты уже со своим эрлангом, все уже поняли, что ты его используешь ;-)

anonymous
()
Ответ на: комментарий от hobbit

Синтаксис, зависящий от отступов (привет Фортрану)

ты либо на старом Fortran не писал, либо на Python. Если уж хочешь передавать приветы - передай привет Occam.

tailgunner ★★★★★
()
Ответ на: комментарий от hobbit

Синтаксис, зависящий от отступов (привет Фортрану) объявляется суперграмотным???

У меня 13 лет назад была тоже неадекватная реакция на отступы. Однако сейчас за уши не оттащишь.

anonymous
()
Ответ на: комментарий от anonymous

Хм, ну не везде же быстрей. На деревьях вон, почти на порядок отстаёт. Ну и такие бенчмарки не очень то и показательны ведь. Вот, например, этот: http://benchmarksgame.alioth.debian.org/u32/performance.php?test=fasta

match a random number against those cumulative probabilities to select each nucleotide (use linear search or binary search)

версия с PHP: http://benchmarksgame.alioth.debian.org/u64q/program.php?test=fasta&lang=...

function makeRandomFasta2($n) {
   $width = 60;
   $lines = (int) ($n / $width);
   $pick = "";
   $randoms = array_fill(0, $width, 0.0);
   global $last;

   // full lines

   for ($i = 0; $i < $lines; ++$i) {
      $pick = "";
      gen_random($last, $randoms);
      $j = 0;
      foreach ($randoms as $r) {
         if($r<0.302954942668){
            $pick.='a';
         }elseif($r<0.5009432431601){
            $pick.='c';
         }elseif($r<0.6984905497992){
            $pick.='g';
         }else{
            $pick.='t';
         }
      }
      echo $pick."\n";
   }

   // last, partial line

   $w = $n % $width;
   if ($w !== 0) {
      $pick = "";
      $randoms = array_fill(0, $w, 0.0);
      gen_random($last, $randoms);
      $j = 0;
      foreach ($randoms as $r) {
         if($r<0.302954942668){
            $pick.='a';
         }elseif($r<0.5009432431601){
            $pick.='c';
         }elseif($r<0.6984905497992){
            $pick.='g';
         }else{
            $pick.='t';
         }
      }
      echo $pick."\n";
   }
}
      
Я PHP плохо понимаю, не подскажите какой тут поиск применили - линейный или двоичный?
function makeRandomFasta3(&$genelist, $n) {
   $width = 60;
   $lines = (int) ($n / $width);
   $pick = "";
   $randoms = array_fill(0, $width, 0.0);
   global $last;
   // full lines

   for ($i = 0; $i < $lines; ++$i) {
      $pick = "";
      gen_random($last, $randoms);
      $j = 0;
      foreach ($randoms as $r) {
         $pick.=$genelist[(int)($r*100)];
      }
      echo $pick."\n";
   }
   // last, partial line

   $w = $n % $width;
   if ($w !== 0) {
      $pick = "";
      $randoms = array_fill(0, $w, 0.0);
      gen_random($last, $randoms);
      $j = 0;
     foreach ($randoms as $r) {
        $pick.=$genelist[(int)($r*100)];
     }
     echo $pick."\n";
   }
}
а здесь?

qweqwe
()
Ответ на: комментарий от Ford_Focus

(навскидку) строка $lines = (int) ($n / $width); намекает на двоичный поиск.

нет же :) поиск в первом случае идет тут:

 foreach ($randoms as $r) {
         if($r<0.302954942668){
            $pick.='a';
         }elseif($r<0.5009432431601){
            $pick.='c';
         }elseif($r<0.6984905497992){
            $pick.='g';
         }else{
            $pick.='t';
         }
      }
еще можно выдать за линейный поиск с ручным(!) подсчетом сумм и расстановкой условий вместо итеративного обхода.

во втором:

      foreach ($randoms as $r) {
         $pick.=$genelist[(int)($r*100)];
      }
уже откровенный чит с индексацией

qweqwe
()
Ответ на: комментарий от anonymous

> И да, любая макака знает, что php течет как сучка ядерной весной

Эта макака сильно отстала от жизни. Давно поправили лики. А аппсервер нужен там, где он нужен. Очевидно же.

annonymous ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.