The OpenNET Project / Index page

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

Проект NGINX опубликовал инструментарий для разработки модулей на языке Rust

13.10.2023 10:48

Разработчики проекта NGINX представили инструментарий ngx-rust, позволяющий создавать модули к http-серверу и многопротокольному прокси NGINX на языке программирования Rust. Код ngx-rust распространяется под лицензией Apache 2.0 и пока находится в состоянии бета-версии.

Изначально инструментарий развивался как проект для форсирования разработки Istio-совместимого Service mesh для платформы Kubernetes, работающего поверх NGINX. Продукт не вышел за рамки прототипа и несколько лет находился в стагнации, но опубликованные в процессе создания прототипа примеры привязок были использованы сообществом в сторонних проектах для расширения возможностей NGINX на языке Rust.

Через какое-то время компании F5 потребовалось написание специализированного модуля к NGINX для защиты своих сервисов, в котором хотелось использовать язык Rust для снижения риска ошибок при работе с памятью. Для решения задачи был привлечён автор ngx-rust, которому было поручено разработать новый и улучшенный инструментарий для создания модулей к NGINX на языке Rust.

Инструментарий включает два crate-пакета:

  • nginx-sys - генератор привязок на основе исходных текстов NGINX. Утилита загружает код NGINX и все связанные с ним зависимости, после чего использует bindgen для формирования обвязок над оригинальными функциями (FFI, foreign function interface).
  • ngx - прослойка для обращения к Си-функциям из кода Rust, API и система реэкспорта обвязок, созданных при помощи nginx-sys.


  1. Главная ссылка к новости (https://www.nginx.com/blog/ext...)
  2. OpenNews: Выпуск nginx 1.25.2
  3. OpenNews: Выпуск сервера приложений NGINX Unit 1.31
  4. OpenNews: Выпуск Angie 1.3.0, российского форка Nginx
  5. OpenNews: Уязвимость конфигураций Nginx с некорректными настройками блока alias
  6. OpenNews: Игорь Сысоев ушёл из компаний F5 Network и покинул проект NGINX
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59923-nginx
Ключевые слова: nginx, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (87) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, пох. (?), 10:59, 13/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ну наконец-то - безопастно! Стоп, а когда же сам nginx начнут переписывать, ведь иначе ж наш безопастный модуль будет опастно вызывать поганую сишку?!

     
     
  • 2.4, Sw00p aka Jerom (?), 11:12, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >Продукт не вышел за рамки прототипа и несколько лет находился в стагнации

    угадате, почему? :)

     
     
  • 3.25, zezic (?), 12:02, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +9 +/
    >угадате, почему? :)

    Это всё проказни плюсово-сишного unsafe-лобби! Они тормозят мировой прогресс в угоду своим личным интересам.

     
     
  • 4.51, пох. (?), 13:24, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вон, кнутователь из F5 прибежал - и тут же проект вышел, прям выскочил, ракетой взлетел, теряя портки.

    Наверное даже важный и нужный модуль какой-то нахрустели. Но вот это неточно.

     
  • 3.70, Менеджер Антона Алексеевича (?), 17:02, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Очевидно потому, что как прокси Nginx в сравнении с Envoy просто смешон, и сама идея угнаться по функциональному паритету за Istio с Nginx наперевес заведомо обречена на провал. Но вы с пох.ом можете обняться и вдвоём под пледиком думать, что виноват язык программирования. Ваше мнение как не влияло ни на что, так и дальше ни на что влиять не будет.
     
     
  • 4.77, Sw00p aka Jerom (?), 11:14, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Envoy

    imap в зависимости от юзера проксировать умеет?

    >Ваше мнение как не влияло ни на что, так и дальше ни на что влиять не будет.

    в отличии от вас, оно хотя бы у нас есть, че, мало людей было кто кричал 20 лет назад, в апаче есть то, есть это, в нджинксе нету, где htaccess чертовы и т.д. :) ну как жили без htaccess так и живем, до сих пор не нужны.

     
  • 3.114, Аноним (114), 11:40, 17/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я знаю почему: потому, что автору модуля жрать надо, потому сильно вкладываться временем и усилиями в то, что напожрать не приносит, он не торопился.
    Но как только "Для решения задачи был привлечён автор ngx-rust"(читай - вкинули бабла), тут же у автора рывок случился и было написано два пакета, которые требуются и проект в целом прыгнул из стадии "прототип" сразу в в стадию бета.
     
  • 2.13, Анонин (?), 11:50, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Прям в корень зришь!
    Но не все сразу, не все сразу))
     
  • 2.41, Советский инженер (ok), 12:49, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    вижу, горит хорошо 🔥.
    темп выхода новостей про раст 🦀 выбран правильно.
     
     
  • 3.43, Аноним (43), 13:08, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    По моей примерной статистике новость про очередную дырку в коде на с или с++ должна появиться где-то через 2 недели.
    Вот тогда можно будет продолжить))
     
  • 3.100, Аноним (100), 15:46, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >темп выхода новостей про раст 🦀 выбран правильно

    Чтобы он еще сильнее всем надоедал? Тогда да.

     
     
  • 4.107, Советский инженер (ok), 19:36, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    всем это кому?
    паре поехавших которые гордяться что раз в жизни hello world на С написали?
     
  • 2.80, Прохожий (??), 11:29, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И тут разработчики о более современном ЯП задумались, потому что привередливые пользователи не хотят испытывать на себе все "прелести" взлома. Просто напасть какая-то. Куда мир катится. Да?
     

  • 1.2, Аноним (2), 11:03, 13/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему веб-фреймворки на расте не пользуются популярностью? Это же прекрасная идея, использовать ржавчину для вебни, никакого тебе гц и рандомных фризов от него, нормальный ffi, складывать строки можно относительно безопасно, производительность почти выше питона на части операций… Иногда, правда, исполнение зависает почему-то (просто так судя по профилировщику), и у питона такого не случалось никогда, но, я уверен, это не повод отказываться от превосходящих технологий.
     
     
  • 2.3, Аноним (3), 11:08, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Делать качественно в нашей экономике не принято. Сейчас в моде собрать из экскрементов (питона) то, что еле как шевелится, а потом в разные места добавлять палки, чтобы у структуры хоть какая-то устойчивость была.
     
     
  • 3.6, Аноним (2), 11:20, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Расту просто нужны альтернативы sqlalchemy с asyncpg/aiosqlite. И, видимо, асинхронные генераторы.
     
     
  • 4.52, НяшМяш (ok), 13:25, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Расту просто нужны альтернативы sqlalchemy с asyncpg/aiosqlite.

    Что-то типа такого?
    https://crates.io/crates/sqlx
    https://crates.io/crates/sea-orm
    > И, видимо, асинхронные генераторы.

    Этого пока нет (типа синтакса yield), но можно использовать какую-нибудь либу:
    https://crates.io/crates/next-gen

     
     
  • 5.55, Аноним (2), 13:35, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Может быть, но нужны промышленные либы. И ещё alembic.
     
     
  • 6.64, НяшМяш (ok), 14:21, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит "промышленные либы"? А миграции в sea-orm есть.
     
     
  • 7.67, Аноним (2), 15:28, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Значит, "отвечающие стандартам индустрии", а не наколенный уровень. Это подразумевает довольно много на самом деле, но, в конечном итоге, сводится к вложенным в развитие и сопровождение ресурсам. Что до алхимии, не думаю, что вообще в принципе существует какой-то аналог на любом языке. Когда я в прошлый раз интересовался, альтернативой были множество разных компонентов различного уровня пригодности, без какой-либо универсальности.
     
     
  • 8.101, Аноним (101), 15:50, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для этого сначала нужен промышленный язык, а не наколенный язык без стандарта ... текст свёрнут, показать
     
     
  • 9.105, Аноним (2), 16:35, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У плюсов вроде есть стандарт, а компиляторы тоже отваливаются каждую версию Да ... текст свёрнут, показать
     
  • 9.112, Советский инженер (ok), 10:29, 16/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ну и где же популярные веб-фреймворки на С ... текст свёрнут, показать
     
  • 9.115, Аноним (114), 11:44, 17/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У плюсов есть стандарт Вот правда, нет компиляторов, которые весь этот текущий ... текст свёрнут, показать
     
  • 3.85, Прохожий (??), 12:28, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это не совсем так В противном случае не было бы такого понятия, как технический... большой текст свёрнут, показать
     
     
  • 4.102, Аноним (101), 15:53, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Лекция "невероятное об очевидном" от всезнающего опеннетного эксперта.
     
  • 2.5, Аноним (5), 11:16, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> Почему веб-фреймворки на расте не пользуются популярностью? <<<

    Нельзя просто так взять и пользоваться Растом, в отличии от того же Питона (порог входа очень высокий!), как результат, колличество людей, которые реально будут этим пользоваться, будет небольшим! Собственно, в линуксе будет именно так, большинство как писало на Си, так и дальше будет писать (если только не начнут заставлять)!

     
     
  • 3.19, Аноним (19), 11:57, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Количество людей, которые будут этим реально пользоваться, будет небольшим даже среди тех, кто считает что они со своим "порогом" успешно пишут на раст "совсем не говнокод")
     
     
  • 4.103, Аноним (101), 15:55, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что мы и видим на практике, годы идут, а обещания перевести все на новый язык так и остаются пустыми обещаниями.
     
     
  • 5.113, Советский инженер (ok), 10:33, 16/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    на практике мы видим что есть некие странные люди которые выдумали какие-то обещания и ходят рассказывают что никто не исполняет их выдуманных обещаний.
     
  • 2.9, Аноним (9), 11:33, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Синтаксис просто ужасный. На написание простого парсера csv потратил гораздо больше сил и головной боли, чем на C, C++ и Dlang.
     
     
  • 3.10, Аноним (9), 11:33, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Парсер csv -- просто как пример упомянул. Понятно, что к вебу это не относится прямо.
     
     
  • 4.30, Аноним (2), 12:10, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Типичная работа с csv в питоне выглядит примерно так, неужели в расте нет стандартных батареек для такого и надо тратить своё время? Есть даже поддержка разных "нестандартных" csv с произвольными разделителями. А что до затратности, ведь есть варианты. С си это тоже скорее будет flex/bison, чем стейт-машина. Да и вопрос привычки, кому-то и питон не нравится.

    with open(path, 'r', newline='', encoding='utf-8') as csvfile:
        with open(path_target, 'w', newline='', encoding='utf-8') as csvfile2:
            reader = csv.DictReader(csvfile)
            writer = csv.DictWriter(csvfile2, fieldnames=reader.fieldnames)
            for row in reader:
                writer.writerow(row)

     
     
  • 5.38, Анонимусс (?), 12:35, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну, в расте какбэ аналогично https://github.com/BurntSushi/rust-csv
    Не вижу особых различий

        let mut rdr = csv::Reader::from_reader(io::stdin());
        for result in rdr.records() {
            let record = result?;
            println!("{:?}", record);
        }

     
     
  • 6.46, Аноним (46), 13:18, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Анекдот.

    Встретились два растовика:
    - result?
    - println!

     
     
  • 7.50, Анонимусс (?), 13:24, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Шутку оценил))
    Но все равно не понимаю почему вам это не нравится.
    Ведь намного удобнее сразу понимать что это макрос, чем угадывать как в некоторых языках.
    А про optional... это было еще до раста.
     
  • 3.28, Аноним (43), 12:07, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Синтаксис это вкусовщина
    Хочешь сказать что void *func(void* i) сильно лучше?
    Возможно оно тебе понятнее - но только потому, что ты к этому привык.

    Я уже молчу про хтонические примеры, которые могут выпрограммировать тру-кодеры на Сях вида
    *((char*)0)=null или printf("%d", *((char*)ptr+4));

     
  • 3.32, zezic (?), 12:14, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Синтаксис просто ужасный.

    Не ужаснее, чем в плюсах.

    >написание простого парсера csv

    А почему потребовалось его писать? Тут ведь есть – https://crates.io/search?q=csv

     
     
  • 4.33, Аноним (9), 12:20, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > А почему потребовалось его писать?

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

     
     
  • 5.34, zezic (?), 12:24, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тогда реально интересно было бы, если бы ты поделился конкретными ужасами синтаксиса, чтобы понятно было, о чём речь. А есть ссылка на репу?
     
     
  • 6.53, НяшМяш (ok), 13:31, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Там вручную его написать, даже пользуясь стандартной библиотекой, элементарно.
    1. Читаем стрим или готовую строку построчно:
    https://doc.rust-lang.org/std/io/trait.BufRead.html#method.lines
    https://doc.rust-lang.org/std/primitive.str.html#method.lines
    2. Делаем split по сепаратору и получаем значения столбцов
    https://doc.rust-lang.org/std/primitive.str.html#method.split
    3. Складываем результат куда надо, профит
     
     
  • 7.58, пох. (?), 13:59, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Там вручную его написать, даже пользуясь стандартной библиотекой, элементарно.
    > 1. Читаем стрим или готовую строку построчно:

    fail

    > 2. Делаем split по сепаратору и получаем значения столбцов

    epic fail
    > https://doc.rust-lang.org/std/primitive.str.html#method.split
    > 3. Складываем результат куда надо, профит

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

    [написал-стер, сам ищи]

    После чего открываем, наконец, книжку про конечные автоматы и горько плачем (потому что там в примерах - все на фортране).

    И вот так у экспертов опеннета - за что ни возьмутся.

     
     
  • 8.62, НяшМяш (ok), 14:19, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не меняет того факта, что написать _простейший_ цсв парсер _элементарно_ на ... текст свёрнут, показать
     
     
  • 9.68, пох. (?), 15:37, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    то есть неправильно работающий Ну да, можно Годится для четвероклассника на пе... текст свёрнут, показать
     
  • 8.82, Прохожий (??), 11:51, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Там вверху человек сравнивает Питон использует при этом библиотечные функции и... текст свёрнут, показать
     
     
  • 9.86, пох. (?), 12:41, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    нет Там вверху - человек написал и не стал вам показывать, потому что делал дл... текст свёрнут, показать
     
  • 5.74, freecoder (ok), 21:49, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Без предъявления кода и говорить не о чем.
     
     
  • 6.93, пох. (?), 10:26, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Без предъявления кода и говорить не о чем.

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


     
     
  • 7.97, Советский инженер (ok), 12:23, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >предъявляй свой, чего ж. А, ты не умеешь кодить...

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

     
     
  • 8.98, пох. (?), 14:29, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    мне просто неинтересно с тобой ничего обсуждать, совковый ушлепок, поэтому перет... текст свёрнут, показать
     
     
  • 9.106, Советский инженер (ok), 19:13, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    потому что ты со своим приземленным IQ даже не понимаеш на что отвечаеш это не ... текст свёрнут, показать
     
  • 2.11, 12yoexpert (ok), 11:33, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    и весит-то всего-ничего, каких-то 300 мегабайт на страничку
     
     
  • 3.15, Аноним (2), 11:51, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У go ещё хуже. И там же не cgi наверно. Сколько угодно вьюшек может быть и бинарь будет их сервить. Вроде даже есть поддержка шаблонов а ля jinja (хотя непонятно, что выбрать, всё какое-то максимально стрёмное).
     
     
  • 4.31, 12yoexpert (ok), 12:13, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    nim
     
  • 4.47, Аноним (46), 13:21, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    go - это вобще клинический случай. Язык, пригодный исключительно для создания веб-сервисов в контейнерах, когда при любом раскладе к каждому хелловорлду в рантайме будет добавляться своя копия операционной системы. Тут уж не важно, как идёт копирование: физически отдельным файлом каким-нибудь типа /lib/libc.so.6 или просто копированием всего содержимого libc.so.6 в бинарник.
     
     
  • 5.73, Аноним (73), 19:58, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так он Гуглом и проектировался для запуска в контейнерах. Удивительно, что Гугл решает задачи Гугла?
     
  • 2.44, YetAnotherOnanym (ok), 13:10, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > производительность почти выше питона на части операций

    До чего же тонко!

     
     
  • 3.48, Аноним (2), 13:21, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Какие-то операции определённо могут быть исполнены быстрее, но они не несут решающего значения. Аналогичные задачи, решённые аналогичным способом, часто не оказываются эффективнее. И всё же это лучше го, но го пропихивает корпорация зла и с этим тяжело конкурировать.
     
  • 2.45, НяшМяш (ok), 13:17, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для бекендов достаточно популярны:
    https://crates.io/crates/axum - 22 млн загрузок
    https://crates.io/crates/actix - 5 млн загрузок

    > производительность почти выше питона на части операций…

    А запускалось хоть в --release режиме? А то классическая ошибка новичков всё гонять в дебаге по-умолчанию

     
     
  • 3.72, ferris (?), 19:43, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    actix - это не web-фрэймворк, а фрэймворк обощего назначения для построения приложений на модели акторов.
    Вероятно, вы хотиле оставить ссылку на крейт 'actix-web': https://crates.io/crates/actix-web
     
     
  • 4.99, НяшМяш (ok), 15:41, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Точно-точно, я про actix-web знаю, но не использовал - вот и промазал.
     
  • 2.116, Аноним (114), 11:57, 17/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому, что куяк-куякать (и в продакшн) на питоне может начать после месячных курсов на ютупе маkаkа (качество будет соответствующим, но тяпляпать маkаkа что-то будет), а раст надо дольше изучить. Ты вон почитай как местные матёрые шишечники-опеннетчики не справились даже с синтаксисом раста (по крайней мере пожаловаться на "что не так с растом" к них получается только на синтаксис). А ведь это даже не код писать, это тупо синтаксис - любый нормальный программист синтаксис нового языка осваивает за неделю (максимум).
     
     
  • 3.117, Аноним (2), 13:51, 17/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так это только в представлении маkаk так. Обычно, когда речь заходит о "что не так с растом", вспоминают cargo и crates всё же. Отсутствие бинарного интерфейса и общая нестабильность, из-за которой куча кода отваливается после каждого апдейта. Про синтаксис я не видел, он просто нескучный, что делает сопровождение сложнее, чем требуется. Есть же люди, которым нравится перл, так и тут.
     

  • 1.16, Аноним (43), 11:53, 13/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Еще один успешный проект добавляет поддержку rust.
    Наверное ребята, которые с начала 200х пилят на С один из самых популярных вебсерверов, что-то знают...

    И даже не смотря на авторитетное мнение экспертов с опеннета!
    Удивительно.

     
     
  • 2.59, пох. (?), 14:04, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Еще один успешный проект добавляет поддержку rust.
    > Наверное ребята, которые с начала 200х пилят на С один из самых
    > популярных вебсерверов, что-то знают...

    "ребята", которые его пилили с начала 200х давно уже пошли на..й - один с миллиардами, остальные просто так и на поджопниках.

    Остался один Макс, который ни на каком хрусте не добавляет, ему некогда.

    А это - новое поколение рабов F5, чего кнутователь скажет то и будут делать, и теми инструментами которые тот назначит.

     
     
  • 3.61, Аноним (43), 14:08, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    О... опять ты с "рабами и кнутователями".
    Пойми, не все программисты являются рабами, и не всех подвергают кнутованию.
    Не надо экстраполировать свой опыт на всех остальных.
     
     
  • 4.69, пох. (?), 15:43, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > О... опять ты с "рабами и кнутователями".
    > Пойми, не все программисты являются рабами, и не всех подвергают кнутованию.

    не всех, вот тех которые потратили время на "продукт не вышел за рамки прототипа" - явно пороли недостаточно.

    А в F5 видимо порют хорошо и качественно - судя по тому как оттуда быстро-быстро побежали бывшие разработчики nginx, условия работы оказались изрядно далеки от хорошо оплачиваемого хобби в свободном формате.

    Но, видишь, ничего страшного, новых наловили.

     
  • 4.78, Sw00p aka Jerom (?), 11:19, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Не надо экстраполировать свой опыт на всех остальных.

    Он хочет сказать, что 20 лет назад программисты решали что должно быть в продукте и с какой скоростью, а щас "кнутователи" эффективные менеджеры. И программист в современном мире ничем от "маккаки" не отличается, что скажут то и напишет, на любом языке, за них скоро чатгопота будет писать :)

     
     
  • 5.87, пох. (?), 12:42, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > за них скоро чатгопота будет писать :)

    как будто что плохое. Правда, оно потом не компилируется (и говорят что даже из под v4 уже не), но опять же, как будто у этих компилируется...

     
     
  • 6.89, Sw00p aka Jerom (?), 13:15, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >как будто что плохое.

    плохое только одно - код на выходе, даже если и компилируется :)

    пс: от чего пытались избавить "программистов", когда создавали первые ЯП в замен асм? Или еще раньше, от чего пытались избавить тех же создав мнемонический транслятор асм?

     

  • 1.17, InuYasha (??), 11:54, 13/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А я-то думал, за ними не заржавеет...
     
  • 1.49, YetAnotherOnanym (ok), 13:24, 13/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вот тут - одобрямс, при всём моём скептическим отношении к энтузиазму растофанов. Если раст позволяет писать код, сопоставимый по скорости работы с кодом на Си, при этом писать его легче и быстрее (так утверждают те, кто пишут на Расте), то вполне может и выстрелить. Правда, при условии, что Крэйтс не превратится в такую же помойку, как репа модулей для Ноды.
     
     
  • 2.54, Анонин (?), 13:32, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > так утверждают те, кто пишут на Расте

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

    Писать на си намного легче, там и keywords меньше, и std либа попроще, и значков меньше.
    Можно не думать о времени жизни. Компилятор по умолчанию почти ни на что не ругается.
    В общем шикарная жизнь - сел и пишешь что хочешь. Но есть нюанс))

     
     
  • 3.83, Sw00p aka Jerom (?), 12:04, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Но есть нюанс))

    ага, взял баян, скрипку или лучше пилу и пиликай, что душе угодно, но есть нюанс - какой?

     
  • 2.56, Аноним (56), 13:53, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Если раст позволяет писать код, сопоставимый по скорости работы с кодом на Си,

    нет, медленее (в общем случае)

    >при этом писать его легче и быстрее (так утверждают те, кто пишут на Расте)

    нет, сложнее и медленее

     
     
  • 3.60, Аноним (43), 14:05, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На сколько медленнее "в общем случае" ?
    Если разница 5-10% - то это не настолько критично, чтобы нельзя было улучшить оптимизациями раст компилятора

    >>при этом писать его легче и быстрее (так утверждают те, кто пишут на Расте)
    >нет, сложнее и медленее

    ты учитываешь время на отладку багов, проведение CVE с памятью через весь путь "от записи бага, до фиксов, написания доп.тестов и прогонов CI"?
    или ты только про написание кода?

     
     
  • 4.65, подрывник (?), 14:50, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Просто понимаешь, в XX веке бОльшая часть кода на Сишке была написана с глобальными переменными, а работали программы в один поток, так что никаких CVE с памятью, никаких утечек, никаких состояний гонки и т.д. и т.п. не было и в помине.

    Сам когда-то 3.5 МБайта наколотил. И работает до сих пор...

     
     
  • 5.66, Аноним (43), 15:05, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > так что никаких CVE с памятью, никаких утечек, никаких состояний гонки и т.д. и т.п. не было и в помине.

    Да, да, а как же. Опять сказки венского леса начинаются.
    А это в каком веке писалось?
    "Уязвимости в библиотеках X.Org, две из которых присутствуют с 1988 года" https://www.opennet.ru/opennews/art.shtml?num=59906

    Я верю, что наовнячить кода в один поток, с глобальными переменными для того времени было нормой.
    И про "работает - не трогай" тоже помню.
    То такие ошибки в приложениях, это не называется 'работает'.
    Так что самые важные куски будут переписывать.
    Вон даже для курла начали писать бекенд на расте, с благословения автора.
    Тк он сам пишет, что ошибки памяти в С и плюсах побороть практически невозможно.

     
     
  • 6.79, Sw00p aka Jerom (?), 11:23, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Тк он сам пишет, что ошибки памяти в С и плюсах побороть практически невозможно

    эт когда не знаешь как устроена память и как правильно с ней работать

     
     
  • 7.84, Прохожий (??), 12:06, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже те, кто пишет на Си, поголовно этого не знают. Или всё-таки проблема не в незнании?
     
     
  • 8.88, Sw00p aka Jerom (?), 13:09, 14/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    в 3 83 я ответил на этот вопрос ... текст свёрнут, показать
     
  • 2.63, Аноним (63), 14:20, 13/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И с чего бы ему не превратиться? Ты чтоли будешь каждый пакет модерировать?
     

  • 1.104, Аноним (101), 16:07, 15/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://github.com/nginxinc/ngx-rust

    >Project status
    >This project is still a work in progress and not production ready.

    Комментарии, как говорится, излишни.

     
     
  • 2.109, scriptkiddis (?), 21:09, 15/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Везде и всегда где есть что то с приставкой -rust
     
  • 2.111, Пряник (?), 09:36, 16/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это не помеха для тех, у кого руки чешутся костыли понасоздавать.
     

  • 1.108, scriptkiddis (?), 21:08, 15/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Но самих модулей реализующих хоть что-то нет и небудет. Классика раста.
     
  • 1.110, Аноним (110), 02:51, 16/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А разве там так тяжело делать библиотеки для других языков? Я недавно начал книгу об этом языке читать — вроде не сложно.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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