The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Dropbox прекращает разработку Pyston. Опубликован финальный ..., opennews (??), 05-Фев-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


66. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 05-Фев-17, 20:08 
В PHP важна производительность. В 99% школьных лаб не нужна. Вот вся разница.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

80. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +1 +/
Сообщение от Аноним (-), 05-Фев-17, 20:55 
> В PHP важна производительность. В 99% школьных лаб не нужна. Вот вся
> разница.

Пых у нас теперь прямо эталон, а пыхпышники, рассуждающие о производительности, производят впечатление знающих и рассудительных людей, а не мартышек в очках и с микроскопами!
Про pypy мартышки уже забыли, да?
https://blog.famzah.net/2016/02/09/cpp-vs-python-vs-perl-vs-.../

Ответить | Правка | Наверх | Cообщить модератору

88. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 05-Фев-17, 21:44 
> The benchmarks here do not try to be complete, as they are showing the performance
> of the languages in one aspect, and mainly: loops, dynamic arrays with numbers,
> basic math operations.

Это первое. Второе - я не рассуждаю о производительности вообще. Я лишь заявил, что для сайтов она имеет вполне определенное значение. Третье - в тесте php7 есть много мест, которые реализованы абсолютно не оптимально. Если требуется производительность, я бы реализовал всё иначе. Используется ли приведенный подход среднестатистически? Я не знаю и сомневаюсь. Ничего в пользу этого довода там не приведено. А значит и заявлять что он медленнее PyPy даже для представленных задач - неверно.

Ответить | Правка | Наверх | Cообщить модератору

89. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 05-Фев-17, 21:55 
Вот посмотрите сами, на какой код Вы ссылаетесь:
> $j = (int)(($m*$m - 3) / 2);
> $s[$j] = 0;
> while ($j < $half) {
>     $s[$j] = 0;
>     $j += $m;
> }

Ничего не смущает?

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

101. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 06-Фев-17, 06:54 
Только #$@%^ будет сравнивать ЯП на основе одной числодробилки. Где XS-версия для Perl?! И еще зовет себя программистом... А другие пограммисты ему верят и распространяют эту #$%$^.
Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

116. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +2 +/
Сообщение от Аноним (-), 06-Фев-17, 16:01 
> Только #$@%^ будет сравнивать ЯП на основе одной числодробилки. Где XS-версия для
> Perl?! И еще зовет себя программистом... А другие пограммисты ему верят
> и распространяют эту #$%$^.

О, как у пыхапистов бомбануло. Кстати, как назвать тех, кто сравнивает вообще без всяких числодробилок?
Вообще, пыхописты, рассуждающие о производительности, смешны. Пых даже в своей нише хорошо так сливает:
https://www.techempower.com/benchmarks/
https://www.techempower.com/benchmarks/#section=code&hw=ph&t...


Ответить | Правка | Наверх | Cообщить модератору

117. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  –2 +/
Сообщение от Anonim (??), 06-Фев-17, 16:26 
Сливаете непроверенные источники ради разведения холивара, доверия вам нет.
Ответить | Правка | Наверх | Cообщить модератору

118. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +4 +/
Сообщение от Аноним (-), 06-Фев-17, 17:50 
> Сливаете непроверенные источники ради разведения холивара, доверия вам нет.

Зато голословные умствования анонима насчет производительности PHP - отличный и авторитетный источник, ага. Этож анонимЪ! Понимать надожЪ!

И конечно же techempower «непроверенный».
Подумаешь, сорцы, описания и т.д. есть
https://github.com/TechEmpower/FrameworkBenchmarks/
https://www.techempower.com/benchmarks/#section=code
http://frameworkbenchmarks.readthedocs.org/
ведь если пых там не побеждает, значит все враки и холивары. Удобная позиция, спору нет.

Ответить | Правка | Наверх | Cообщить модератору

123. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  –2 +/
Сообщение от Аноним (-), 07-Фев-17, 10:44 
Успокойтесь. Я оценил Ваш уровень компетентности по первой Вашей ссылке:
> Про pypy мартышки уже забыли, да?
> https://blog.famzah.net/2016/02/09/cpp-vs-python-vs-perl-vs-.../

Мой вердикт - там фигня, а не тесты. Хотите поспорить, давайте приводите свои аргументы, а я приведу свои.
Анализировать другие кучи ссылок, которые Вы наваливаете в каждом комментарии, я не собираюсь.

Ответить | Правка | Наверх | Cообщить модератору

127. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +2 +/
Сообщение от Аноним (-), 07-Фев-17, 18:22 
> Мой вердикт - там фигня, а не тесты. Хотите поспорить, давайте приводите
> свои аргументы, а я приведу свои.

Спорить с пыхапистоми о производительности? Зачем? Это все равно что обсуждать музыкальное произведение с теми, кто слышал его только в «напеве Рабиновича».

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

Есть универсальные конструкты-обертки, способные вместить любой нужный тип плюс информацию о текущем. В похапе это zval:

https://github.com/php/php-src/blob/master/Zend/zend_types.h...


typedef struct _zval_struct     zval;

typedef union _zend_value {
    zend_long         lval;                /* long value */
    double            dval;                /* double value */
    zend_refcounted  *counted;
    zend_string      *str;
    zend_array       *arr;
    zend_object      *obj;
    zend_resource    *res;
    zend_reference   *ref;
    zend_ast_ref     *ast;
    zval             *zv;
    void             *ptr;
    zend_class_entry *ce;
    zend_function    *func;
    struct {
        uint32_t w1;
        uint32_t w2;
    } ww;
} zend_value;

struct _zval_struct {
    zend_value        value;            /* value */
    union {
        struct {
            ZEND_ENDIAN_LOHI_4(
                zend_uchar    type,            /* active type */
                zend_uchar    type_flags,
                zend_uchar    const_flags,
                zend_uchar    reserved)        /* call info for EX(This) */
        } v;
        uint32_t type_info;
    } u1;
    union {
        uint32_t     next;                 /* hash collision chain */
        uint32_t     cache_slot;           /* literal cache slot */
        uint32_t     lineno;               /* line number (for ast nodes) */
        uint32_t     num_args;             /* arguments number for EX(This) */
        uint32_t     fe_pos;               /* foreach position */
        uint32_t     fe_iter_idx;          /* foreach iterator index */
        uint32_t     access_flags;         /* class constant access flags */
        uint32_t     property_guard;       /* single property guard */
        uint32_t     extra;                /* not further specified */
    } u2;
};


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

А уж про операции я и объяснять не буду. Пускай пыхпышники и далее считают, что


add REG1, REG2

и

PUSH zval1
PUSH zval2
MOV REG1, [zval1+type_info*magic_val]
CALL [add_op_offset + REG1]
...
здесь еще следует определение типа для второй переменной и ее приведение в случае необходимости.

почти одинаковы по затратам. Ведь они точно знают, что мифические бранчпредикторы давно вышли на уровень ораклов, все кэши отменили за ненадобностью и поэтому ПоХаПе и производительность можно вполне упоминать в одном предложении )
Ответить | Правка | Наверх | Cообщить модератору

126. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 07-Фев-17, 18:11 
>О, как у пыхапистов бомбануло.

Да, бомбануло. Я любитель.
>Кстати, как назвать тех, кто сравнивает вообще без всяких числодробилок?

Без понятия. Я что, похож на гида для туристов?
>Вообще, пыхописты, рассуждающие о производительности, смешны.

Мужик. Протри глаза! Я говорил про Perl. Perl это не PHP. Ты это понимаешь? [когда вынимаешь].

Настоящий программист это человек, который разбирается в том, как устроен компьютер и как устроен, используемый ЯП. Увы, человек показал лишь, что он лишь начинающий пограммист, который даже школу не закончил. Все его выводы сводятся к ОЧЕВИДНЫМ вещам, что рано или поздно 100500 вызовов функций-оберток затормозят работу программы в 100500 раз.

Какой нормальный программист не знает, что PHP медленней C/C++? Какой нормальный программист не знает, что Python или Perl медленней, чем тот же PHP? Почему (см. выше) так происходит ОЧЕВИДНО любому нормальному программисту.

Нет же. Находится выскочка программист, который НЕ осилил программирование, но именует себя программистом, разработчиком. Он не разобрался как работает компьютер. Он не разобрался во ВСЕХ возможностях выбранного ЯП. И именно поэтому он выдает высеры ВМЕСТО настоящих исследований. А настоящее исследование, в случае его примера с простой как дважды два число-дробилкой, является написание тестов с использованием ВСЕХ возможностей ЯП. А именно: взять и написать XS-версию под Perl. Взять и написать версию сишного модуля для Python, для PHP.

Почему люди, которые написали плагины для работы с MySQL написали их на сишке, а не на чистом PHP? Почему не написали их на чистом Python? Почему не написали их на чистом Perl?

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

Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

128. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 07-Фев-17, 18:48 
> Какой нормальный программист
> не знает, что Python или Perl медленней, чем тот же PHP?
> Почему (см. выше) так происходит ОЧЕВИДНО любому нормальному программисту.

А можно поподробнее, что там именно и кому должно быть очевидно?
А то мне вот очевидно, что реализовать интерпретатор с JIT компилятором для строго типизированного, пусть и динамического, языка многим проще, чем для такого же, но слабо типизированного. На что, как бы, намекают pypy, cделанный пусть и не на коленке, но в значительной мере студентами и дающий прирост при использовании джанги или твистев в три-четыре раза.
И рhpшный hhvm, пилящийся кучу лет фейспуком, где уже 16% ускорение вызывает бурю восторга.

Ответить | Правка | Наверх | Cообщить модератору

129. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  –1 +/
Сообщение от Аноним (-), 07-Фев-17, 20:42 
>А можно поподробнее, что там именно и кому должно быть очевидно?

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

Если ты не прочитал книгу, фильм, и т.д., ты имеешь право высказывать свое мнение об этом. Но не имеешь право выдавать это мнение за конструктивную критику/информацию. Твое мнение никого не волнует. Нормальный человек не бросается словами. Профессионал разбирается в деталях и не пустословит, не пишет г#$%^код. И не пытается делать бесмысленные выводы из бесмысленных опытов. Такие опыты, уровня неандертальца, в 21 веке НИКОМУ НЕ НУЖНЫ.

Программист, который пытается высказать критику по поводу какого-либо ЯП обязан досконально знать его особенности. И уметь использовать его слабые и сильные стороны.

Почему-то недопрограммист узнал откуда-то про "-O2". Однако, не узнал про то, что 40% модулей/плагинов для интерпретиерумых ЯП написано на Си. Ради чего? Ну, это сложно, надо разбираться в сишном коде. Лучше пог#$%^кожу. Покажу нубам какие плюсы крутые! Смотрите, я гений! Написал никому ненужный тест и выдаю это за истину (по факту ложь).

>А то мне вот очевидно, что реализовать интерпретатор с JIT компилятором для строго типизированного, пусть и динамического, языка многим проще, чем для такого же, но слабо типизированного.

Окей. Пили. А другие пилят то, что они хотят и могут. Давай ты вместо своих хотелок сделаешь что ты хочешь и докажешь свои домыслы на деле.

>На что, как бы, намекают pypy, cделанный пусть и не на коленке, но в значительной мере студентами и дающий прирост при использовании джанги или твистев в три-четыре раза.

Кто они? Где их доказательства? О ком ты вообще?

>И рhpшный hhvm, пилящийся кучу лет фейспуком, где уже 16% ускорение вызывает бурю восторга.

А это к чему? hhvm решает свой круг задач. Разработчики hhvm четко и ясно объясняют плюсы и минусы. Они не писали hhvm как замену PHP. Они решали свои задачи, делая это как профессионалы.

Восторг лишь у макак, которые НЕ хотят разбираться в деталях. У нормальных программистов взгляд на hhvm точно такой же как на Pyston: есть плюсы, есть минусы, есть круг задач где ЭТО решение катит, и НЕ катит.

Ответить | Правка | Наверх | Cообщить модератору

130. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +2 +/
Сообщение от Аноним (-), 07-Фев-17, 22:15 
>>> не знает, что Python или Perl медленней, чем тот же PHP?
>>> Почему (см. выше) так происходит ОЧЕВИДНО любому нормальному программисту.
>>А можно поподробнее, что там именно и кому должно быть очевидно?
> Если тебя это действительно интересует, то ты берешь и открываешь исходники. Ты
> берешь и читаешь их. Ты берешь и разбираешься в том, в чем якобы ты хочешь быть профи.

Берешь, открываешь исходники чего-то (CPython, Jthon, Rakudo?), читаешь. И сразу становится очевидно, что Perl или Питон медленнее. В общем, эпичное деление на ноль. Да еще и с какими-то совсем левыми передергами про «профи».


> Если ты не прочитал книгу, фильм, и т.д., ты имеешь право высказывать
> свое мнение об этом. Но не имеешь право выдавать это мнение
> за конструктивную критику/информацию. Твое мнение никого не волнует. Нормальный человек
> не бросается словами. Профессионал разбирается в деталях и не пустословит, не
> пишет г#$%^код. И не пытается делать бесмысленные выводы из бесмысленных опытов.
> Такие опыты, уровня неандертальца, в 21 веке НИКОМУ НЕ НУЖНЫ.

Понятно, пруфов не будет, будет балабольство о професиАнализЪме и какие-то отсылки на что-то там.

>>А то мне вот очевидно, что реализовать интерпретатор с JIT компилятором для строго типизированного, пусть и динамического, языка многим проще, чем для такого же, но слабо типизированного.
> Окей. Пили. А другие пилят то, что они хотят и могут. Давай ты вместо своих хотелок сделаешь что ты хочешь и докажешь свои домыслы на деле.

А в огороде бузина! Т.е. ты даже не понял о чем речь, но мнение заимел? Разъясняю на пальцах: перл с питоном имеют строгую типизацию. PHP нет. PyPy - это питоновский JIT компилятор. Причем тут хотелки и домыслы? Мне домысливать особо ничего не надо, я и так в курсе принципов работы как оптимизаторов, так и трассировочных JIT. Любой НОРМАЛЬНЫЙ прорграмист тоже.

>>На что, как бы, намекают pypy, cделанный пусть и не на коленке, но в значительной мере студентами и дающий прирост при использовании джанги или твистев в три-четыре раза.
> Кто они? Где их доказательства? О ком ты вообще?

Опять проблемы с пониманием прочитанного?
Да хотя бы пай-пайщики сами:
http://speed.pypy.org/timeline/#/?exe=1,5&base=2+472&ben=django&env=1&revs=200&equid=off
Ну или https://lincolnloop.com/blog/faster-django-sites-pypy/
ну и самостоятельную проверку никто не отменял, благо это не ракетные технологии.


>>И рhpшный hhvm, пилящийся кучу лет фейспуком, где уже 16% ускорение вызывает бурю восторга.
> А это к чему?

Это все еще о JITах и быстротах с медленностями в целом и о возможностях оптимизации в частности, о НОРМАЛЬНЫЙ программист.

> hhvm решает свой круг задач. Разработчики hhvm четко
> и ясно объясняют плюсы и минусы. Они не писали hhvm как
> замену PHP. Они решали свои задачи, делая это как профессионалы.
> Они не писали hhvm как замену PHP
> замену PHP

смешались в кучу кони, люди ... рукалицо.жпг

Ответить | Правка | Наверх | Cообщить модератору

132. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +1 +/
Сообщение от Аноним (-), 07-Фев-17, 22:35 
>Разъясняю на пальцах: перл с питоном имеют строгую типизацию.

В каком месте? Я даже боюсь узнать правду. Не ужели ты узнал, что оба написаны на Си, который действительно имеет строгую типизацию. Или ты имел ввиду что-то иное?

Давай объясни мне где тут строгая типизация: http://ideone.com/2qNQkm

Дальше даже комментировать не буду. Жду ответа на твой фейл.

Ответить | Правка | Наверх | Cообщить модератору

135. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 08-Фев-17, 03:09 
>>Разъясняю на пальцах: перл с питоном имеют строгую типизацию.
> В каком месте? Я даже боюсь узнать правду. Не ужели ты узнал,
> что оба написаны на Си,

_Реализации_ того же питона есть не только на си, но и на яве или шарпе.
> который действительно имеет строгую типизацию.

Cи и строгая типизация? Понятно.


% cat weak.c && gcc -Wall -Wextra -Wpedantic -std=c99 weak.c -o weak && ./weak
#include <stdio.h>
int main(void) {
    char x = '0';
    struct { int x,y;} mystruct = {0xDEAD0000, 2};
    printf("Hello %d %x"+1, x + 2, *(int*) &mystruct + 0xC0DE);
    return 0;
}
ello 50 deadc0de

> Давай объясни мне где тут строгая типизация: http://ideone.com/2qNQkm

Use strict, Luke. Use warnings, Luke. Use diagnostics, Luke. Не забывай про RTFM
perldoc perlops
> DESCRIPTION
>    In Perl, the operator determines what operation is performed, independent
>    of the type of the operands. For example "$x + $y" is always a numeric
>    addition, and if $x or $y do not contain numbers, an attempt is made to
>    convert them to numbers first.

perldoc -f ioclt
> if OS returns:      then Perl returns:
>                    -1               undefined value
>                     0              string "0 but true"
> The special string "0 but true" is exempt from "Argument "..."
>            isn't numeric" warnings on improper numeric conversions.

https://github.com/Perl/perl5/blob/v5.25.9/numeric.c#L1014


if (s >= send)
    return numtype;
  if (len == 10 && _memEQs(pv, "0 but true")) {

и сила битов пребудет с тобой!

% perl -lwe 'print 0 == "0 but tru";'
Argument "0 but tru" isn't numeric in numeric eq (==) at -e line 1

Ответить | Правка | Наверх | Cообщить модератору

138. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 08-Фев-17, 10:24 
>Cи и строгая типизация? Понятно.

Я зафейлился насчет строгой типизации. Как и ты. Но, я любитель, мне можно. Я исправляюсь:

Итак, мне лично пофиг где какая типизация, пусть археологи и историки определяют, что есть что. Однако, по делу:

C: слабая статическая типизация
Perl: слабая динамическая типизация
Python: сильная динамическая типизация

Если говорить просто, то в сишке все есть число, поэтому приведение типов (слабость типизации) проявляется в том, что ЛЮБОЙ тип можно превратить число. А число есть адрес в памяти. Что в итоге дает доступ к той или иной переменной.

Говоря про Perl, в нем все есть строка, либо число. В зависимости от _контекста_ Perl выбирает, что взять за основу: число или строку.

>Argument "0 but tru" isn't numeric in numeric eq (==) at -e line 1

Что ты этим хотел доказать? Ты хоть понимаешь что это варнинг генерируется в рантайме? А в Python вообще все зашибись: http://ideone.com/uPfqlK

Т.о. чтобы защитить код от подобной ошибки ты должен явно объяснять Perl, что тебе нужно сравнивать числа:

shell> perl -le 'print 0 == 0 + "0 but true"'
shell> 1 # операция валидна

Строка 0 + $string <-- классический хинт/хак для пояснения Perl, что надо все воспринимать как числа.

Аналогично, чтобы пояснить Perl, что все есть строка используется хинт конкатенации: $number_or_string . ""; <-- моментально конвертируем $number_or_string в строку, т.к. дальше 100% будем работать в контексте строковых литералов. Использовать eq/ne вместо ==/!= не охватывает все задачи работы со строками:

shell> perl -le 'use strict; use warnings; my $num = 123; print index $num, "a";'
shell> -1

Упс, Perl не выпленул варнинг, что работаем не со строкой. Ай-ай, надо срочно накатать плаксивое письмо, чтобы добавили варнинг на этот счет! Мало в Perl идиотских варнингов напихали!

>и сила битов пребудет с тобой!

Да-да, что ты хотел сказать? Я в JIT не бум-бум. Ты в Perl не про. А разговор был про то, что кто-то не умеет писать модули на сишке для Perl, Python, PHP.

Ответить | Правка | Наверх | Cообщить модератору

147. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 08-Фев-17, 18:47 
> Говоря про Perl, в нем все есть строка, либо число. В зависимости
> от _контекста_ Perl выбирает, что взять за основу: число или строку.

Тут уже выше упоминали RTFM:

In Perl, the operator determines what operation is performed, independent
    of the type of the operands. For example "$x + $y" is always a numeric
    addition, and if $x or $y do not contain numbers, an attempt is made to
    convert them to numbers first.

    This is in contrast to many other dynamic languages, where the operation
    is determined by the type of the first argument. It also means that Perl
    has two versions of some operators, one for numeric and one for string
    comparison. For example "$x == $y" compares two numbers for equality, and
    "$x eq $y" compares two strings.

Хотя типизация в перловке предмет долголетних споров и про то, что у перла все же сильная типизация, упоминают намного более авторитетные источники, чем анонимы опеннета. Как впрочем и наоборот.


>>Argument "0 but tru" isn't numeric in numeric eq (==) at -e line 1
> Что ты этим хотел доказать? Ты хоть понимаешь что это варнинг генерируется
> в рантайме? А в Python вообще все зашибись: http://ideone.com/uPfqlK

И что? В питоне тоже все генерируется в рантайме. Динамическая типизация, как она есть.

> Т.о. чтобы защитить код от подобной ошибки ты должен явно объяснять Perl,
> что тебе нужно сравнивать числа:
> shell> perl -le 'print 0 == 0 + "0 but true"'
> shell> 1 # операция валидна

Опять же, выше упоминали RTFM вместе со ссылочкой на код. Конкретно "0 but true"  грязный хак на уровне интерпретатора, поэтому приводить его в качестве примера не очень удачная мысль.

> Строка 0 + $string <-- классический хинт/хак для пояснения Perl, что надо
> все воспринимать как числа.

Это не хинт и не хак. Это особенность грамматики/ЯП. Cм.
> In Perl, the operator determines what operation is performed, independent
> of the type of the operands.

===

> shell> perl -le 'use strict; use warnings; my $num = 123; print
> index $num, "a";'
> shell> -1
> Упс, Perl не выпленул варнинг, что работаем не со строкой. Ай-ай, надо
> срочно накатать плаксивое письмо, чтобы добавили варнинг на этот счет! Мало
> в Perl идиотских варнингов напихали!

Это, извините, полиморфизм и не говорит ни о чем. Вроде как даже в хаскеле прокатывает.

ЗЫ: кстати, есть определенное подозрение, что анонимов на опеннете значительно > 2


Ответить | Правка | К родителю #138 | Наверх | Cообщить модератору

153. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 08-Фев-17, 22:27 
>Тут уже выше упоминали RTFM

И что? К чему ты это сказал? Ты вообще понял фразу: In Perl, the operator determines what operation is performed? Давай вместе, оператор. определяет. какая. операция. будет. исполнена. Ты это понял? Да, в Perl есть два оператора сравнения: один для чисел, другой для строк. Что логично, нужно же в кой-то век вызвать strcmp (и его производные). А может и memcmp. Не суть.

>Хотя типизация в перловке предмет долголетних споров и про то, что у перла все же сильная типизация, упоминают намного более авторитетные источники, чем анонимы опеннета. Как впрочем и наоборот.

Мне лично пофиг кто с кем спорит. Сейчас вот кто-то не может ответить по делу, но как лоровское дитя переходит на личности.

>И что? В питоне тоже все генерируется в рантайме. Динамическая типизация, как она есть.

Пруф. Без пруфа это пустословие. Где такое же сообщение для Python? Может чему выучусь, хотя пистон мне до лампочки.

>Опять же, выше упоминали RTFM вместе со ссылочкой на код. Конкретно "0 but true"  грязный хак на уровне интерпретатора, поэтому приводить его в качестве примера не очень удачная мысль.

Пфффф. Мужик просто сделал греп по манам, по исходнику перла, ибо фраза заезженная. Попробуй вместо "0 but true" использовать "дураки на Волге" и эффект не изменится. Пруф выше из RTFM просто фуфло, я оставил это для профи, посмеялись от души, наверное.

>===

Ого. Это оператор? Из PHP? Из Python? Из JavaScript? Да. Ведь, в Perl его нету! Для сравнения строк нужно юзать "eq", чудо.


>Это, извините, полиморфизм и не говорит ни о чем. Вроде как даже в хаскеле прокатывает.

Что?! ПОЛИМОРФИЗМ? В сути динамического приведения типов? Ты серьезно, мээн?

Давай, попытка номер два с пруфами из манов или RTFM, лучше из perldoc, конечно, еще  раз донесите, пожалуйста, в чем именно я ошибъся. Я вас не понял, сударь.

Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

156. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 09-Фев-17, 02:11 
>>> Говоря про Perl, в нем все есть строка, либо число. В зависимости
>>> от _контекста_ Perl выбирает, что взять за основу: число или строку.
>>Тут уже выше упоминали RTFM
> И что? К чему ты это сказал? Ты вообще понял фразу: In
> Perl, the operator determines what operation is performed? Давай вместе, оператор.
> определяет. какая. операция. будет. исполнена. Ты это понял?

Ты не видишь разницу между контекстом и оператором? Оператор не зависит от контекста. Это не хак и не хинт, это так определено в языке. Или ты имел в виду «в контексте оператора»? Тогда причем тут «выбор основы»?


>>Хотя типизация в перловке предмет долголетних споров и про то, что у перла все же сильная типизация, упоминают намного более авторитетные источники, чем анонимы опеннета. Как впрочем и наоборот.
> Мне лично пофиг кто с кем спорит. Сейчас вот кто-то не может
> ответить по делу, но как лоровское дитя переходит на личности.

Чудило, я тоже вроде как из под анона пишу. Где ты переход на личности углядел? В том, что тот же Рандал Шварц, возможно, будет поавторитетнее группы анонимов опеннета?

>>И что? В питоне тоже все генерируется в рантайме. Динамическая типизация, как она есть.
> Пруф. Без пруфа это пустословие. Где такое же сообщение для Python? Может
> чему выучусь, хотя пистон мне до лампочки.

Пруф чего? Того что int не равен строке?


% python -c 'print 1 == "0"'
False
% python -c 'print 0 == ""'  
False
% python -c 'print 0 == "0"'
False

О чем это должно говорить? О слабой типизации питона? Или просто другом подходе?
https://docs.python.org/2/library/stdtypes.html
> Objects of different types, except different numeric types and different string types,
> never compare equal; such objects are ordered consistently but arbitrarily (so that
> sorting a heterogeneous array yields a consistent result).
> Non-identical instances of a class normally compare as non-equal unless the class
> defines the __eq__() method or the __cmp__() method.

Или тебе нужны рантайм сообщения?


% python -c 'print 1+"0"'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str
% python -c 'print int.__cmp__(1,"")'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: int.__cmp__(x,y) requires y to be a 'int', not a 'str'
% python -c 'print str.__eq__("0",2)'
NotImplemented

А теперь фокус:

>>> class X(int):

...     def __add__(self, o): return X(int.__add__(self, int(o)))
...    
...
>>> X(2) + 2 + 3

7
>>> X(2) + 2 + "3"

7
>>> X(2) + 2 + "3d"

Traceback (most recent call last):
  File "<input>", line 1, in <module>
    X(2) + 2 + "3d"
  File "<input>", line 2, in __add__
    def __add__(self, o): return X(int.__add__(self, int(o)))
ValueError: invalid literal for int() with base 10: '3d'
>>>


оператор внезапно зависит от контекста. Это теперь неявное преобразование?
>>Опять же, выше упоминали RTFM вместе со ссылочкой на код. Конкретно "0 but true"  грязный хак на уровне интерпретатора, поэтому приводить его в качестве примера не очень удачная мысль.
> Пфффф. Мужик просто сделал греп по манам, по исходнику перла, ибо фраза
> заезженная. Попробуй вместо "0 but true" использовать "дураки на Волге" и
> эффект не изменится.


% perl -wle 'print 0 == 0 + "дураки на Волге"'
Argument "дураки на Волге" isn't numeric in addition (+) at -e line 1.

>>===
> Ого. Это оператор? Из PHP? Из Python? Из JavaScript? Да. Ведь, в
> Perl его нету! Для сравнения строк нужно юзать "eq", чудо.

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


>>Это, извините, полиморфизм и не говорит ни о чем. Вроде как даже в хаскеле прокатывает.
> Что?! ПОЛИМОРФИЗМ? В сути динамического приведения типов? Ты серьезно, мээн?

Ты путаешь теплое с мягким. Возможность вызвать фунцию с разными типами аргументов и собственно, реализацию.
http://ideone.com/hiNBFn


    #include <iostream>
    using namespace std;
    
    int x(int a) {return a + 3;}
    int x(double a) {return (int)a;}
    
    int main() {
        // your code goes here
        std::cout << "Hello, World!\n" << "x(3):" << x(3) << "\nx(3.0):" << x(3.0);
        return 0;
    }

поэтому и вызов функции в качестве примера ни о чем не говорит.

Ответить | Правка | К родителю #153 | Наверх | Cообщить модератору

160. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 10-Фев-17, 01:07 
>Или ты имел в виду «в контексте оператора»? Тогда причем тут «выбор основы»?

В контексте оператора естевенно. Ведь, если подумать, кроме операторов ничего нет. Присвоить значение -- используем оператор присваивания. Сравнение -- используем оператор сравнения. Обратиться к n-элементу массива -- используем оператор доступа. И тут есть другой ньюанс смешивание операторов в одной конструкции. Что будет тут тебе известно:

$array[1] = <STDIN>;

А тут, ты знаешь, что будет? Давай без помощи use warnings; Т.к. в других ситуациях он тебя и не спасет:

@array[1] = <STDIN>;

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

А есть контексты списка, скаляра, никакого значения? Увы, ты пропустил момент, что число в перле это тоже адрес чего-либо, а строка она и в Африке строка. Пример 0 == "0 but true" показывает как Perl хитрописан, ведь если ты не прочитаешь исходники, ты не поймешь, почему тут все валидно:

#!/usr/bin/perl

use strict;
use warnings;

if (0 == "0 but true") {
  print "but true\n";
}

Оцениваем: http://ideone.com/iViUX3

А тут, все иначе:

#!/usr/bin/perl

use strict;
use warnings;

if (0 == "устал повотрять 100500 раз, что надо читать копипасты") {
  print "but true\n";
}

Оцениваем (увы, ideone имеет свою патченную версию перл, где варнинга нет, а должен): http://ideone.com/Si7wM2

>О чем это должно говорить? О слабой типизации питона? Или просто другом подходе?

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

Кстати, зачем наезжать на меня, когда очевидно, что в одних и тех же конструкция ЯП ведут себя по-разному (что логично):

shell> # перл любит выплевывать пустую строку в случае "False", делаем это за него
shell> perl -le 'print ((1 == "0") ? "true" : "false");'
false
shell> perl -le 'print ((1 == "") ? "true" : "false");'
false
shell> perl -le 'print ((0 == "0") ? "true" : "false");'
true

>Или тебе нужны рантайм сообщения?

Ох. Мне нужны были сообщения какие выплевывает перл:

Argument "abc" isn't numeric in numeric eq (==) at abc.pl line 6.

В райнтайме, а не в момент компиляции, ибо для Perl ошибка выше не фатальная: типы он приведет кое-как и код, кое-как, отработает. Ну, ты привел доказательства, меня они устраивают. Ок, спасибо.

>оператор внезапно зависит от контекста. Это теперь неявное преобразование?

Контекста чего? Я в Python не бум-бум, но давай читать вместе:

ValueError: invalid literal for int() with base 10: '3d'

Давай смотреть, что будет и в перле одновременно:

shell> perl -wle 'print int("3a")'
Argument "3a" isn't numeric in int at -e line 1.
3

Ну, как видишь, работает все примерно одинаково. Дальше что? Я, как не про по питону, надеялся увидеть сильную типизацию, ну, чтобы на этапе компиляции все валилось, а че-то примеры походу неправильно выбраны, поэтому спор заходит в тупик.

В итоге, википедия дает все ответы:

Python uses duck typing and has typed objects but untyped variable names. Type constraints are not checked at compile time; rather, operations on an object may fail, signifying that the given object is not of a suitable type. Despite being dynamically typed, Python is strongly typed, forbidding operations that are not well-defined (for example, adding a number to a string) rather than silently attempting to make sense of them.

https://en.wikipedia.org/wiki/Python_%28programming_lan...

Чтение https://en.wikipedia.org/wiki/Duck_typing дает все ответы. Да, я зафейлился, не вникся в детали ЯП и оказался не прав: мои надежды насчет строгой типизации не оправдались. И это хорошо. Это еще раз подтвердило правильность моих мыслей, что профессиональный программист ДОСКАНАЛЬНО изучает ЯП, который он хочет критиковать.

Возможно, ты это знал и подловил меня. А, возможно, и сам не знал. Ибо спорим мы на этот счет уже трындец много времени.

>using namespace std;

Я в плюсах не бум-бум. Пиши на сишке, пожалуйста :) А лучше вообще закрыть спор или поспорить о чем-то другом.

>int x(double a) {return (int)a;}

Ты же понимаешь, что это платформозависимая конструкция? Почитай про извлечение квадратного корня в Quake III, будет интересно, а может это боян для тебя.

Ответить | Правка | К родителю #156 | Наверх | Cообщить модератору

131. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 07-Фев-17, 22:28 
Основной usecase PHP это: https://www.techempower.com/benchmarks/#section=data-r13&hw=...

Как всегда, пограммист не разобрался в вопросе и сдулся. Даже не стану отвечать почему и почему не так. Учись разбираться сам. Начни с изучения английского.

Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

133. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +1 +/
Сообщение от Аноним (-), 08-Фев-17, 01:21 
> Основной usecase PHP это: https://www.techempower.com/benchmarks/#section=data-r13&hw=...

Вижу дарт, плюсы, го и яву перед пыхом, с хорошим таким отрывом.
> Как всегда, пограммист не разобрался в вопросе и сдулся. Даже не стану
> отвечать почему и почему не так. Учись разбираться сам. Начни с
> изучения английского.

Самокритично.


Ответить | Правка | Наверх | Cообщить модератору

142. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 08-Фев-17, 15:26 
>Вижу дарт, плюсы, го и яву перед пыхом, с хорошим таким отрывом.

А чего ты ожидал?
>Самокритично.

Нет, давай по делу. Скажи, когда ты в последний раз видел серваки на PHP без использования кэша. Кэш, который раздает nginx? Или все сайты только и делают, что сортируют что-то бесконечно. Всем сайтам нужен полноценный ORM, ну, со всякими там фабриками фабрик, создающих фабрики для фабрик?

И вообще, когда ты последний раз писал сам сайт хотя бы... ммм, на плюсах или яве? Именно такие как ты люди поднимали Кинопоиск 2. Нафиг кэшировать страницы, тпа это же ЯВА! Она в 100500 раз быстрее пыха. Пых для школоты. И что? На чем крутится кинопоиск до сих пор? На пыхе!

Ответить | Правка | Наверх | Cообщить модератору

144. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +1 +/
Сообщение от Аноним (-), 08-Фев-17, 15:46 
>>Вижу дарт, плюсы, го и яву перед пыхом, с хорошим таким отрывом.
> А чего ты ожидал?

Лидирующего пыха, конечно же!

> Нет, давай по делу. Скажи, когда ты в последний раз видел серваки
> на PHP без использования кэша. Кэш, который раздает nginx? Или все
> сайты только и делают, что сортируют что-то бесконечно. Всем сайтам нужен
> полноценный ORM, ну, со всякими там фабриками фабрик, создающих фабрики для
> фабрик?

Какие-то невнятные отмазки. То в пыхе важна производительность. То, теперь уже не очень, ведь можно кэшить. Будто кто-то запрещает использовать (микро)кэш с другими фреймворками в других ЯП.

> Нет, давай по делу.
> Именно такие как ты люди поднимали Кинопоиск

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


> На чем крутится кинопоиск до сих пор? На пыхе!

Главная городость пыховцев и вообще, аргУмент!


Ответить | Правка | Наверх | Cообщить модератору

145. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 08-Фев-17, 16:21 
>Какие-то невнятные отмазки. То в пыхе важна производительность.

Отмазки только у тебя. Про производительность я вообще не заикался. Заикался о ней некий недопограммист, который криво написал числодробилку для Perl. И недопрограммисты его поддержали.

>То, теперь уже не очень, ведь можно кэшить. Будто кто-то запрещает использовать (микро)кэш с другими фреймворками в других ЯП.

Ну, наконец-то! До тебя начинает кое-что доходить. Что не все так просто. А?

>Главная городость пыховцев и вообще, аргУмент!

Я любитель. Предпочитаю сишку и перл. На деле задачи решаются с использованием тех технологий, которые ставится решить. И только недопрограммисты будут везде кричать как быстры плюсы. Пофиг. Пиши хоть на ассемблере, твое вшивое мнение никому не интересно. Иди, учись делать отчеты и проводить настоящие исследования, разобравшись сперва что и как устроено. Досконально узнав, что и как устроено.

Ответить | Правка | Наверх | Cообщить модератору

146. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +1 +/
Сообщение от Аноним (-), 08-Фев-17, 18:20 
>> Какие-то невнятные отмазки. То в пыхе важна производительность.
> Отмазки только у тебя. Про производительность я вообще не заикался.

http://www.opennet.ru/openforum/vsluhforumID3/110365.html#66
> В PHP важна производительность.

Перевод стрелок не удался.


>>То, теперь уже не очень, ведь можно кэшить. Будто кто-то запрещает использовать (микро)кэш с другими фреймворками в других ЯП.
> Ну, наконец-то! До тебя начинает кое-что доходить. Что не все так просто.

Все таки деловая Ванга, да?


>>Главная городость пыховцев и вообще, аргУмент!
> Я любитель. Предпочитаю сишку и перл. На деле задачи решаются с использованием
> тех технологий, которые ставится решить. И только недопрограммисты будут везде кричать
> как быстры плюсы. Пофиг. Пиши хоть на ассемблере, твое вшивое мнение
> никому не интересно. Иди, учись делать отчеты и проводить настоящие исследования,
> разобравшись сперва что и как устроено. Досконально узнав, что и как
> устроено.

Опять  уход с темы в сторону, с переходом на личности и вангования о том, кто что знает и умеет? Ничего иного я не ожидал. Пишите еще, шлите открытки в /dev/null и все такое, мы ждем!

Ответить | Правка | Наверх | Cообщить модератору

154. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 08-Фев-17, 22:37 
Анонимов на опеннет много. Каждый отвечает сам за себя. Я ничего не говорил про производительность, кроме критики в адрес малозначимого теста, упомянутого выше.

>Опять  уход с темы в сторону

Я никуда не ухожу. Задавай вопрос по делу. Рассказал о себе и это уже переход на личности? Раскритиковал по делу за откровенно слабо выполненное исследование -- уже переход на личности? Да, я тут вообще самый правильный критикун, остальные не могут не то, что скопипастить верный отрывок из пруфа, так они его копипастять, не читая суть отрывка! Я их за это не поливаю грязью, не опускаю потому что их "пруф" вообще не по делу.

>Пишите еще, шлите открытки в /dev/null и все такое, мы ждем!

ЛОР развалился походу. Вообще не с кем поговорить на IT-темы нормально. Лишь бы трындеть не по делу (это значит не давать пруфов и _ссылок_ откуда они взяты). Лишь бы лулзы ловить.

Вот, держи, смешное видео (БАЯН): https://www.youtube.com/watch?v=iIHS4UlSthY

Ответить | Правка | Наверх | Cообщить модератору

159. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 09-Фев-17, 18:30 
> Анонимов на опеннет много.

Но только ты один в белом? Или с чего ты так усердно педалируешь ссылку на 100500й, бессмысленный и беспощадный, микробенч в недобложике очередного студенташкольника?

>> Опять  уход с темы в сторону
> Я никуда не ухожу. Задавай вопрос по делу.

Еще раз, для тех кто в белом:
>>>>> На чем крутится кинопоиск до сих пор? На пыхе!

Извини, но на аргумент это не тянет, о чем тебе, аккуратно процитировав, сообщили:
>>>> Главная городость пыховцев и вообще, аргУмент!

А теперь твой ответ:
>>> Я любитель. Предпочитаю сишку и перл. На деле задачи решаются с использованием тех технологий, которые ставится решить.
>>> Пиши хоть на ассемблере, твое вшивое мнение никому не интересно.

Если ты не считаешь это уходом с темы, то дальнейшее обсуждение бессмыслено.


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

Насчет критикуна не знаю, а вот дартаньян ты вполне неполохой.


Ответить | Правка | К родителю #154 | Наверх | Cообщить модератору

161. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +/
Сообщение от Аноним (-), 10-Фев-17, 02:10 
>Если ты не считаешь это уходом с темы, то дальнейшее обсуждение бессмыслено.

Шах и мат. ЛОЛ. Завернул зачетно, надо в рамку и на стенку. Ржу не могу. АХАХАХА. Я просил же задать конкретные вопросы. Нет, ты за свое: пытаешься меня в чем-то уличить, как-то унизить и т.д. Так что, да, АХАХАХАА, я, это, ухожу. Бессмыслеца. АХАХАХАА..

Ответить | Правка | К родителю #159 | Наверх | Cообщить модератору

98. "Dropbox прекращает разработку Pyston. Опубликован финальный ..."  +1 +/
Сообщение от Отражение луны (ok), 06-Фев-17, 00:19 
Смешно читать о производительности в сраном синхроне.
Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру