The OpenNET Project / Index page

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

Выпуск языка программирования Go 1.22

07.02.2024 09:15

Представлен релиз языка программирования Go 1.22, который развивается компанией Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Код проекта распространяется под лицензией BSD.

Синтаксис Go основан на привычных элементах языка Си с отдельными заимствованиями из языка Оберон. Язык достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно, без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.

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

Среди изменений в новом выпуске:

  • В циклы "for" добавлена поддержка определения диапазонов из целых чисел, например, для перебора значений с 0 до 9 теперь можно использовать цикл "for i := range 10 {...}".
  • В циклы "for" добавлена экспериментальная (GOEXPERIMENT=rangefunc) поддержка функций определения диапазона, позволяющая указывать функцию в качестве итератора. Например, "for i, x := range slices.Backward(s) {...}"
  • Решена давняя проблема с циклами "for", приводившая при вызове сопрограмм (goroutine) к совместному использованию переменных цикла в разных итерациях. Например, код
     
          values := []string{"a", "b", "c"}
          for _, v := range values {
               go func() {
                   fmt.Println(v)
                  done <- true
               }()
          }
    
    теперь будет выводить "a","b" и "c" в произвольном порядке, а не только "c", как было раньше.
  • Проведена оптимизация работы с памятью в runtime, которая привела к повышению производительности на 1-3% и снижению потребления памяти в большинстве приложений на 1%.
  • Продолжена работа по задействованию в компиляторе оптимизаций на основе результатов профилирования кода (PGO - Profile-guided optimization), позволяющих учитывать особенности, определяемые во время выполнения программы. В новой версии в компиляторе задействованы средства девиртуализации для замены непрямых вызовов различных методов на выполнение развёрнутых inline-блоков. При включении PGO добавленное изменение позволило повысить производительность большинства программ на 2-14%.
  • В компилятор добавлена экспериментальная (GOEXPERIMENT=newinliner) улучшенная реализация механизма развёртывания (inlining) вызовов, использующая эвристику для разделения важных и второстепенных операций.
  • В стандартную библиотеку добавлен пакет "math/rand/v2", в котором предложен более целостный API и задействованы более быстрые алгоритмы генерации псевдо-случайных чисел.
  • В пакет net/http.ServeMux добавлена возможность указания методов и масок в шаблонах, например, шаблон "GET /static/{id}/" будет применён к запросам с HTTP-методом "GET" и сохранит значение второго сегмента запрошенного пути в идентификаторе "id".
  • В пакет database/sql добавлена поддержка типа Null[T], позволяющего сканировать столбцы, которые могут принимать значение NULL.
  • В пакет slices добавлена функция Concat для слияния нескольких слайсов любого типа.
  • В командах для работы с рабочими пространствами (коллекциями модулей) предоставлена возможность использования каталога "vendor", содержащего зависимости к содержимому рабочего пространства. Каталог создаётся при выполнении команды "go work vendor" и используется в сборочных командах при выставлении опции "-mod=vendor" (включает по умолчанию при наличии каталога vendor).


  1. Главная ссылка к новости (https://go.dev/blog/go1.22...)
  2. OpenNews: Выпуск языка программирования Go 1.21
  3. OpenNews: Выпуск языка Go 1.20. SourceHut отменил блокировку зеркала модулей Go
  4. OpenNews: В инструментарий для языка Go добавлена возможность отслеживания уязвимостей в модулях
  5. OpenNews: Google намерен добавить телеметрию в инструментарий для языка Go
  6. OpenNews: Google представил сервис для наглядного отслеживания зависимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60564-go
Ключевые слова: go, golang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (193) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 10:25, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Посмотрел на синтаксис Go, и что-то я не заметил каких-то схожестей с Си

    Что именно там "Синтаксис Go основан на привычных элементах языка Си"?

     
     
  • 2.7, Аноним (7), 10:27, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Синтаксис Go - это кошмарная солянка синтаксисов кучи языков.
     
     
  • 3.17, Аноним (17), 10:39, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +7 +/
    А у раста?
     
     
  • 4.25, Аноним (7), 10:52, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Rust самобытный и не Си-подобный от слова ни разу и не заявлялся таким. На него с Си-подобных языков не перепрыгнешь так просто. Зато он реально нормально работает.
    У Go же в свю очередь вакханалия такая, что прикладные структуры данных реализованы на уровне языка и между списками и массивами синтаксис неадекватно плавает. Это дикость. Как это вообще имеет право на существование!?
    От случая к случаю у него синтаксис то от С/Java, то от Delphi/Pascal, то от JS, то от Python, как будто его придумали обдолбаные наркоманы. Я понимаю когда язык существует не одно десятилетие и обрастает "обоснованным" синтаксическим сахаром. А тут как будто из других языков нахватали на старте, и существует это лишь благодаря хорошему компилятору и библиотекам с других языков.
     
     
  • 5.45, Alexey (??), 12:17, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    По моему опыту на rust после С очень легко писать.
     
     
  • 6.49, Проходил мимо (?), 12:28, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Угу, то первого серьезного втыкалова с владением и разного рода временами жизни так оно и есть. А потом приходит понимание, что слово Rust и слова "Легко писать" не совсем соответствуют действительности.
     
     
  • 7.171, ZVVZ (?), 12:21, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Опять, еще один не удосужился при написании кода запомнить что же за код он пишет. Ну иди на JS пиши, если человек  не осилил на пару правил на расте  выучить то и на  С++ такому индивиду тем более делать нечего, а человеку лучше на пенсию пойти отдыхать, его же работу чатгпт отдать, все надежней будет. И человек счастлив и не обременен и компания не получит кучу багов.
     
     
  • 8.201, Проходил мимо (?), 07:39, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О, а вот и местные иксперды нарисовались Прям чувствуется глубочайшее знание ... текст свёрнут, показать
     
  • 6.51, dullish (ok), 12:30, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    По моему опыту, после С на чём угодно легко писать. Но зачем?
     
     
  • 7.56, Аноним (56), 13:31, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Экономия времени и денег?
     
     
  • 8.73, пух (??), 14:38, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это чьих ... текст свёрнут, показать
     
     
  • 9.168, Аноним (168), 11:48, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Наших ... текст свёрнут, показать
     
  • 8.149, 12yoexpert (ok), 06:50, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Про деньги можно было бы заикаться, если бы на нём были вакансии, а так он даже ... текст свёрнут, показать
     
  • 5.63, alle (?), 14:01, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Зато он реально нормально работает.

    Да, но его ниша примерно нигде. где-то заменит си и то хорошо

     
  • 5.84, OpenEcho (?), 16:07, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > ... библиотекам с других языков.

    Гон. Там все свое, от компилятора и кончая библиотеками

     
  • 4.44, Пряник (?), 12:14, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А у раста сразу несколько синтаксисов: 2015, 2018, 2021.
     
     
  • 5.52, Проходил мимо (?), 12:30, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В чем принципиальная разница между синтаксисом 2018 и 2021?
     
     
  • 6.55, Аноним (56), 13:30, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В том что 2 сорта и кто-то в этом даже разбирается.
     
  • 6.70, НяшМяш (ok), 14:34, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот тут есть список изменений https://doc.rust-lang.org/edition-guide/introduction.html
     
  • 6.79, Пряник (?), 15:27, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не знаю, я начал с 2021. На сайте написано всё https://doc.rust-lang.org/stable/edition-guide/
     
  • 3.26, Хухрымухры (ok), 10:53, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Рекомендую глянуть доклад: Почему Golang такой странный / Филипп Кулин
     
     
  • 4.48, anonymous (??), 12:23, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Веселый доклад.

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

    "Вам не завидно, Балаганов? Мне завидно"

     
     
  • 5.200, Хухрымухры (ok), 07:13, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > всю жизнь занимались херней

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

    В то время только только перестали использовать перфокарты.

     
     
  • 6.204, anonymous (??), 12:30, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вы доклад-то смотрели ? Посмотрите, он интересный.

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

     
  • 3.88, OpenEcho (?), 16:14, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Синтаксис Go - это кошмарная солянка синтаксисов кучи языков.

    Сдается мне, что вы не понимаете разницы между синтаксисом и семантикой.
    Большинство языков, - с синтаксисом С

     
     
  • 4.147, Аноним (7), 05:51, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не упоминал семантику, если ещё ещё затронуть это вообще ******.
     
  • 2.19, Аноним (19), 10:41, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на структуры там много чего завязано, надо ее обьявить, а дальше использовать, со стандартными типами переменных работать тяжело, конвертить строки в массив байтов и обратно укантрапупишься, да и вообще половина кода это приведение типов
     
     
  • 3.31, name (??), 11:17, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +9 +/
    А вторая половина - проверки err на nil.
     
  • 3.131, Аноним (131), 20:47, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > конвертить строки в массив байтов

    Дали сишнику строки, а он их в массив сконвертировал, за пределы вышел и нулевой указатель разыменовал.

     
  • 2.21, Аноним (21), 10:47, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    - фигурные скобки для блоков
    - * и & для работы с указателями
    - Структуры и само слово struct
    - Условие цикла for из трёх частей

    Конечно, такое есть и в других языках, и это как раз и есть c-likе элементы, подсмотренные у Си.

    В общем же это извиняющийся кивок про схожесть с Си уже давно пора выбросить; сейчас не 2009 год, чтобы описывая новый на тот момент язык Го, смягчать подачу робким "а вот на Си похоже-с, да…". Язык и экосистема уже взрослые и могут кое-где уже и дверь ногой открывать не стесняясь.

     
  • 2.33, Ананий (?), 11:18, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    :=
    необязательная ;

    заменили скобками begin end, writeln на println, шоб уж совсем на паскаль не походить

    ну и всё настолько типизированно, шо даже для указателей указывают тип, шо еще паскалистее чем сам паскаль.

     
  • 2.34, Аноним (168), 11:23, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Посмотрел на синтаксис Go, и что-то я не заметил каких-то схожестей с Си

    Ну как же? Всё, где блоки кода скобочками "{ }", теперь считается основанным на привычных элементах языка Си.

     
  • 2.47, flrdv (?), 12:20, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    возврат ошибок.
     
  • 2.103, anonymous (??), 17:46, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В учебнике авторы говорят, что база - С, но очень много элементов: от модулей и ООП - взято из языков Вирта.
     
     
  • 3.105, OpenEcho (?), 17:55, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В учебнике авторы говорят, что база - С, но очень много элементов: от модулей и ООП - взято из языков Вирта.

    В Го завезли ООП? Вы уверены что книжка от авторов?

      

     
     
  • 4.132, Аноним (131), 20:48, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё один, думающий, что ООП — это «как в джаве» или «как в крестах».
     
     
  • 5.136, OpenEcho (?), 21:49, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ещё один, думающий, что ООП — это «как в джаве» или «как в крестах».

    Ещё один, думающий, что знает что я думаю... одни блин телепаты :)

    ООП, именно в том виде как у крестов и джавы, в Го - нет. Нет классов. Нет кострукторов.
    Но есть возможность самому делать ООП через структуры, а это значит, что язык, сам по себе не предоставляет классических элементов ООП как часть языка

     
     
  • 6.211, Аноним (211), 00:55, 10/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    конструктор это просто функция
     
     
  • 7.217, OpenEcho (?), 21:57, 10/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > конструктор это просто функция

    Не просто функция, а функция которая вызывается только раз при инициализации класса, а классов в Го языке как language construct - нет (И я очень этому даже рад, чем меньше абстракций, тем ближе к сущности). Единственный "констуктор" в Го - это функция "init".
    Но в тоже время возможности языка вполне себе позволяют реализовывать собсвенный "ООП" если надо через структуры (что вообщем-то точно так же и делается во "взрослых" ООП)

     
  • 4.135, tty0 (?), 20:59, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    От ранних, в рассказе ООП было вначале столько же, сколько и последующих С
     
  • 2.164, Аноньимъ (ok), 11:23, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Что именно там "Синтаксис Go основан на привычных элементах языка Си"?

    Это стандартный базворд, так же как джава и сишарп "имеют привычный похожий на си синтаксис".
    Менеджерам нужно, иначе они не примут ЯП в прод никогда, ну и реклама дыркошлёпам, типо чувак тут то-же только лучше...

     
  • 2.191, Neon (??), 19:28, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Во, во, из какого пальца высосали похожесть Go на С неизвестно.
     

     ....большая нить свёрнута, показать (41)

  • 1.3, Аноним (3), 10:26, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    А если какой-нибудь индус забросит проект , от которого зависят другие проекты . То мой хелоуворд не соберется ?
     
     
  • 2.8, Аноним (7), 10:28, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Go - это как недопитон, только со статической типизацией.
     
     
  • 3.15, Аноним (3), 10:35, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Go - это как Google !
     
     
  • 4.69, Аноним (69), 14:21, 07/02/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 4.170, Бывалый смузихлёб (?), 12:01, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Go - это как
    >>> Go on home British Soldiers Go on home
    >>> Have you got no fucking homes of your own
    >>> For 800 years we've fought you without fear
    >>> And we will fight you for 800 more
    >>> ...
     
  • 2.109, OpenEcho (?), 18:24, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А если какой-нибудь индус забросит проект , от которого зависят другие проекты . То мой хелоуворд не соберется ?

    А что это ты вообще в программирование суёшься? Это их бизнес (ты даже хело ворд не одолел)

     
  • 2.213, кек (?), 11:39, 10/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Соберется, пока проект не выпилили
    А если выпилили или нашли cve 15/10 в мертвом проекте - будь бобр искать форк или сам форкать, да. Но это всегда так и было, на самом то деле
     

  • 1.4, Аноним (7), 10:26, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    До сих пор базовые проблемы фиксят. Этот язык ещё на стадии альфы или уже релиз?
     
     
  • 2.27, Хухрымухры (ok), 10:56, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это было сделано специально в угоду скорости. На практике оказалось что это создаёт больше проблем.
     
     
  • 3.128, другой аноним (?), 19:59, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вот да, достало, когда это изменение называют фиксом , да ещё и фиксом ошибки ... большой текст свёрнут, показать
     
  • 3.151, 12yoexpert (ok), 06:53, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Вряд ли что-то в этом недоязыке было сделано в угоду скорости, достаточно взглянуть на docker и kubernetes
     
     
  • 4.189, OpenEcho (?), 18:50, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Вряд ли что-то в этом недоязыке было сделано в угоду скорости, достаточно
    > взглянуть на docker и kubernetes

    11 Bravo

     
  • 4.198, Хухрымухры (ok), 07:07, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дружище. Ты напиши сначала аналог kubernetes или docker на твоём любимом языке, а там посмотрим.
     

  • 1.5, Аноним (-), 10:26, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > Решена давняя проблема с циклами "for", приводившая при вызове сопрограмм (goroutine) к совместному использованию переменных цикла в разных итерациях.

    Открыли ящик Пандоры по изменению ошибок допущенных при проектирование языка. Это, конкретно, я поддерживаю, но интересно, что будет следующим.

     
     
  • 2.11, Аноним (7), 10:29, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Язык всё больше и больше мне кажется мертворождённым.
     
     
  • 3.16, Аноним (16), 10:38, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +15 +/
    икспертиза опеннет
     
     
  • 4.23, Аноним (23), 10:48, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так-то он прав, но у гулага бесконечные деньги (в частности, на рекламу) и живо оно будет до тех пор пока надо гулагу.
     
  • 4.89, Всем Анонимам Аноним (?), 16:29, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    или специально для забавы вставляет, чтобы реакцией наслаждаться
     
  • 3.99, Андрей (??), 17:22, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вы на нём пишете или как те из стаи "активистов" по жалобам которых отменяют концерты? :-D
     
     
  • 4.148, Аноним (7), 05:55, 08/02/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.32, Аноним (32), 11:17, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не понятно только для кого это было проблемой.
    Вполне логичное поведение в подобной среде
     
  • 2.185, Аноним (185), 15:27, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ящик Пандоры они открыли, зафорсив стиль скобок K&R с левыми объяснениями "потому что гладиолус и транслятор быстроходный, и точки с запятой автоматом, чо пристали". У Вирта все языки с быстрыми трансляторами, но им побоку в строчку идет BEGIN или с новой строки.
     

  • 1.6, Аноним (3), 10:26, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чтобы собрать хелоуворд , сколько гигабайт надо ?
     
     
  • 2.9, Аноним (7), 10:29, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так-же как на джаве, может даже немного экономнее.
     
     
  • 3.13, Аноним (3), 10:32, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У меня однажды на сервере пропала директория с джава . С тех пор я не могу его использовать .
     
  • 2.14, Аноним (14), 10:34, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    0.058
     
  • 2.111, OpenEcho (?), 18:40, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Чтобы собрать хелоуворд , сколько гигабайт надо ?

    Для это не гигабайты нужны (можно даже на STM32 со 128кб), для это мозги нужны

     
  • 2.152, 12yoexpert (ok), 06:55, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Go означает go buy another HDD
     

  • 1.10, Аноним (3), 10:29, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > позволяет добиться производительности, сопоставимой с программами на языке Си

    В рекламных роликах не принято сравнивать достоинства товара A и товара B другой фирмы .

     
     
  • 2.12, Аноним (7), 10:31, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > позволяет добиться производительности, сопоставимой с программами на языке Си

    **при вызове библиотек, написанных на Си
    XD

     

  • 1.18, Маня (?), 10:41, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    почему код:
    values := []string{"a", "b", "c"}
          for _, v := range values {
               go func() {
                   fmt.Println(v)
                  done <- true
               }()
          }
    будет выводить abc а не cba? нет же гарантий порядка выполнения горутин. просто теперь не будет повторений.
     
     
  • 2.29, Аноним (3), 11:02, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > values := []string{"a", "b", "c"}

    Такое сложно читать человеку , он устает . Зачем пустые скобки ? Чтобы показать что это массив ? Человеку это зачем знать ? Зачем кавычки ? Непонятно , что a b c это не цифры , а текст ?
    > go func() {

    Это изобретения велосипедов .
    Человек должен понять программу , просто прочитав ее . Вы же читаете этот текст .
    Просто очень сложно такое читать
    values := []string{"a", "b", "c"} for _, v := range values {go func() {fmt.Println(v) done <- true}()}

     
     
  • 3.35, Аноним (35), 11:24, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем кавычки ? Непонятно , что a b c это не цифры , а текст ?

    Чтобы понять что это текст, а не другие переменные.

    Но в целом синтаксис ИМХО омерзителен. Конечно и на других языках можно писать стольже отвратительно выглядящий код но там надо стараться, а тут это судя по всему норма.

     
     
  • 4.39, Аноним (7), 11:33, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да, в GoLang этот синтаксис = норма.
     
  • 3.37, Ананий (?), 11:26, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Непонятно , что a b c это не цифры , а текст ?

    а если текст совпадет с зарезевированным словом? изобретать костыли?
    а какое-нибудь а b c 0xFF d это что?

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

     
     
  • 4.77, Аноним (-), 15:10, 07/02/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 3.75, Аноним (75), 14:55, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Такое сложно читать человеку , он устает

    Ну так пишите на перле, там будет просто map { print $_, "\n" } qw/a b c/

    >Человек должен понять программу , просто прочитав ее . Вы же читаете этот текст

    Реально ваш язык, присмотритесь.

     
     
  • 4.142, Аноним (142), 23:29, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На перле будет
    say for qw/a b c/;
     
     
  • 5.178, Аноним (75), 13:30, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    say работает по дефолту хоть в какой-нибудь версии перла?
    И у вас не запускается рутина, как в гошном варианте. map с блоком ближе к этой логике.
     
  • 3.133, Аноним (131), 20:52, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Просто очень сложно такое читать

    Ну попробуй научиться программировать и хотя бы пару _разных_ языков выучить, перестанет быть сложно очень быстро.

     
     
  • 4.179, Аноним (75), 13:33, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я знаю пять или шесть и для меня пихон (99% кодов) и голанг (от 99% программистов на голанге, начинавших с курсов пихона) по-прежнему нечитаемы.
     
  • 3.162, Аноним (162), 11:13, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кому как. Я устаю гадать во всех этих недомолвках питанорубижабаскрипта. А тут -- всё понятно.
     
  • 2.106, noc101 (ok), 17:56, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Порядок выполнения не гарантируется. Одна горутина может быть завершена быстрей другой, даже если была запущена позже.
    Но порядок запуска определенный.
    В твоем примере будет АБС выводится в любом случае, так как порядок запуска и порядок выполнения тут совпадет.
     
     
  • 3.186, derfenix (ok), 16:18, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Порядок запуска тоже не определён. Горутины сначала в одну из очередей попадают, прежде чем запуститься, и какая когда запустится не знает никто, кроме планировщика.
     
     
  • 4.203, noc101 (ok), 12:19, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не знал. Тогда не прав
     
  • 2.134, Аноним (131), 20:57, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Всё правильно, порядок выполнения горутин не гарантируется. Однако, у тебя настолько примитивный код, что пока цикл дойдёт до запуска следующей горутины, предыдущая успевает отработать. Если бы там делалось что-то кроме вызова print на локалхосте, порядок вывода менялся бы между запусками.
     
     
  • 3.140, Маня (?), 22:27, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    это не у меня а в статье, которая вводит в заблуждение
     
  • 3.143, Аноним (143), 00:44, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кто такой Горутин? Много раз эту фамилию уже видел, но так и не понял что это за мужик. Причём иногда о нем пишут как о женщине - Горутина.
     
     
  • 4.223, anonymous (??), 09:18, 07/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Эту штуку под именем корутина Никлаус Вирт в языке Modula-2 придумал.
     
  • 2.141, _ (??), 23:29, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >почему код:
    >[...]
    >будет выводить abc а не cba? нет же гарантий порядка выполнения горутин. просто теперь не будет повторений.

    потому что местные IT-ЫгспЁрды посчитали неважной для __точного__ перевода фразу:
    "the following code will print “a”, “b”, and “c” in some order"
    оне жи в английском тоже ЫгспЁрды! :)

     
  • 2.187, derfenix (ok), 16:20, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Суть изменения тут в том, что выведутся все 3 символа, а не три раза "с", как было до 1.22. Только в этом отличие. А порядок выведенных символов всё так же практически рандомный.
     

  • 1.20, Аноним (20), 10:44, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > для перебора значений с 0 до 9 теперь можно использовать цикл "for i := range 10 {...}".

    Удобный синтаксис для off by 1 ошибок.

     
     
  • 2.222, нона (?), 01:53, 15/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А как должно быть?

    for i := 0 .. 9? Это гораздо более прямой путь к off by 1.

     

  • 1.22, Аноним (22), 10:48, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Такой ощущение, что синтаксис for стараются сделать максимально непохожим ни на что другое и получается настолько криво, насколько это вообще возможно.
     
     
  • 2.74, wWolf (?), 14:55, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Цикл for в Go это просто сборная солянка всех возможных конструкций циклов.
    Он может быть и сишным (start; cond; end) и while'ом, и loop'ом (безусловным), и ренжом аля питоновский.
     
  • 2.76, Аноним (75), 14:55, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Похоже на итераторы луашные
     
     
  • 3.91, Аноним (91), 16:56, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Мне тоже сразу на ум пришло: в lua это 30 лет назад уже было
     

  • 1.38, Карлос Сношайтилис (ok), 11:28, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Язык го как тестовая площадка для экспериментов с конструкциями оператора for
     
  • 1.40, Аноним (40), 11:35, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На Go после появления дженериков вполне можно писать, т.к. это убрало самые вопиющие моменты копипасты. Когда обработку ошибок сделают хотя бы в стиле Swift, тогда вообще будет норм. После джавы с ее annotation-driven development код на Go дебажить одинаково комфортно что у себя в проекте, что в кишках гошных фреймворков - он что там, что там формата "палка-веревка".
     
     
  • 2.46, Аноним (162), 12:19, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Кому как. Жители бангладешских деревень, которые не умеют читать и считают только используя пальцы рук и ног, плохо дженерики понимают. Понимают плохо, но используют охотно. В результате ПО на языках, в которых есть свои варианты шаблонов/обобщений, типично превращаются в обезьяну с гранатой.
    Поэтому, на мой взгляд, добавление обобщений в Го было крайне спорным решением.
     
     
  • 3.90, OpenEcho (?), 16:33, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Кому как. Жители бангладешских деревень, которые не умеют читать и считают только используя пальцы рук и ног

    Почему же тогда они везде?! В Оракле, Гугле и конечно же в Майкрософте! И живут почему-то не в деревнях, а в Issaquah, Mountain View, Redwood... и получают четверть миллиона в год зеленью

    Где Вы, о великий "белий каста" ? Где ваш гениальный код?!

    Мир ждет вас!!!

     
     
  • 4.117, Аноним (162), 19:02, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты удивишься, но в деревнях тоже. В огромных количествах. Мой гениальный код где надо, но даже я дженериков побаиваюсь. Они -- нет. Поэтому, лучше, когда дженериков нет вообще. Натыкать проверок типа того, что кладёшь и что берёшь в/из коллекции, из снипетов куда проще и сюрпризов меньше.
     
     
  • 5.120, OpenEcho (?), 19:15, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Мой гениальный код где надо

    Я почему-то даже не сомневался :)))

     
  • 2.57, 12yoexpert (ok), 13:38, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на языках, в которых шаблоны называют дженериками, в принципе невозможно писать

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

     
     
  • 3.71, anonymous (??), 14:36, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Понятно, что ты тролль, но для тех, кто случайно прочитает твой комментарий, я напишу, что шаблоны - это compile-time фича, а дженерики - рантайм.
     
     
  • 4.138, xer (?), 22:08, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а какая мне разница?
     
  • 4.154, 12yoexpert (ok), 06:57, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Пруф? В nim дженерики - compile-time. Эксперты опеннета такие эксперты
     
     
  • 5.158, Аноним (162), 11:06, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что за ним такой? Очередной овнокотлин, только теперь для шарпа?
     
  • 4.221, zog (??), 14:43, 13/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > но для тех, кто случайно прочитает твой комментарий, я напишу, что шаблоны - это compile-time фича, а дженерики - рантайм.

    На самом деле ровно наоборот. Именно поэтому дженерики в Java сделаны с type erasure и в рантайме узнать конкретный дженерик невозможно. Фактически джавовские дженерики - это синтаксический сахар, заменяющий явное преобразование типов. Дженерики - это недоделанные шаблоны и это действительно плохо.

     
  • 3.114, Аноним (162), 18:59, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну потому что это не шаблоны, а именно обобщения. С цпп шаблон в кучу классов превращается, а той же Жабе или Го -- нет. Там это просто сахар для проверки типобезопасности коллекций и всё. Причём такой сахар с овнецом немного.
     
     
  • 4.146, penetrator (?), 04:10, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    тогда C# сильно тебя удивит ))

    там это тоже типа Generic, но работает как обычный шаблон (по твоей терминологии)

    и в нем и Generic и Template это около и рядом одного и того же

     
     
  • 5.156, Аноним (162), 11:03, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Чем меня это должно удивить? В Жабе и Шарпе обобщений не было. Жаба, чтобы сохранить обратную совместимость, обобщения реализовала только на уровне компиляции, а МС на обратную совместимость забили и сделали через привычные шаблоны. Как в Го не знаю. Присобачивать обобщения к языку, который обобщений до этого не имел, всегда процесс не безболезненный.
     
     
  • 6.174, penetrator (?), 13:05, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Чем меня это должно удивить? В Жабе и Шарпе обобщений не было.
    > Жаба, чтобы сохранить обратную совместимость, обобщения реализовала только на уровне компиляции,
    > а МС на обратную совместимость забили и сделали через привычные шаблоны.
    > Как в Го не знаю. Присобачивать обобщения к языку, который обобщений
    > до этого не имел, всегда процесс не безболезненный.

    я не знаю что ты называешь обобщениями, но шарпе шаблоны называются генериками / Generic

    про это и было мной написано

     
     
  • 7.181, Аноним (162), 13:55, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Офигеть, чудик, а автобус называется бас, а рыба -- фиш. Нефига себе, открытие. Generic это Обобщение. В данном случае Обобщение типа. Ну хочешь называть то, что ты не понимаешь, тем, что ты не понимаешь -- кто ж тебе запретит. Хотя, напишу жалобу в минобр -- может, запретят в конце концов.
     
  • 3.159, Аноним (162), 11:08, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот твой шарп. В нём шаблоны названы дженериками. Чтоб по-модному. А в моде тогда была Жаба. В Жабе -- дженерики. Уровня компиляции.
     
     
  • 4.175, penetrator (?), 13:08, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот твой шарп. В нём шаблоны названы дженериками. Чтоб по-модному. А
    > в моде тогда была Жаба. В Жабе -- дженерики. Уровня компиляции.

    генерики появилось в шарпе в 2005 году, когда смузиеов еще не было, как и другой модной хрени

    просто такое название для одного и того синтаксического сахара, детали реализации уже вторичны

     
     
  • 5.182, Аноним (162), 14:03, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну фиг знает. Эти самые Дженерики в Жабе именно, что сахар уровня написания кода. Машина о них ничего не знает, в байткоде их нет. В Жабе какой-нибудь вызов new Shit<String> в коде не сделает тебе новый класс Shit<String>, а потом его экземпляр, а просто сделает очередной экземпляр Shit. В Шарпе же, насколько я понимаю, вызов Обобщения (т.е. когда ты его уже типизуешь) плодит настоящий новый класс на стадии компиляции, ну т.е. это такой классический Шаблон.
     
  • 5.183, Аноним (162), 14:07, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как не было, меня уже к 2005 от смузи мутило, а хлебать их начала не раньше 2002 точно.
     

  • 1.41, cheburnator9000 (ok), 11:43, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Язык где вместо решения фундаментальных проблем в виде race condition вам предлагают race detector ... фу.

    C#/.NET лучше, хоть и кушает для своей работы больше ОЗУ и ЦПУ в рантайме, но это дело поправимо, сейчас улучшают Ahead of Time компиляцию в нативный код, правда проблемы с рефлексией в этом деле еще не решили, но все будет.

     
     
  • 2.67, Аноним (67), 14:17, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да-да, жава тоже уже скоро хорошей станет, с минуты на минуту.
     
  • 2.81, Аноним (81), 15:49, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вообще я бы посомневался что есть уровень Си. Временами и жава код быстрее.
    И вроде бы все круто, но похоже западные языки будут обосабливаться в своем маня-мирке. Они уже давно европу миром зовут, так что ждать омталось недолго.
    А вот жабокод уже заворачивают и отечественным проектам денег не дают.
    Кто их знает что там очередной гомосек решит как пондасрать.
     
     
  • 3.166, Аноним (168), 11:42, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А как обстоят дела с посконно-православными языками?
     
  • 2.127, Аноним (127), 19:48, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Для большинства приблуд даже .NET FW достаточно за глаза, остальное решается распараллеливанием. Если уж что и продвигать, то C# - последний вменяемый язык, да и тот после 8.0 уродуют.
     
     
  • 3.161, Аноним (162), 11:10, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В шарпе есть произвольные анонимные классы?
     
  • 2.160, Аноним (162), 11:10, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что в Го нет каких-нибудь механизмов явной сериализации исполнения? Ну там синхры какие-нибудь или что-то в этом духе?
     
     
  • 3.192, OpenEcho (?), 19:46, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А что в Го нет каких-нибудь механизмов явной сериализации исполнения? Ну там
    > синхры какие-нибудь или что-то в этом духе?

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

     
  • 3.195, cheburnator9000 (ok), 22:40, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А что в Го нет каких-нибудь механизмов явной сериализации исполнения? Ну там
    > синхры какие-нибудь или что-то в этом духе?

    конечно есть, но язык же позиционируется как пишешь go myFuncName() и все чики пуки из коробки, люди так и делают, а в итоге все не так просто.

     
     
  • 4.207, _ (??), 18:43, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты конечно же дашь линк на https://go.dev/чего-то-там  где о так "позиционируется"? Ты же не жалкий сосунишка сосок?

    >люди так и делают, а в итоге все не так просто.

    Не волнуйся всех этих ^^^^^ у нас уже AI-шкой меняют. Она уже на их уровне, в период 5-10 лет станет лучше их.

     
  • 2.188, Имя1 (?), 16:54, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так то в java Excelsior JET уже давно AOT с рефлексией запилили, без каких либо ограничений. Вот нынешний GraalVM без полноценной рефлексии какая-то несерьезная игрушка, печально что и C# все так же
     

  • 1.43, Аноним (-), 12:04, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Как вообще кому-то могла прийти мысль импортировать библиотеки прямо из интернета? Каждый import github.com/... - это дополнительная точка отказа.
     
     
  • 2.54, Аноним (56), 13:22, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Точка отказа у тебя в голове все зависимости должны быть в папке vendor.
     
     
  • 3.58, похнапоха. (?), 13:38, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Он просто не знает, как работает импорт в Гоу, что такое модули и тд. Бесполезно спорить с ИКСпертом на оупеннет, лет 15 тут еще водились адекватные, которые владели знаниями в обсуждаемых темах. Теперь смузихлебы, которые знают 5+ ЯП и 15+ фреймворков, но толком ни в одном не разобравшиеся, поучают всех остальных. АйТи, которое мы заслужили.
     
     
  • 4.62, 12yoexpert (ok), 13:59, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    один ты умный в белом пальто стоишь красивый. спасибо, что ты есть
     
  • 4.64, Placeholder (ok), 14:06, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да это даже не смузихлебы, это на 80% просто тролли сидят. У них и гит не нужен, и винда - самая лучшая ОС. В основном тупо копипастят одну и ту же фигню чтобы развести флейм.
     
     
  • 5.85, Анонист (?), 16:09, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Судя по тому что ты написал, троллем тут являешься именно ты. А гит действительно не нужен и винда стоит на 99% компов (те что не маки), в отличии от ляликса с его 0.01%.
     
     
  • 6.144, Билли Г. (?), 01:44, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Миллионы мух не могут ошибаться.

    Ваш Билли

     
  • 4.95, Аноним (-), 17:17, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не чуди. Пункт 3 известен всем: https://www.toptal.com/go/4-go-language-criticisms
    А еще репозиторий может закрыться.
     
     
  • 5.112, похнапоха. (?), 18:52, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    При чем тут третьесторонний репозиторий к функционалу ипорта модулей? Для этого в Гоу есть средства, как решить эту проблему. И это касется любого ЯП, когда используются третьесторонний зависимости.
     
  • 5.169, Аноним (169), 11:58, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я, конечно, тоже go не люблю, но ты смотрел ваще на что именно линк кидаешь? Там какое-то небинарное оно с розовыми волосами с очень плохим английским и которое работало только в вебе.
     
  • 2.83, Анонист (?), 16:07, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что в нынешнем айти засилье гуманитариев, которые даже слов таких не знают, как "точки отказа". Из-за этого и браузеры стали жрать как топовые игры AAA. Инженеров нет. Вернее есть, но в военке и прочей робототехнике с AI теперь тусуются.
     
     
  • 3.205, Лосилий Васейник (?), 13:56, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Пришёл однажды скрам мастер к нам в айти отдел на завод Мы айтишники люди совре... большой текст свёрнут, показать
     
     
  • 4.208, _ (??), 18:47, 09/02/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.94, OpenEcho (?), 17:09, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Каждый import github.com/... - это дополнительная точка отказа.

    О-о-о! Есть еще богатыри, пишущие абсолютно все с нуля и не использующие никакие библиотеки...

    Майкрософт с Гуглом скоро падут от такой мощи

     
     
  • 3.97, Аноним (-), 17:19, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Одно дело, когда это хранилище, из которого пакет не пропадет (например, pip, nuget). И другое - чей-то личный репозиторий, который автор завтра решит закрыть.
     
     
  • 4.104, OpenEcho (?), 17:48, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Одно дело, когда это хранилище, из которого пакет не пропадет (например, pip,
    > nuget). И другое - чей-то личный репозиторий, который автор завтра решит
    > закрыть.

    Господа как обычно, догадки выдают за правду...

    go мod vendor

    и стороняя библиотека у тебя на диске, лежит в той же директории где и проект, который ты можешь компилить в оффлайне, под водой и на самолете (у которго нет вайфай). А на счет овнер исчез/закрыл, для это го держит дубликты всех опубликованных пакеджей, как раз на этот случай чтоб не изчезали и еще чтоб верифицировать достоверность, что пакет кто-то не увел с целью внедрить дерьмецо

     
     
  • 5.108, noc101 (ok), 18:02, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Верно, но вставлю замечание.
    В случае переезда разработчика на новый ПК, сервер сборки и тп. При закрытом гите, проект уже не соберется. Поэтому, лучше скачивать с гита архив, чтобы был резерв.
     
     
  • 6.115, похнапоха. (?), 18:59, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Проект соберется, для этого достаточно знать азы работы с зависомстями и произвести replace:
    go mod edit -replace github.com/репозиторий/мой-потерянный-подуль=/home/user/project/мой-потерянный-подуль

    Поэтому ИКСперты продолжайте критиковать скобочки в синтаксисе ЯП

     
  • 6.119, OpenEcho (?), 19:07, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Поэтому, лучше скачивать с гита архив, чтобы был резерв.

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


     
  • 3.107, noc101 (ok), 18:01, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    О боже гуманитарий, не позорься.
    Никто не писал про всё писать с нуля. тут пишут, что в проекте импортить с гитхаба модули, это возможные будущие проблемы.
    Умные ребята, которая не пьют смузи как ты, качают модули в папку вендор и уже оттуда импортят и по надобности обновляют.
    Плюс в том, что нет минусов. Даже если гитхаб закроется, твой проект не умрет.
     
     
  • 4.110, Аноним (-), 18:35, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну хорошо, ты скачал пакет себе. Опубликовал свой код. Посторонний разработчик решил сделать форк или просто собрать на своей машине, а пакета в инете уже нет. Как с этим решать? Публиковать также код всех пакетов?
     
     
  • 5.116, OpenEcho (?), 19:00, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Посторонний разработчик решил сделать форк или просто собрать на своей машине, а пакета в
    > инете уже нет. Как с этим решать?

    В Го такого не получится, даже если овнер исчез, пакет останется закэшированным/сохраненным в Го прокси репозитарии

    > Публиковать также код всех пакетов?

    Вы про форк слышали?


     
     
  • 6.118, Аноним (-), 19:06, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Форк, конечно, спасает, но при использовании тех же pip и nuget разработчику не нужно форкать пакеты) Их соранность гарантируется самим хранилищем.
     
     
  • 7.122, OpenEcho (?), 19:19, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Форк, конечно, спасает, но при использовании тех же pip и nuget разработчику
    > не нужно форкать пакеты) Их соранность гарантируется самим хранилищем.

    Вы через слово читаете??? Аналог ваших питонов и дотнетов - это ГоПрокси

     
     
  • 8.130, Аноним (-), 20:02, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну не вполне же Даже из самого названия прокси следует, что он кеширует пакет... текст свёрнут, показать
     
     
  • 9.137, OpenEcho (?), 22:00, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы чуть, чуть - не дочитали Просто следует закону Не хочет хозяин шарить, - эт... текст свёрнут, показать
     
  • 4.113, OpenEcho (?), 18:54, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    О гений телепатический, в Го пакеты качаются не с гитхаба, а по умолчанию с прок... большой текст свёрнут, показать
     
     
  • 5.121, Аноним (-), 19:15, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Все верно, для этого и есть: go mod vendor
    > и еще есть репозитарий Го, который хранит все копии пакетов с гитхаба, как раз на случай "диверсий" :)

    Хз, выглядит ненадежно. Слишком много непонятных зависимостей.

     
     
  • 6.123, OpenEcho (?), 19:23, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Хз, выглядит ненадежно.

    Что именно - не надежно ? Все без проблем может работать как в оффлайне, так и со свежаком

    > Слишком много непонятных зависимостей.

    Для это документация есть, чтоб избавиться он непонятностей и зависимостей


     
  • 5.206, noc101 (ok), 15:53, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> качают модули в папку вендор и уже оттуда импортят и по надобности обновляют.
    > Блястнул уровнем не-знаий, "молодец", "Умные ребята..." :)
    > Про go mod vendor не слышал, вручную качаешь?

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

    >> Плюс в том, что нет минусов. Даже если гитхаб закроется, твой проект не умрет.
    > Все верно, для этого и есть: go mod vendor

    И возращаемся к первокомментарию. Чел говорит что указывать гитхаб в импортах это лищняя точка отказа.
    В чем он не прав?
    Получается прав.


    > и еще есть репозитарий Го, который хранит все копии пакетов с гитхаба,
    > как раз на случай "диверсий" :)

    И?

     
     
  • 6.209, OpenEcho (?), 19:09, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В чем он не прав?

    В том, что так же как и Вы - не в теме. Но усиленно продолжаете спорить...

     
     
  • 7.210, noc101 (ok), 23:48, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    То есть аргументов нет. Что и ожидалось от нуба
     
  • 2.126, Аноним (127), 19:45, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Абсолютно солидарен. Но если тебе 20, ты работаешь в гугле и с тебя просят "инновации", вот такие вот идеи и приходят в голову! :)) Инженерное позорище, согласен. Как и nuget в мире .NET
     

     ....большая нить свёрнута, показать (32)

  • 1.53, Аноним (56), 13:21, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Про то что си подобный пишут, а про то что нельзя выйти за границы буфера не пишут.
     
     
  • 2.59, 12yoexpert (ok), 13:40, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    это же не раст
     
     
  • 3.98, OpenEcho (?), 17:20, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    мимо. cm: CVE-2021-31162
     
  • 2.72, НяшМяш (ok), 14:36, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что можно https://github.com/advisories/GHSA-ppp9-7jff-5vj2
     
     
  • 3.96, OpenEcho (?), 17:18, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому что можно https://github.com/advisories/GHSA-ppp9-7jff-5vj2

    То ли дело в раст: std::fs::remove_dir_all
    и бум, в гонщики: CVE-2022-21658

    Или  Vec::from_iter, - дважды освободил и в CVE-2021-31162

     
     
  • 4.145, Аноним (40), 02:42, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Справедливости ради, TOCTOU уязвимости - это гонка процессов, а не тредов. Ну в том смысле, что Rust может и защитит от ошибок кривого наваливания данных в shared коллекции из разных потоков, но вот что у него кривая реализация в std::fs - это логическая ошибка (некорректная работа с системными вызовами), от которых этот язык не защищает никак. Вся его задача - перенос "лучших практик" из C++ по работе с памятью в компайл-тайм, чтобы минимизировать человеческий фактор. В остальном просто нескучный синтаксис.
     

  • 1.60, Alexey (??), 13:47, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Google компания делает дела. когда-то про нее много писали что "корпорация зла". но нет, она делает добрые дела. полезные. вот язык обновила.

    так что, не надо ее ругать.

    кто там главный в компании? Брин и еще второй. они делают полезное дело. обновляют язык.

     
     
  • 2.125, Аноним (127), 19:43, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Брин, перелогинься и не позорься! :)))) "делает дела"... ты в 3 классе что ли? Выражаешься как косноязычный троечник. Это уже не говоря о смысле твоих похвал недоязыку от недокомпании.
     

  • 1.65, Аноним (65), 14:07, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Жаль gomobile забросили
     
  • 1.68, Аноним (69), 14:18, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Было слишком мало скобочек, но это исправляют.
     
  • 1.100, Golangdev (?), 17:24, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Отличная новость!
     
  • 1.102, Аноним (102), 17:25, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Решена давняя проблема с циклами "for"

    Выглядит так как будто язык всё ещё переживает детские болезни.

     
     
  • 2.176, Аноним (7), 13:23, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, а языку уже 15 лет при этом.
     

  • 1.139, Вы забыли заполнить поле Name (?), 22:10, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С обработкой ошибок по прежнему беда?
     
     
  • 2.177, Аноним (7), 13:23, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Их концептуально не хотят завозить.
     

  • 1.155, ВоваВолшебник (?), 08:32, 08/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пользовался языком пару лет. Неплохой инструмент для написания маленьких сетевых программ. Но в какой то момент прозрел и нафиг послал этот язык со своими идиотскими правилами синтаксиса. Мол, ему не нравится что есть неиспользованная переменная. Ну сейчас в данный момент не используется, надо будет, потом удалим, сейчас голова забита другим. Это конечно хорошо, что типа для оптимизации. Но в активной фазе разработки как же эта фигня ставит палки в колеса. Я вообще молчу про фигурные скобки. Это вообще чья то субьективщина стала частью языка.
     
     
  • 2.199, Хухрымухры (ok), 07:11, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Мол, ему не нравится что есть неиспользованная переменная.

    _ = some

    https://go.dev/play/p/OZLj1Xa_Zxp?v=

     
  • 2.218, Аноним (218), 02:00, 11/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >сейчас в данный момент не используется, надо будет, потом удалим, сейчас голова забита другим. Это конечно хорошо

    Пример хода мысли, приводящего к появлению и постоянному увеличению количества го-кода в проекте. Нет, это не ускоряет разработку. Вы делаете работу по три-четыре раза в результате.

     

  • 1.157, Аноним (157), 11:04, 08/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Любой статический язык без ADT - игрушка для хеловордов.
     
     
  • 2.163, Аноним (162), 11:19, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот у меня ровно обратное мнение. ADT слишком сложно для уверенного понимания. А без понимания его применение приводит к опасным ошибкам. Лучше многословно, но предельно понятно на каждом шаге даже дэбилу.
     
     
  • 3.165, Аноним (168), 11:37, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ADT ? Может, AST ?
     
     
  • 4.173, Аноним (162), 12:47, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я о проблемах с пониманием и адекватным применением именно ADT, т.е. абстрактных типов и шаблонов построения типов.
     
  • 3.215, Аноним (218), 15:55, 10/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А им и надо, чтобы язык был такой черной магией, чтобы не программу писать, а что угодно подводящее к ее написанию, но никогда не приводящее. Подмена деятельности ее имитацией.
     
  • 2.167, Аноним (-), 11:46, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты про Абстрактный Тип Данных? Чо ниасилил сортировку?
     
     
  • 3.180, Аноним (157), 13:51, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно имелось в виду Алгебраические типы данных?
     
  • 2.184, Аноним (169), 14:38, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ADT - это прошлый век, сейчас любой язык без TRJ - игрушка для хеллоувротов. А на подходе еще BKFHW - еще круче будет
     

  • 1.190, Neon (??), 19:28, 08/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ничего привычного из С даже близко нет в Go. Откуда это глупость постоянно берется ?!
     
     
  • 2.202, Аноним (202), 07:56, 09/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https://go.dev/doc/faq#ancestors

    "Go is mostly in the C family (basic syntax), with significant input from the Pascal/Modula/Oberon family (declarations, packages)"

     
  • 2.214, Аноним (218), 15:53, 10/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тупизация, структуры, указатели, блоки кода фигурными скобками, видимость внутри блока. Все это очень даже сишное.
     

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



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

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