1. Куча / Говнокод #26632

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Срочно нужна помощь с засылкой на хабр!
    
    Желательно перед этим почитать от того, что не пропустит анальная модерация и сектанты.
    
    Предложения так же жду в комментах. По тексту и в целом.

    https://tsar1997.blogspot.com/2020/05/blog-post_54.html

    Исходник пасты - просьба кидать патчи. Позже зашлю на хабр.

    https://pastebin.com/raw/haeHPx89

    Запостил: 3.14159265, 03 Мая 2020

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

    • >При меньших трудозатратах Rust генерирует меньше ассемблера. 
      
      Тут автор путается в показаниях. То меньше ассемблера ничего не значит, то уже значит.
      
      
      >В декабре 2019 Rust превосходил по производительности C++ согласно результатам Benchmarks Game.
      
      Даже знаю почему - это сделал я. Я позволил расту что-то там превосходить. Вот ведь какая незадача. 
      И даже расскажу как это было. Я пришел и полностью уничтожил раст. 
      После адепты раста подсуетились, поменяли задним числом правила и выпилили и моё и множество других C++-решений.
      
      
      >Но на таких синтетических бенчмарках языки будут раз за разом обходить друг друга. Я бы не отказался посмотреть нормальные бенчмарки.
      
      Никакого обходить не было и не будет никогда. Хорошо, я сыграю в эту игру, снова.
      
      
      >К счастью,
      
      К сожалению. Это не более чем помойка, как и любой пакетный менеджер. 
      Ещё не уровень leftpad, но уже скоро.
      
      >у языка Rust есть пакетный менеджер cargo,
      
      У C++ их десять штук. 
      
      >который позволяет один раз сгенерировать объявления и поделиться ими со всем миром.
      
      Это ничего не значит. Необходимости писать и обновлять обёртки это никак отменяет.
      
      >Как вы понимаете, люди делятся не только сырыми объявлениями, но и безопасными и идиоматичными обёртками.
      
      Опять же, рядовые лозунги. На каком основании они безопасны и идиоматичны? Это как с actix-web? К тому же
      
      >На 2020 год в реестре пакетов crates.io находится около 40 000 крейтов.
      
      99% из которого мусор, либо огрызки других либ. Сколько там библиотек уровня си?
      
      >Пример с flate2 примечателен тем, что в начале своего существования этот крейт использовал сишную библиотеку miniz, написанную на C, но со временем сообщество переписало сишный код на Rust. И flate2 стал работать быстрее.
      
      Это всё нужно знать о сообществе. 
      От сишных либ он так и не избавился. 
      Ссылок на бенчмарки нам не предоставлено. 
      Уровень переписали MINIz - это сильно. Всё переписали свелось к банальной перепасте 1в1.
      Ответить
    • >Rust предотвращает ещё на этапе компиляции


      Это враньё. Ничего раст не предотвращает - это сказки для бедных. Раст это такой примитивный язык с прикрученным борроу-чекером. Он тоже крайне примитивный.

      Может он только в рамках текущего контекста найти все алиасы. Причём он их даже не ищет. Каждый адепт этого языка обязан руками описывать все связи между алиасами. Там в некоторых примитивных случаях есть расстановка по умолчанию, но это не более чем расстановка. Это никак не выводится и если поведение отличается от дефолтного, пусть и примитивно - руками писать нужно.


      И весь борроу-чекер сводится к подсчёту ссылок в текущем контексте. Если ссылка одна - объект можно мутировать. Если более одной - нет.

      Более ничего этот супер-язык не умеет. Всё остальное, что вам рассказывают и показывают - фокусы. Которые не работают в рамках языка. Они работают лишь в рамках api, примитивного api данного стандартной библиотекой. И это всё api, о чудо, построено на хаках.


      Таким образом никаких гарантий раст не даёт. Он что-то даёт только в рамках примитивного api с примитивными же возможностями. Даже для своей stdlib он никаких гарантий не даёт.


      >Но особенностью Rust является возможность разграничения кода на безопасный и потенциально опасный с последующей инкапсуляцией последнего. А если на текущем уровне гарантировать корректность семантики не удаётся, то unsafe надо делегировать вызывающему коду.


      Это враньё. Любой язык позволяет разграничить безопасный и опасный код. Последователь данного учения врёт. Единственное, что работает для раста - это возможность ЯВНО разграничить.

      Но это, как можно догадаться, полная чушь. Потому как если код системный - там будет unsafe через unsafe как в stdlib раста. Причём нужно понимать, что stdlib раста - это тормозное, примитивное поделие. Оно зависит от libc на си, от аллокатора на си.

      Основного системного хардкора там даже нет. Там ничего нет. Но не смотря на это - unsafe через unsafe. Такие дела.
      Ответить
    • Погоди, это твой блох?

      А оригинальный superhackkiller1997 тоже ты?
      Ответить
      • показать все, что скрытоvanished
        Ответить
        • Я помню, что у superhackkiller1997'а была математическая жирнота: он отрицал существование парабол, синусоид и прочих кривых, за исключением дуг окружности. Такой текст могут выдавать либо ученики начальной школы, либо, наоборот, математики, когда хотят скрыть от окружающих, что знают математику.

          Царёв обладает учёной степенью к. т. н. и вкалывает доцентом.

          У кого на «Говнокоде» математический никнейм?
          Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • показать все, что скрытоvanished
        Ответить
      • Я знаю, что собаководы конституцией называют телосложение и прочие внешние признаки. А что такое «поправки в телосложение»?
        Ответить
        • Собакам обрубают уши, хвост и хуй.

          Вот уёбки.
          Ответить
          • Изверги!
            Ответить
          • показать все, что скрытоvanished
            Ответить
          • показать все, что скрытоvanished
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • С Серпуховско-Тимирязевской?
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • У нас иногда называют по цветам. Но это ненадёжно.

                    Во-первых, раньше были схемы с произвольной палитрой. Реальный пример:
                    http://metro.ru/f/1/map/metro.ru-1977map-big4.jpg

                    Во-вторых, линий становится столько, что им тяжело давать различимые цвета. На МЦД уже появились линии «цвета физалиса», «цвета фуксии» и «цвета бедра испуганной нимфы».

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

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

                    Каховская линия раньше не имела номера, потому что была частью Горьковско-Замоскворецкой линии. Теперь она станет частью Большой кольцевой, поэтому снова номер потеряет.

                    Ещё какая-то путаница с ненужными линиями, которые построили в районе Делового центра. Была стройная схема, потом взяли и всё запутали.
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                    • > Реальный пример
                      Три пересекающихся ветки в оттенках зелёного. Люди с дальтонизмом очень рады.
                      Ответить
                      • Монохроматы вообще в восторге.

                        Слепые в экстазе.

                        Слепоглухонемые бьются в блаженной истерике лбом об пол.

                        Слепоглухонемые паралитики от счастья надудонили полные штанишшки.
                        Ответить
                    • > делового центра

                      Это где одну станцию расшарили на 2 ветки и надо внимательно смотреть куда следующий поезд пойдёт?
                      Ответить
                    • P.S. Баги в современном проектировании:

                      1. Не придумали, как соединить Калининскую линию с Солнцевским отрезком.

                      2. Не придумали, как соединить Ярославское направление железной дороги с Павелецким. Сейчас МЦД-5 рисуют в виде двух несвязанных отрезков.

                      3. Не придумали, как соединить северную и восточную части Северо-Восточной автомобильной хорды. Для соединения нужно либо вырубать Лосиный Остров (но тогда экологи будут против), либо нагружать городские улицы. Я вообще не понимаю, нафиг нужно это транзитное шоссе в черте города, когда есть МКАД.

                      *****

                      Ещё баг: на станции «Динамо» отсутствует пересадка на Большую кольцевую линию; на станции «Авиамоторная» отсутствует пересадка на Некрасовскую линию. Плохая тенденция: метростроители могут войти во вкус и продолжить строить новые линии без пересадок.

                      *****

                      И ещё баг: не придумали, куда вести Некрасовскую линию после Лефортова. Есть вероятность, что поезда временно пустят по Большой кольцевой, как это уже сделали с Солнцевским отрезком, а потом придётся Солнцевский отрезок соединять не с Калининской линией, а с Некрасовской.
                      Ответить
                  • Видел, какой багор схема Лондонского метрополитена?

                    У них Северная линия, во-первых, находится не на севере, а проходит через весь город с севера на юг. Во-вторых, она в центре разделяется на две линии, а потом снова сходится в одну, а потом от неё появляются отростки.
                    Ответить
        • показать все, что скрытоvanished
          Ответить
      • Поправки нинужны.

        Конституция тем более.
        Ответить
    • Че вы сретесь, шо то хуйня шо это хуйня
      Ответить
    • Нормальные люди участников таких споров нахуй посылают и кодят на node.js
      Ответить

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