The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Первый выпуск Angie, форка Nginx от разработчиков, ушедших из компании F5, opennews (?), 03-Ноя-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


29. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +1 +/
Сообщение от НяшМяш (ok), 03-Ноя-22, 13:12 
> для хайлоад проектов
> Golang

Ясно

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

38. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +4 +/
Сообщение от Онаним. (?), 03-Ноя-22, 13:52 
Так потому и хайлоад.
CPU хайлоад.
Ответить | Правка | Наверх | Cообщить модератору

50. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +/
Сообщение от Иваня (?), 03-Ноя-22, 14:32 
Чел ты... хейтер Golang. С тобой всё ясно.
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

64. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +/
Сообщение от НяшМяш (ok), 03-Ноя-22, 16:15 
Именно, и я этого не скрываю. Даже плюсанул тебя. Мне на этом говнище писать приходится. А про пригодность к хайлоаду говорит одно лишь существование подобных проектов https://github.com/valyala/fasthttp Тот же traefik использует стандартный net/http со всеми вытекающими.
Ответить | Правка | Наверх | Cообщить модератору

140. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  –1 +/
Сообщение от Вы забыли заполнить поле Name (?), 03-Ноя-22, 23:02 
> Мне на этом говнище писать приходится.

Что не так? Можешь подробнее пояснить?

> А про пригодность к хайлоаду говорит одно лишь существование подобных проектов https://github.com/valyala/fasthttp

Как это связано?

Ответить | Правка | Наверх | Cообщить модератору

150. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  –1 +/
Сообщение от НяшМяш (ok), 03-Ноя-22, 23:48 
> Что не так? Можешь подробнее пояснить?

if err != nil, возможность легко выстрелить себе в ногу написав NPE (особенно в коде с горутинами), боль и адище при работе со слайсами чуть сложнее, чем "взять элементы с i по j". Чисто навскидку что за 15 секунд вспомнил. Спасибо что в язык хоть дженерики пусть и с непривычным синтаксисом завезли.

> Как это связано?

Хайлоад, использующий стдлибу, которая медленная? Если даже на работе в наших приложениях использование fiber на базе fasthttp даёт видимое улучшение, то для посредника, который должен быть незаметным, это фатальный недостаток. Тот же Istio, например, использует Envoy на С++.

Ответить | Правка | Наверх | Cообщить модератору

163. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +/
Сообщение от Вы забыли заполнить поле Name (?), 04-Ноя-22, 03:00 
> if err != nil, возможность легко выстрелить себе в ногу написав NPE

То есть способ обработки ошибок, когда надо явно проверять на nil, делает из языка говно? Ну ок.

>  Если даже на работе в наших приложениях использование fiber на базе fasthttp даёт видимое улучшение

То, что в конкретном проекте, было какое-то улучшение, еще же ничего не значит. По твоему go пишут идиоты, которые не могут написать быстрый net/http? Что-то тут не чисто. Где issue в трекере go по этой теме? Или заменил в проекте и *бись оно все конем?


Ответить | Правка | Наверх | Cообщить модератору

194. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +/
Сообщение от НяшМяш (ok), 04-Ноя-22, 14:49 
> То есть способ обработки ошибок, когда надо явно проверять на nil, делает из языка говно? Ну ок.

Язык делает говном хотя бы одно только существование nil. Это допустимо для старпёрской сишки, но никак не для языка для зумеров-хипстеров.

> По твоему go пишут идиоты, которые не могут написать быстрый net/http?

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

> Где issue в трекере go по этой теме?

Честно говоря конкретно про http не нашёл - их там просто дофига и не все про производительность. Но могу кинуть ишью про encoding/xml, с которым лично сталкивался https://github.com/golang/go/issues/21823 Самое отстойное в том, что альтернативных чисто гошных реализаций толком и не существует, а те что есть - не всегда подходят. Даже на джаваскрипте их намного больше. Ситуацию усугубляет поиск в pkg.go.dev, который по запросу xml вываливает все возможные проекты, использующие encoding/xml.

Одним словом гошка имеет настолько подготовленную к хайлоаду стандартную библиотеку, что люди пишут всякие https://github.com/goccy/go-json и прочие https://github.com/valyala/quicktemplate обмазываясь небезопасной конвертацией строк в байты https://github.com/golang/go/issues/25484 , лишь бы это говно было хотя бы примерно настолько быстрым, насколько его рекламируют.

Ответить | Правка | Наверх | Cообщить модератору

191. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +4 +/
Сообщение от Аноним (191), 04-Ноя-22, 13:08 
Я с этим гoвнищeм тоже работал, так что вот мои пять копеек:

1. Куцая стандартная библиотека. Из-за которой все проекты завалены своими собственными имплементациями базовых типов данных, навроде множеств, и примитивных функций, навроде разбиения слайса на чанки;
2. Убогий метаобъектный протокол. Из-за которого твой собственный тип данный никогда не сможет безшовно участвовать в конструкциях языка, типа for range цикла;
3. Такие же проблемы с нулами, как в Яве. Если не хуже, ведь nil-интерфейсы не равны nil;
4. Никаких намёков на потокобезопасность. Выстрелить себе в ногу с потоками так же легко, как в каком-нибудь PHP, который вообще проектировался без мыслях о них. https://songlh.github.io/paper/go-study.pdf
5. Целый мешок неочевидных ловушек. http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in...

Но хуже всего в Go - это его аудитория. Люди, которые решили, что можно просто выкинуть на помойку последние 40 лет развития программирования и отлично с этим жить. Из-за этого проекты на Go часто начинаются без всякого внимания к архитектуре, а затем неизбежно превращаются в глючный комок спагетти-кода.

Причём, когда на ранних этапах пытаешься донести до всех этих гениев важность DDD, слабого зацепления, разделения кода и данных, метрик - они смотрят на тебя, как на идиoта: "Это Го - здесь всё это не нужно. KISS, все дела." А потом по флоу на одном эндпоинте, 50 функций, 50 раз выбирают одну и ту же запись из таблицы; база дохнет на маленьком трафе, и никто не знает почему; а в курилке Паша набил морду Саше потому что их наработки ломают код друг-друга.

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

Ответить | Правка | К родителю #140 | Наверх | Cообщить модератору

192. "Первый выпуск Angie, форка Nginx от разработчиков,..."  +/
Сообщение от arisu (ok), 04-Ноя-22, 13:16 
язык писался для того, чтобы Робу Пайку было удобно. зачем этим пользоваться, если ты не Роб Пайк — решительно непонятно.
Ответить | Правка | Наверх | Cообщить модератору

196. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  –1 +/
Сообщение от НяшМяш (ok), 04-Ноя-22, 15:00 
> ведь nil-интерфейсы не равны nil

Ох, въетнамские флешбеки. Когда ты пишешь конструкции вида


var prop SomeInterface
var wtf *SomeStructForInterface = ...

if wtf == nil {
   prop = nil
} else {
   prop = wtf
}

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

Ответить | Правка | К родителю #191 | Наверх | Cообщить модератору

205. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +/
Сообщение от RomanCh (ok), 05-Ноя-22, 17:24 
> 5. Целый мешок неочевидных ловушек. http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in...
> Opening Brace Can't Be Placed on a Separate Line
> Unused Variables
> Unused Imports
> Short Variable Declarations Can Be Used Only Inside Functions
> Redeclaring Variables Using Short Variable Declarations
> ... и т.д...

Серьёзно? Не, ну конечно, для сверхсовременных вайтишников изучающих программирование по ютупу и стековерлоху - наверное да, среьёзные недостатки, что язык не позволяет писать как попало, что попало, а потом получать какой-то (не всегда ожидаемый) результат.

Но вообще, это в лучшем случае претендует на "мне так непривычно".

За это надо выдавать отдельную премию:
> Using "nil" Slices and Maps

Ну конечно, зачем знать что такое slice, а что такое map - что первое, это структура, а второе - указатель? Тогда всё резко встало бы на свои места (при условии, что читающий знает что, такое указатель...) Но похоже, читать "в 2k21 году" что-то большее чем сообщение с зелёной галочкой - не модно.

Не поленился, посмотрел все "неочевидные ловушки". Из того, что действительно сколь-нибудь неочевидно, можно назвать пару ситуаций со словом "Shadowing" - действительно можно запутаться, хотя в целом это никак не противоречит концепции области видимости переменных. И ситуацию с "Same Address for Different Zero-sized Variables" - хотя она имеет скорее академический интерес. Ну и "Updating Map Value Fields" тоже может вызвать непонимание (сам в это попадался), однако она имеет внятное объяснение, если понимать что map это не "волшебство", а указатель на структуру на основе хеша, которая может быть динамически переупорядочена при увеличении корзинки.

В целом же весь этот пост выглядит агрегацией стенаний людей, которые хотят чтобы им дали ЯП с большой зелёной кнопкой "СДЕЛАТЬ ХОРОШО", и чтобы оно было "как мой любимый ЯП, только без его проблем!". И чтобы им совсем не напрягать извилины, а просто клацать на большую зелёную кнопку и стрич купоны.

> Люди, которые решили, что можно просто выкинуть на помойку последние 40 лет развития программирования и отлично с этим жить

Знаете... На мой взгляд кое-что из этих 40ка лет действительно лучше выкинуть на помойку, и заровнять сверху экскаватором. И приведённая вами ссылка только добавила вес этому мнению.

Ответить | Правка | К родителю #191 | Наверх | Cообщить модератору

164. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +/
Сообщение от Вы забыли заполнить поле Name (?), 04-Ноя-22, 03:03 
> Мне на этом говнище писать приходится.

Если это делает из тебя хейтера, то что же ты не сменишь работу?

Ответить | Правка | К родителю #64 | Наверх | Cообщить модератору

186. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +/
Сообщение от пох. (?), 04-Ноя-22, 10:19 
> Если это делает из тебя хейтера, то что же ты не сменишь
> работу?

Кушать хочет, не?

А в Росгвардию не взяли, видать.

Ответить | Правка | Наверх | Cообщить модератору

195. "Первый выпуск Angie, форка Nginx от разработчиков, ушедших и..."  +1 +/
Сообщение от НяшМяш (ok), 04-Ноя-22, 14:50 
> Если это делает из тебя хейтера, то что же ты не сменишь работу?

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

Ответить | Правка | К родителю #164 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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