В чем смысл Rust, который принуждает программиста что-то там проверять, следовать каким-то владениям? Зачем Rust нужен?

  • TheAnonymous
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Кстати вот у жабки строки не нуль-терминированные, и substring раньше работало за O(1) без копирования, но начиная с какой-то версии от этого отказались (я так понимаю, решили, что много памяти жрёт, когда маленькие подстроки держат буферы от уже несуществующих больших строк), и сейчас substring всегда копирует буфер. «std::string имеет часть этих преимуществ, но всё равно заставляет нулль-терминировать буфер» так у неё и бесплатный c_str() имеется

    • kevlarbeaver
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

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

      • TheAnonymous
        link
        fedilink
        arrow-up
        0
        ·
        1 year ago

        «было сделано копирование в отличии от жабы» Вот это самый прикол. При том, что как раз в жабе заявляется дроч на обратную совместимость и WORA, вот так поменяли поведение в одной из самых базовых вещей. На днях на лоре тред был про шестую жабу, там ещё Dimez писал, что у него где-то на каком-то проде производительность падала при переходе на java7/8 относительно java6. https://www.linux.org.ru/forum/general/17940910?cid=17941339

    • mittorn
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      Имеется, но ради этого c_str оно должно постоянно нулль-терминированную строку держать