1. JavaScript / Говнокод #25571

    0

    1. 1
    2. 2
    https://habr.com/ru/post/449368/
    Ко-ко-ко-ко-ко-кой багор )))

    Запостил: KJlueHTcKuu_nemyx, 25 Апреля 2019

    Комментарии (56) RSS

    • Ёп твою...
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Верно, но и C++ будет отвергнут. Программисты станут кодить на языке тела.
        Ответить
      • Здравия желаю! Вам выписан штраф в размере 1000 (одной тысячи) рублей по статье 20.1 КоАП РФ за нецензурную брань в общественном месте. Оплатить штраф вы можете в любом отделении «Сбербанка» с восьми утра до девяти утра по чётным четвергам.
        Ответить
      • >Через 5 лет JS станет сложнее для понимания чем С++
        >Он будет как С++ только очень хуевый

        Я ещё джва года назад это ванговал.
        Ответить
    • - Проснитесь, у вас абстракция протекла!
      - А я и нProgram halted due to out of memory exception
      Ответить
    • Висячие указатели? В моем js?
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • > память кончица
        Да и хуй с ней, если честно. По крайней мере копирование предсказуемо - если я выбираю из гигабайтной строки стометровые куски, я ожидаю что это будет жрать дохуя памяти.

        Мне больше нравится схема с явными string (новая строка) и string_ref (ссылка на кусок существующей строки). И лишних копирований нету и бесполезное говно в памяти не копится.
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • Х.з., я бы и для них оставил тупое копирование. Ибо "мне не хватило памяти потому что я сейчас обрабатываю дохуя данных" воспринимается интуитивнее чем "мне не хватило памяти потому что я час назад обрабатывал дохуя данных от которых осталась пара строчек".

            А ref версию всегда можно навернуть поверх обычной. Для тех, кому это реально надо.
            Ответить
        • >Мне больше нравится схема с явными string (новая строка) и string_ref (ссылка на кусок существующей строки).

          Так все в яве и наслаждались O(1), а при необходимости явно писали new String (новая строка).
          Пока светлые умы не решили починить обезьянам «утечки».
          Ответить
      • >ну а что делть? вот есть у тебя строка на гигабайт и я 20 раз взял у нее подстроку на 100 мегабайт

        Это ещё в 7й или 8й версии "починили". Теперь trim работает не за няшные O(1), а за O(N).
        А что делать?
        В случае 100-мегабайтных строк несложно написать свою реализацию CharSequence c ожидаемым поведением.

        >а в стате много воды и петросянства ненужново совершенно
        habr.com — дальше не читал.
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • Да не посмеиваются они. Просто wtfов меньше, в силу большего понимания.

            Вот, те же проблемы в языках с прямым управлением памятью:
            http://govnokod.ru/14458#comment214519

            Потому кстати у крестухов аллергия от одного слова КУЧА.
            На стеке, всё на стеке, лишь бы malloc не тупил и не отдавал null.
            Ответить
      • >ну а что делть? вот есть у тебя строка на гигабайт

        Ошибка уже здесь.
        Строки из-за своего внутреннего устройства чисто алгоритмически не годятся для мутации гигантских объёмов данных. Там же везде O(N) и копирование вылазит. Например та же конкатенация.

        В конечном итоге мы придём к старым-добрым лоу-левел технологиям постраничной адресации в 4k/2Mb. И обёртке в виде CharSequence & Appendable.

        Выделяем память chunkами размером в страницу и наслаждаемся O(1) substring, append и малой перепитушнёй размером не больше двух страниц.
        Ответить

    Добавить комментарий