The OpenNET Project / Index page

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



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

Оглавление

В ночных и бета сборках Firefox включена по умолчанию поддержка HTTP/3 , opennews (ok), 21-Мрт-21, (0) [смотреть все]

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


29. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +11 +/
Сообщение от Урри (ok), 21-Мрт-21, 10:24 
Очередное эталонное ненужно.

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

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

Для примера, есть в стандарте хендшейка веб-сокета такой момент: клиент должен сформировать некий ключ и отправить его серверу в base64. Так в стандарте (rfc6455) и написано прямым текстом "base64".

А дальше этот ключ на стороне сервера никто не(!) декодирует. Его используют прямо так - текстовой строкой. Более того, к этой строке добавляется GUID, причем в стандарте так и написано прямым текстом "guid", Который, внезапно, является тоже просто строкой(!), причем прямо захардкоженой. Вот эта строка: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", можете поискать ее в интернете - увидите, что я не вру, без того, чтобы читать весь стандарт.

Внимание, вопрос: почему в стандарте не написано "сгенерируйте текстовую строку из разрешенных символов? Почему не написано "к этой строке надо конкатенировать другую строку "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"? Почему там требование ненужного base64 и ненужного guid?

Я отвечу - потому, что все делается на коленке болванами и торопыгами. Да, продуктивными болванами, но от этого не менее болванистыми (и более вредными). Буяк-буяк-и-в-продакшен, web 2.0, аджаааааайл, некогда думать надо делать, прыг-прыг-прыг.

Придумали сначала ключ, надо передать строкой, вот вам бейз64, сервер декодирует, добавляет уникальный гуид и использует. Ой, нет, а давайте не будем декодировать, нам и так хорошо. Ой, а еще и гуид пусть один и тот же будет, зачем его менять? А что там у нас в документе написано для клиента? А, не важно, некогда все приводить к единому знаменателю, юниттесты работают и ладно, некогда объяснять надо код сдавать.

Вот так base64 с гуидом и остались. Артефакты прошлой текучки. Эхо аджайла и разгильдяйства. Отголосок сломанного кривыми технологиями мозга (я намекаю на джаваскрипт).

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

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

Так вот, повторюсь - HTTP/3 такое же непродуманное ненужно. Для веб-страничек не нужен очередной велосипедный TCP, им и классического с головой хватает. А для веб-игрушек, аудио, видео и что еще там кто себе с низким временем отклика придумает, нужен обычный отлаженный стандартизированный прекрасно уже 16 лет как работающий RTP.

Зачем это гуглу? Наверное, снова хотят очередной невынимаемый зонд вставить.

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

30. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +1 +/
Сообщение от Онаним (?), 21-Мрт-21, 10:28 
Вот знаете...
Не могу не согласиться.
Ответить | Правка | Наверх | Cообщить модератору

59. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  –2 +/
Сообщение от Андрей (??), 21-Мрт-21, 13:20 
«сгенерируйте текстовую строку из разрешенных символов?»

Про гуид всё же понятно он «гарантировано» уникальный

Если написать рожно что вы предлагаете, то имплементаторы налячкают своих горе генераторов

А тут используется готовый индустриальный подход, полностью специфицированный
более того его реализации есть под всё.

Насчет base64 хз
Возможно эти данные нужны именно строкой

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

35. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Lex (??), 21-Мрт-21, 11:23 
> Отголосок сломанного кривыми технологиями мозга (я намекаю на джаваскрипт)

Ругать жс за реализацию конкретной фичи в браузере - все равно, что ругать яйцо за курицу, которая его снесла.

Реализации штук типа вс в браузере «внезапно» кодятся на божественной сишечке. Т.е дело именно в криворуких сишных проггерах.

А ещё дело в том, что веб - штука вполне общедоступная. Хочешь - бери и делай. Вот некоторые и делают.
В то же время, у каждого из таких «дельцов» как ни странно, свои планы замыслы подходы и цели, а так же - видение будущего.
И нынешний веб - это продукт работы не одной конторы, а компромисс множества хотелок множества организаций, некоторые из которых друг другу противоречат

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

37. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +5 +/
Сообщение от Урри (ok), 21-Мрт-21, 11:34 
> Ругать жс за реализацию конкретной фичи в браузере - все равно, что ругать яйцо за курицу, которая его снесла.

Нет, тут все существенно глубже.
Я по роду профессии много общаюсь с молодыми программистами. Так вот корреляция между тем, на чем они программируют (или учились программировать) и способностью связно и без грабель алгоритмизировать задачу очень четкая. И в этой корреляции джаваскрипт очень, очень плох.
Конечно же, бывают исключения (это сноска для троллей "что, все 100%? да ты дурак и значит врешь").

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

И вот на выходе не программист, а гoвнoкодер, программистом по сути не являющийся. С, как это среди программистов принято, огромным самомнением.

> И нынешний веб - это продукт работы не одной конторы, а компромисс множества хотелок множества организаций, некоторые из которых друг другу противоречат

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

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

61. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +2 +/
Сообщение от Онаним (?), 21-Мрт-21, 13:37 
Алгоритмизировать задачу? :D
Это уже ныне сеньор, не меньше. "Кодеры" нынешние же с алгоритмизацией вообще дружат слабо.
Ответить | Правка | Наверх | Cообщить модератору

64. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Random (??), 21-Мрт-21, 13:45 
Классика: "Нельзя научить программированию человека, оболваненного Бэйсиком"
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

66. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +1 +/
Сообщение от Lex (??), 21-Мрт-21, 13:52 
> между тем, на чем они программируют (или учились программировать) и способностью
> связно и без грабель алгоритмизировать задачу очень четкая. И в этой
> корреляции джаваскрипт очень, очень плох.

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

> Лично я списываю это на то, что жс сильно нелогичный и плохо
> структурированный, постоянное его использование учит мозги программистов мыслить нелогично
> и плохо структурировано. Ну а общий подход "и так сойдет" (эрроры
> и ворнинги все равно никто в консоли не увидит, если специально
> не откроет) это все полирует и закрепляет.
> И вот на выходе не программист, а гoвнoкодер, программистом по сути не
> являющийся. С, как это среди программистов принято, огромным самомнением.

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

> Ха-ха три раза. Что гугл захотел, то пропихнул. Раньше мс пропихивала. Остальные
> подтягиваются и делают как сказали. Ни вы, ни я, ни даже
> контора которую мы бы с вами откроем ничего в вебе не
> решит.

Хоть засмейся. Это ситуация последних лет. Но веб как таковой создавался не один десяток лет.. и даже тонны разных префиксов в css не просто так существуют.
И да, это именно результат компромисса: один протолкнул одно и все в итоге согласились, другой - другое, третий - третье, но остальные принципиально забили и фича загнулась.

Но таки нет, есть фаерфокс, который уже не тот, если сафари и поделия на вебките, есть хром и какие-то поделия на его движке

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

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

90. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 21-Мрт-21, 15:14 
> Со своей стороны кстати заметил, что худший жс-код нередко получается у тех,
> кто ранее кодил на шарпе или джаве - там будто бы
> какая-то профессиональная деформация

В джаве все есть класс. Так что да, профессиональная деформация.
Это, кстати, большой минус джавы о котором профессионаллы не уставали говорить с момента ее появления.


>> Что гугл захотел, то пропихнул.
> Хоть засмейся. Это ситуация последних лет.

Открываем стандарт, читаем шапку. "I. Fette, Google, Inc., A. Melnikov, Isode Ltd.". Вопрос на 100 очков - кто их этих четырех имел средства и авторитет для решающего голоса? Почему никто из этих четырех, если он действительно разрабатывал стандарт, а не пытался по быстрому продавить нужное решение, так и не сподобился за 11 лет его доделать до состояния "де-юре не драфт"?

> И да, это именно результат компромисса: один протолкнул одно и все в
> итоге согласились, другой - другое, третий - третье, но остальные принципиально
> забили и фича загнулась.

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

> поскольку полностью игнорируют наличие
> множества участников, планы и приоритеты которых нечасто совпадают

Ой как вы меня сейчас насмешили... У дочери как раз сегодня андроид обновился на ее самсунге, пришла с требованием вернуть все взад, так как "они все поменяли, я не знаю где что теперь, неудобно". И что, ее планы и приоритеты кто-то учитывает? А планы и приоритеты тех сотен миллионов, у которых более неподдерживаемые версии ведроида и которые вынуждены покупать новые девайсы потому что софт на старых больше не запускается?

У меня огромный телек на стене, которому еще полгода нет. Умеет в браузер. Месяц назад ютубчик на нем стал так тормозить, что невозможно смотреть. В итоге я отказался от ютуба, настроил автозакачку через youtube-dl и смотрю через minidlna.
Мои и других пользователей кто-то спрашивал, прежде чем навесить еще какой-то мегатормозной фреймворк на, секундочку, страничку с одним встроенным фреймом и десятком скриншотов? Нет. Гугл просто взял и навесил. И фиолетово, что оно выедает ресурсов не как отобразить десяток картинок и немного текста, а как вычислить последствия ядерного удара на атмосферу Титана при прохождении рядом космического шторма.

Наивность прям как у ребенка.


> реализация должна по максимуму сохранять обратную совместимость с тем что уже есть.

Вы меня сегодня доконаете. Я помру от смеха.

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

209. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Lex (??), 22-Мрт-21, 07:52 

> Открываем стандарт, читаем шапку. "I. Fette, Google, Inc., A. Melnikov, Isode Ltd.".
> Вопрос на 100 очков - кто их этих четырех имел средства
> и авторитет для решающего голоса? Почему никто из этих четырех, если
> он действительно разрабатывал стандарт, а не пытался по быстрому продавить нужное
> решение, так и не сподобился за 11 лет его доделать до
> состояния "де-юре не драфт"?

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

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

Не надо путать конечных пользователей, которых никто никогда не спрашивал и сами конторы, которые пилят сервисы, браузеры и проч.
У вас то ли с головой беда, то ли вы целенаправленно уходите от темы - речь изначально шла ИСКЛЮЧИТЕЛЬНО О КОНТОРАХ, ОТВЕТСТВЕННЫХ ЗА РАЗРАБОТКУ. Про конечных пользователей разговора В ПРИНЦИПЕ не шло.
Нынешний веб - результат компромисса между более-мене крупными конторами, а не конечными пользователями, многие из которых в принципе не знают, что такое сокет, шифрование или жс.

>> поскольку полностью игнорируют наличие
>> множества участников, планы и приоритеты которых нечасто совпадают
> Ой как вы меня сейчас насмешили... У дочери как раз сегодня андроид
> обновился на ее самсунге, пришла с требованием вернуть все взад, так
> как "они все поменяли, я не знаю где что теперь, неудобно".
> И что, ее планы и приоритеты кто-то учитывает? А планы и
> приоритеты тех сотен миллионов, у которых более неподдерживаемые версии ведроида и
> которые вынуждены покупать новые девайсы потому что софт на старых больше
> не запускается?

[2] Не надо путать конечных пользователей, которых никто никогда не спрашивал и сами конторы, которые пилят сервисы, браузеры и проч.

> У меня огромный телек на стене, которому еще полгода нет. Умеет в
> браузер. Месяц назад ютубчик на нем стал так тормозить, что невозможно
> смотреть. В итоге я отказался от ютуба, настроил автозакачку через youtube-dl
> и смотрю через minidlna.
> Мои и других пользователей кто-то спрашивал, прежде чем навесить еще какой-то мегатормозной
> фреймворк на, секундочку, страничку с одним встроенным фреймом и десятком скриншотов?
> Нет. Гугл просто взял и навесил. И фиолетово, что оно выедает
> ресурсов не как отобразить десяток картинок и немного текста, а как
> вычислить последствия ядерного удара на атмосферу Титана при прохождении рядом космического
> шторма.

[3] Не надо путать конечных пользователей, которых никто никогда не спрашивал и сами конторы, которые пилят сервисы, браузеры и проч.

> Наивность прям как у ребенка.

[4] Не надо путать конечных пользователей, которых никто никогда не спрашивал и сами конторы, которые пилят сервисы, браузеры и проч.


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

Ради б.-га.

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

Хотя, та замороченность с переходом на https, конечно, разговор отдельный.
Есть подозрение, что конторам-браузеростроителям очень не нравится, что посредники могут перехватывать часть той "бигдаты" вместо приобретения ее у того же гугла.. или правительства могут совершенно законно контролировать траффик и ловить потенциальных террористов( без отстегивания тому же гуглу. Хотя в США они и так могут - крупные медиаконторы обязаны передавать "куда надо" ключи для расшифровки. Не передают - не работают в сша )

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

224. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 22-Мрт-21, 12:03 
Прочитал. Понял.
Существенных возражений нет, а по несущественным сраться уже лень.
Ответить | Правка | Наверх | Cообщить модератору

253. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (253), 23-Мрт-21, 03:21 
> Со своей стороны кстати заметил, что худший жс-код нередко получается у тех,
> кто ранее кодил на шарпе или джаве - там будто бы какая-то профессиональная
> деформация, что они ничего не могут делать просто: даже примитивнейшая
> функция-помощник для обращения к бэкенду у них превращается в несколько файлов,
> кучу классов с наследованием и пробросом экземпляров одного класса в другой
> и обмазкой костылями, что потом черт ногу сломит, а если применяется тайпскрипт,
> то ещё и всевозможными интерфейсами, пометками для того или иного игнора проверок и
> проч обмазано.. и все равно работает с багами.

Вот сейчас, как шарписту, работающему в команде шарпистов, было обидно. Мы наоборот стремимся минимизировать количество фронтового кода, написанного бэкендерами. Соответственно, если надо получить что-то от бека на фронт, пишется один метод (ага, без классов, интерфейсов и прочих ООП ради ООП), внутри которого выполняется get запрос и кладётся в data/store, метод занимает строк 10. С учётом обработки ошибок. Да и количество символов в строке не превышает 80. Спасибо axios за это. Может, когда-нибудь и на fetch API перейдём, но пока он в нашем случае больше бойлерплейта вынуждает писать.

Про джавистов не скажу, после университета, где всё делалось на джаве, морально не мог больше на нём писать без сбегания на любую другую платформу, хоть Rust, хоть Python, хоть TypeScript.

> Хотя не исключаю, что это профессиональные заработчики,
> решившие чутка сменить специализацию.

Это ИМХО гораздо ближе к правде. ЧСХ, курсы эти выпускают питонистов, джавистов, гошников, пхпшников и джсников - всего 5 языков популярны у "стань прогером за месяц/полгода/год". На шарпе подобных курсов крайне мало (только ITVDN и по Unity), вся актуальная инфа всё-таки на английском. Либо универские, от того же УРФУ, например, но там всё-таки основы, а не для коммерческой разработки.

Знатно меня бомбануло.

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

77. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от DildoZilla (?), 21-Мрт-21, 14:30 
А если рыть дальше, то можно увидеть взаимозависимость ещё и с основным разговорным языком и грамотностью.
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

91. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 21-Мрт-21, 15:18 
> А если рыть дальше, то можно увидеть взаимозависимость ещё и с основным
> разговорным языком и грамотностью.

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

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

39. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +2 +/
Сообщение от Аноним (36), 21-Мрт-21, 11:51 
Я вот в целом даже согласен, но даже тут неадекватности умудрилось вылезти местами, хотя вот вроде понимающий же...

Ну вот смотри, в паре соседних абзацев написал это:
> Точно так же делаются всякие расты, из-за чего их и хейтят. Мы то знаем и помним, как правильно делать подобные вещи.

и это
> Я отвечу - потому, что все делается на коленке болванами и торопыгами. Да, продуктивными болванами, но от этого не менее болванистыми (и более вредными). Буяк-буяк-и-в-продакшен, web 2.0, аджаааааайл, некогда думать надо делать, прыг-прыг-прыг.
> Артефакты прошлой текучки. Эхо аджайла и разгильдяйства. Отголосок сломанного кривыми технологиями мозга (я намекаю на джаваскрипт).

Но при этом ты прекрасно знаешь, что вот это вот "Буяк-буяк-и-в-продакшен" написано на сях и плюсях.
Проблема не в расте, а вот в этих вот как раз "болванами и торопыгами @ некогда думать надо делать", а раст - это такая попытка сделать плюсы в которых отстрелить себе ногу сложнее, если прямо не написать в коде: "я здесь сейчас будут стрельбой себе по ногам заниматься". Причём рабочая попытка, потому что найти тех, которые "Мы то знаем и помним, как правильно делать подобные вещи" сейчас всё сложнее. И даже они НИКОГДА не писали код (в больших объёмах если) без тех ошибок, от которых немного помогает раст (ну то есть даже у ЛУЧШИХ случались такие ошибки в коде).

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

63. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +1 +/
Сообщение от Урри (ok), 21-Мрт-21, 13:44 
Отвечу не совсем по порядку

> Но при этом ты прекрасно знаешь, что вот это вот "Буяк-буяк-и-в-продакшен" написано на сях и плюсях.

Это не имеет отношения к теме разговора. Будет желание - можем обсудить отдельно.

> Проблема не в расте...

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

Но из-за того, что изначально никто не дал себе труда подумать, начальный красивый и простой дизайн превратился в заплатанного монстра франкенштейна с кучей различных стенографических значков. Как вам поинтеры &, &mut, *const, *mut...? Как вам выражение "let r2 = &mut num as *mut i32"? Красиво? Интуитивно? Логично?

В мозиле это увидели и это единственная причина, по которой раст выкинули на мороз. Им не нужен монстр.

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

> найти тех, которые "Мы то знаем и помним, как правильно делать подобные вещи" сейчас всё сложнее

Это больной вопрос. Вы правы, индустрия быстро растет, а профессионалов больше не особо становится. Так тем более к основным вещам надо относиться с повышенным вниманием (я вот лично к этому прикладываю по мере сил свою руку). Веб, как основа информационной ноосферы, особенно должен поддерживаться профессионалами, а не дилетантами.

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


> И даже они НИКОГДА не писали код (в больших объёмах если) без тех ошибок, от которых немного помогает раст (ну то есть даже у ЛУЧШИХ случались такие ошибки в коде).

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

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

148. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +2 +/
Сообщение от Аноним (127), 21-Мрт-21, 20:16 
> в плюсах есть различные умные указатели, которые проблему полностью решают; а отсутствие
> обычных указателей можно автоматически гарантировать на этапе приемки простым скриптом на баше;
> в плюсы элементарно встраивается сборщик мусора и т.д. и т.п.

Только вот всё совсем наоборот. Тот же Торвальдс к плюсам относится плохо, предпочитает чисты Си, в том же время против Rust ничего плохого не имеет.

Хотя бы потому что

> в плюсах есть различные умные указатели, которые проблему полностью решают

Это неправда.

> в плюсы элементарно встраивается сборщик мусора

И это не совсем правда, спросите у Microsoft, запиливший реализацию C++/CLI, поддержку которого почему-то в .NET Core не завезли. Интересно - почему? Не от того ли, что С++ всё-таки плохо решает (но решает!) задачи, в которых он используется?

И не от того ли Вы сами назвали Rust конкурентом C, а не C++, тогда как создатели языка никогда его так не позиционировали?

> "let r2 = &mut num as *mut i32"

Если Вам не нравится код, который Вы написали - может быть дело не в языке?
Если Вас пугает этот код, то низкоуровневый код на С/С++ Вам точно не стоит открывать.

Вот серьёзно, Вы сами выдумали, что Rust - конкурент C, из этого кучу проблем вывели. У C своя ниша, у Rust - своя, никто (кроме Вас, что как бы намекает) не называл его "убийцей C".

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

164. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (-), 21-Мрт-21, 21:54 
>> в плюсах есть различные умные указатели, которые проблему полностью решают
> Это неправда.

Если пошла такая пьянка, Boehm GC так то и на сях есть. Наверное и еще дохрена кого, этого просто чаще всего упоминают.

> У C своя ниша, у Rust - своя, никто (кроме Вас, что как бы намекает) не называл его "убийцей C".

Они местами пересекаются. Может поэтому? Однако попрогать на хрусте под PIC12, имхо, хайпожорам будет слабо. Слишком мелкотравчатый, хелловорлд весь чип займет.

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

207. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (127), 22-Мрт-21, 06:21 
> Если пошла такая пьянка, Boehm GC так то и на сях есть. Наверное и еще дохрена кого, этого просто чаще всего упоминают.

И как успехи у Boehm GC? Вы его сами использовали или нагуглили только что?

> Они местами пересекаются. Может поэтому? Однако попрогать на хрусте под PIC12,
> имхо, хайпожорам будет слабо. Слишком мелкотравчатый, хелловорлд весь чип займет.

А с какой целью кто-то вообще будет писать под микроконтроллеры на языке, заточенном под современные многоядерные процессоры?
Не станете же вы в борщ масло класть. Борщ - не каша, насколько мне известно. И микроконтроллеры, насколько мне известно, не спроектированы для параллелизации вычислений.
Да и проблема незрелости Rust до сих пор нерешена - компилятора родного нет, пока ни Google, ни Microsoft, ни кто-либо другой не проинансировали разработку полноценного компилятора, а не того MVP, что есть сейчас.

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

225. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 22-Мрт-21, 12:54 
> И как успехи у Boehm GC? Вы его сами использовали или нагуглили только что?

Я использовал. Это очень известный проект.

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

246. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (127), 22-Мрт-21, 23:36 
И как он под PIC12 идёт? Не мешает?
Ответить | Правка | Наверх | Cообщить модератору

261. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (-), 26-Мрт-21, 09:45 
> И как успехи у Boehm GC? Вы его сами использовали или нагуглили только что?

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

> А с какой целью кто-то вообще будет писать под микроконтроллеры на языке,
> заточенном под современные многоядерные процессоры?

Да вон под STM32 и авр пытаются. И для языка претендующего на системность есть некий пойнт
- Boot ROM, boot loader, кернелы и проч работают в специфичном и/или ограниченном окружении.
- В мире есть хренова куча задач кроме переросточных мегасерверов с нафигнужным вебмакакингом. Как бы это, 1 проц крутящий движок поезда пары сотен бесполезных серверов с котиками стоит.
- Си такой успешный потому что масштабируемый и универсальный. Хошь кучу тредов на 100500 ядрах, хошь микроконтроллер мелкий. Удобно.

TL;DR wannabe-системный язык должен уметь в системщину очевидно. Иначе какой он системный? :)

> насколько мне известно. И микроконтроллеры, насколько мне известно, не спроектированы
> для параллелизации вычислений.

И чего? А допустим одноплатники - это что? Там может быть 1 ядро. Или несколько. По смыслу как небольшой компьютер скорее уже. Впрочем в отличие от ламо есть и более вменяемые люди, понимающие что на очередном переростке с вебмакаками мир не кончается.

> Да и проблема незрелости Rust до сих пор нерешена - компилятора родного нет,

Зато синтаксис уже переколбасили до уровня плюсов, пожалуй.

> пока ни Google, ни Microsoft, ни кто-либо другой не проинансировали
> разработку полноценного компилятора, а не того MVP, что есть сейчас.

Эти решальщики проблем на удивление талантливы в их создании.

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

250. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (250), 23-Мрт-21, 00:59 
> C++/CLI, поддержку которого почему-то в .NET Core не завезли.

Поддержку .NET Core в C++/CLI добавили в прошлом году. Тут дело не в .NET [Core], а в том, что единственным компилятором с поддержкой C++/CLI до сих пор является MSVC. Подозреваю, остальным просто нафиг не упёрлось тратить время и силы на реализацию этого мутанта, по своей природе поддерживающего только пересечение множеств фич плюсов и .NET.

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

252. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (253), 23-Мрт-21, 02:56 
Ага, "фич" плюсов. Которые почему-то даже Microsoft с огромным штатом разрабов не реализовала полностью. Какой там стандарт заявлен как полностью поддерживанмый? Насколько помню, никакой, потому что они только по кусочку из каждой новой версии стандарта добавляют.

Тот же Unity почему-то тоже перешёл с плюсов на C# как основной язык.
При этом .NET развивается самимильрвми шагами, наверное между C++ и .NET проблема всё-таки не в .NET.

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

258. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (250), 24-Мрт-21, 02:19 
> даже Microsoft с огромным штатом разрабов не реализовала полностью.

"Даже" Microsoft, хехе. В 2000-х у них была одержимость дотнетом и до MSVC 2013 на поддержку C++ они откровенно забивали, сейчас с этим чуть ли не лучше, чем у GCC и Clang.

> Какой там стандарт заявлен как полностью поддерживанмый?

Полностью 17-й и значительная часть 20-го (https://en.cppreference.com/w/cpp/compiler_support#cpp20).

> Тот же Unity почему-то тоже перешёл с плюсов на C# как основной язык.

AFAIK, сам движок по-прежнему на C++, на шарпе скрипты и прочая логика, не так сильно критичная к производительности. Да и так перешёл, что для борьбы с тормозами-задержками JIT-а и GC пришлось запилить уже два AOT-компилятора дотнетовского байткода в машинный код (IL2CPP, Burst).

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

262. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (-), 26-Мрт-21, 09:47 
> Ага, "фич" плюсов. Которые почему-то даже Microsoft с огромным штатом разрабов не
> реализовала полностью.

Они C99 c какого там года полностью реализовать не могут? А ты эвона чего от них захотел. Им видите ли удобнее всего было бы продавать новую версию как кр00тую и улучшенную вообще без переделки.

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

191. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (36), 21-Мрт-21, 23:51 
> Это не имеет отношения к теме разговора. Будет желание - можем обсудить отдельно.

Очень даже имеет: ты привёл в пример вебсокеты, как пример "Буяк-буяк-и-в-продакшен" (и правильно привёл), но ведь в самом популярном браузере в мире вот это вот всё  с вебсокетами написано не на расте. Сам назовёшь, на чём?

> в плюсах есть различные умные указатели, которые проблему полностью решают

Если решают, то почему проблема еще не решена? Это был риторический вопрос. Правда в том, что не решают.

> заплатанного монстра франкенштейна с кучей различных стенографических значков. Как вам поинтеры &, &mut, *const, *mut...? Как вам выражение "let r2 = &mut num as *mut i32"? Красиво? Интуитивно? Логично?

Если уж речь про красоту и интуитивность - не страшнее ассемблера выглядит, но это просто к слову. Ну вот, говорил "Мы то знаем и помним, как правильно делать подобные вещи.", а сам непривычного синтаксиса испугался.
Я, кстати, читал спор, который вот так же начинался: "этот ваш синтаксис в расте - г*вно, надо было логичнее". Но на вопрос предложить лучше в каждом конкретном случае - не мог: косяки ипротиворечия лезли в "пропозалах".
Вообще, для того, кто "знает и помнит, как правильно делать подобные вещи" ты ведь прекрасно должен быть в курсе, что новички требуют синтаксис поочевиднее (но он всегда получается многословнее), а профи хотят синтаксис "поэффективнее". И баланс найти сложно. И языки, котоыре выбрали первый путь или вымерли или являются нишевыми, а которые выбрали второй - стали стандартами отрасли.
И именно так вместо написания очень очевидного, красивого, интуитивного и логичного "equal" во многих современных ты пишешь значок типа "=", вместо "more" "less" - "<" и ">" и т.д. Такого полно и в сях и в плюсях и еще почти во всех СЯПах. Просто там ты уже знаешь синтаксис и привык, а в расте - не знаешь и/или не привык (и не хочешь, а в этом случае уже ничего не поможет).

> Вы же не наймете таджиков проектировать из говна и палок небоскребы только потому, что "нормальных архитекторов мало, сложно найти"?

А это не и мне не тебе решать, увы. Нанять одних только супепрофи (и получить с них потом суперкод) еще никому не удалось. Оффтоп: к слову, о небоскрёбах - поищи фотки строителей первых Нью-Йоркских небоскрёбов - вполне себе "таджики" по американским меркам были.

> Этот сомнительный плюс

Если этот плюс защищает от некой (ЧАСТОЙ!) категории ошибок, то это хороший плюс. Например, это самый частый тип ошибок в коде фаерфокса, по заявлению самой мозиллы. Они из-за этого и стали раст пилить-то.

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

46. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  –1 +/
Сообщение от Ordu (ok), 21-Мрт-21, 12:25 
> Вот так base64 с гуидом и остались. Артефакты прошлой текучки. Эхо аджайла и разгильдяйства.

И чё? Это приводит к каким-то неприятностям, или что?

> Так в стандарте (rfc6455) и написано прямым текстом "base64".

Ты точно стандарт читал?

Там смотри что:

> 1.3.  Opening Handshake
>   _This section is non-normative._

non-normative, да?

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

70. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +3 +/
Сообщение от Урри (ok), 21-Мрт-21, 13:54 
> И чё? Это приводит к каким-то неприятностям, или что?

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


> non-normative, да?

Дорогой Ordu, если ты не заметил, то каждый (каждый!) раздел стандарта rfc-6455 помечен плашкой "_This section is non-normative._". Это такая де-юре отметка старших умных дядей, что они эту фигню не одобряли и одобрять не собираются. Чтобы потом стыдно не было.

Де-факто (и де-юре) этот стандарт принят еще в 2011 году (с парой маленьких апдейтов, по сути ничего не меняющих), "спасибо" Гуглу. Все реализации webSockets ему следуют. И если ты сделаешь иначе, то твой код не будет общаться с браузерами и веб-серверами.

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

85. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Ordu (ok), 21-Мрт-21, 15:00 
>> И чё? Это приводит к каким-то неприятностям, или что?
> Вот! Прекрасная иллюстрация моего комментария о говнокодерах, искалеченном мозге и невозможности
> им быть программистами.

Отличный аргумент. Я люблю такие. Убеждают на все 100%. Остальные вопросы отпадают.

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

93. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +2 +/
Сообщение от Урри (ok), 21-Мрт-21, 15:22 
> Отличный аргумент. Я люблю такие. Убеждают на все 100%. Остальные вопросы отпадают.

Ну еще бы не любил. Типичный (коих 95%) человек обязательно выберет способ избавиться от неприятных и/или непонятных аргументов путем концентрации на не относящееся к делу, но потенциально обидное.

Это был комментарий не для тебя, а для других. А ты проходи мимо, не порти себе нервы, эффект Даннинга-Крюгера не спит.

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

95. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Ordu (ok), 21-Мрт-21, 15:34 
>> Отличный аргумент. Я люблю такие. Убеждают на все 100%. Остальные вопросы отпадают.
> Ну еще бы не любил. Типичный (коих 95%) человек обязательно выберет способ
> избавиться от неприятных и/или непонятных аргументов путем концентрации на не относящееся
> к делу, но потенциально обидное.

Ты льстишь себе. Ты можешь на говно изойтись тут и меня не обидеть. У тебя просто интеллекта не хватит. На самом деле ни у кого на опеннете не хватит интеллекта меня обидеть, потому оно даже потенциально не обидное. А вот ad hominem в качестве аргумента, и ноль технической аргументации -- это уже диагноз.

> Это был комментарий не для тебя, а для других.

Да-да, оправдывайся теперь.

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

100. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 21-Мрт-21, 15:48 
Вся техническая аргументация была в первом комментарии. Не моя проблема, что твой сверхинтеллект не смог ее осилить а смог только выдавить из себя "ну работает же, не вижу проблемы".

Ну да, не видишь, о чем и речь.

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

101. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Ordu (ok), 21-Мрт-21, 15:57 
> Вся техническая аргументация была в первом комментарии.

Пфф... Ты вопроса моего не заметил? Просто так языком болтал?

> Ну да, не видишь, о чем и речь.

Старайся сильнее -- может тебе всё же удастся меня оскорбить? Докажи нам своё превосходство в интеллекте. Мы болеем за тебя.

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

103. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 21-Мрт-21, 16:20 
Зачем мне тебя оскорблять и доказывать совершенно очевидные вещи? Ты еще попроси доказать что днем светло и ночью темно.

И почему ты о себе говоришь "мы"?

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

113. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Ordu (ok), 21-Мрт-21, 17:21 
> Зачем мне тебя оскорблять и доказывать совершенно очевидные вещи?

А чем ты здесь занимаешься интересно? Если не тем и не этим, то чем?

> И почему ты о себе говоришь "мы"?

Ты же выше говорил о том, что твои слова предназначены всем читателям? Вот я от их лица и жду. Хоть чего-нибудь.

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

181. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (181), 21-Мрт-21, 22:51 
Non-normative означает всего лишь то, что секция написана языком, не соответствующим rfc2119.
Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

74. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (80), 21-Мрт-21, 14:14 
> к этой строке надо конкатенировать другую строку "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"

Написано. Читаем внимательно.
For this header field, the server has to take the value (as present
   in the header field, e.g., the base64-encoded [RFC4648] version minus
   any leading and trailing whitespace) and concatenate this with the
   Globally Unique Identifier (GUID, [RFC4122]) "258EAFA5-E914-47DA-
   95CA-C5AB0DC85B11

Вы вообще не поняли что там написано и про что этот GUID. Это просто идентификатор, что сервер поддерживает WebSocket. Это не "ключ".

Вся эта церемония нужна чтобы КЛИЕНТ понял что да, ответ пришёл от сервера и этот сервер поддерживает WebSocket.

И что это не ответ другому клиенту (для этого используется клиентский "ключ"). Который тоже ни фига не ключ, а просто уникальный идентификатор.

Все что клиенту нужно это ответ сервера сравнить с sha1(clientKey+"...GUID") строка.

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

96. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 21-Мрт-21, 15:34 
> Читаем внимательно.

Попробуйте, пока у вас не вышло.


> Вы вообще не поняли что там написано и про что этот GUID.
> Это просто идентификатор, что сервер поддерживает WebSocket. Это не "ключ".

Вы не смогли осилить мой комментарий, правда? Я вам процитирую главное.

--- cut ---
Внимание, вопрос: почему в стандарте не написано "сгенерируйте текстовую строку из разрешенных символов? Почему не написано "к этой строке надо конкатенировать другую строку "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"? Почему там требование ненужного base64 и ненужного guid?
--- cut ---

Строка "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" не GUID. Это просто строка, для конкатенирования к другой строке, принятой от клиента. Не к base64-кодированным данным, а к обычной строке, ведь декодирования не происходит. GUID - это 16 байт. Конкатенируемая "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" - это строка.


For this header field, the server has to take the value (as present
in the header field, e.g., the base64-encoded [RFC4648] version minus
any leading and trailing whitespace) and concatenate this with the
Globally Unique Identifier (GUID, [RFC4122]) "258EAFA5-E914-47DA-
95CA-C5AB0DC85B11

Перевод: сервер должен взять строку из заголовка и прибавить к ней другую строку. Все. Слова base64-encoded, RFC4648, GUID, RFC4122 совершенно лишние и вообще никакого смысла в данном случае не несут.

Не сервер должен декодировать base64 строку и добавить к ней сгенерированный guid. Нет. Сервер должен взять пришедшую строку и добавить к ней строку "258EAFA5-E914-47DA-
95CA-C5AB0DC85B11".

Клиент, который будет проверять ответ, тоже должен взять эти строки. Не свои случайно сгенерированные 16 байт, как написано в стандарте "The value of this header field MUST be a nonce consisting of a randomly selected 16-byte value that has been base64-encoded", а уже закодированную в base64 строку. Смысла в генерации этих байт по стандарту нет. Можно сразу генерировать строку похожую на base64 (из алфавита a..z=), от этого смысл ни на йоту не поменяется.

Теперь понимаете?

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

111. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (80), 21-Мрт-21, 17:19 
По-порядку.

---> Почему не написано "к этой строке надо конкатенировать другую строку "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"

Ты английский не понимать? Я тебе прямым текстом цитату скинул в прошлый раз. Ещё раз, но попроще...

---> concatenate this with "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" in string form

----> сгенерируйте текстовую строку из разрешенных символов

Там не надо ничего генерировать.
Это уникальный идентификатор протокола, ты до сих пор этого не понял? Вернул эту строку - значит соответствует спецификации стандарта WebSocket.

---> Строка "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" не GUID
---> GUID - это 16 байт

GUID - это стандарт того, как генерировать "уникальный" идентификатор.

Если строка сгенерирована по спецификации - это GUID. Точка. Если другие строки будут сненериоованы по спецификации - шансы коллизий минимальны.

Или ты хочешь сказать что если я в коде сненерировал GUID и начал им пользоваться (и сервер / клиент / пользователь) увидел его - это уже не GUID?

Тут просто взяли и сгенерировали GUID и вставили в стандарт.

И это GUID ровно в том самом смысле - соответствует спецификации стандарта.

Открываем стандарт https://tools.ietf.org/html/rfc4122. Читаем...
---> The formal definition of the UUID string representation is...


"258EAFA5-E914-47DA-
95CA-C5AB0DC85B11" - это не строка. Это строковое представление GUID.

---> Внимание, вопрос: почему в стандарте не написано "сгенерируйте текстовую строку из разрешенных символов

Что там сервер будет "генерировать"?) Версию протокола? Ещё раз - этот GUID не определяет уникальность сервера, он определяет какой спецификации он соответствует. Поэтому он в тексте стандарта. Там могла быть любая, достаточно уникальная строка, типа "rfc-5432-websocket".

Наоборот, подумали и перестраховались, а не влепили что попало. Это как раз показатель продуманного и хорошего стандарта.

---> ведь декодирования не происходит

Не происходит.

Весь смысл base64 в этом ...
---> Base encoding of data is used to store or transfer data restricted to US-ASCII [1] data.

Base encoding can also be used in new applications that do not have legacy restrictions, simply because it makes it possible to manipulate objects with text editors.

Те чтобы ты мог легко декодировать данные, которые приходят по HTTP. Ведь HTTP это текстовый протокол. А данные могут передаваться по нему самые разные.

И этот base64 используется в сотнях, если не тысячах RFC для HTTP чтобы реально кодировать / декодировать данные. И HTTP клиенты / серверы уже имеют base64 кодировку. И есть куча библиотек для этой кодировки. Логично использовать её же, тк HTTP стандарты должны имееть преемственность и дружить друг с другом.

А тут приходит такой Вася - эксперт с opennet и говорит "Нинужна! Сложна!" надо "Можно сразу генерировать строку похожую на base64 (из алфавита a..z=)".

Те Вася предлагает НОВУЮ кодировку, "похожую". Под конкретно этот стандарт. Остальные заголовки будут приходит в base64, а этот "из алфавита a..z=".

А потом ещё одну, под другой...и ещё одну...

Хорошо что стандарты пишут "говноделы из Google", а не "эксперты с opennet". Надеюсь что так и дальше останется.


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

117. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 21-Мрт-21, 17:36 
Мда. Сплошнолй фейспалм. Ordu выше и то умнее выступил.

Что я могу на все это ответить? Только одно: "Прекрасная иллюстрация #2 озвученного в первом комментарии тезиса. Даже более красноречивая, чем #1".

Очередной эффект Даннинга-Крюгера.

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

119. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (80), 21-Мрт-21, 17:49 
Ну вот Васе и нечего по-сути ответить, по спецификации.


Вася не умеет внимательно читать и, тем более, понимать спецификации.

Вась, признавайся, эникейщиком работаешь али в отделе кадров засидаешь.

Твой технический и экспертный уровень понятен. Он... сколько таких "Вась-экспертов" с opennet.

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

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

94. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  –2 +/
Сообщение от Ilya Indigo (ok), 21-Мрт-21, 15:25 
> WebSockets. Очевидно, нужная вещь. Работающая. Полезная.

Никогда не понимал, зачем использовать это трудно-реализуемое дерьмо, если есть простой и нативный (для HTTP протокола), SSE, который в тандеме с redis отлично работает!?

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

98. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Урри (ok), 21-Мрт-21, 15:41 
Не знал о таком.
Ответить | Правка | Наверх | Cообщить модератору

107. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +2 +/
Сообщение от Ilya Indigo (ok), 21-Мрт-21, 16:48 
> Не знал о таком.

https://developer.mozilla.org/ru/docs/Web/API/Server-sent_ev...
Не удивительно. Google так любит кукарекать о своих монструозных и ненужных поделках, таких как websockets, AngularJS, docker, kubernates и прочих или вообще ненужных или нужных только узкому круку специалистов, занимающимися облаками, но они про них кукарекают молодым специалистам, но ни слова не говорят о самые обычном и нативном, таком как SSE, redis, systemd (capibilities).

Год назад передавал свой web-проект молодому разработчику, который нишиша не знает о linux, о том как настраивать nginx и php-fpm, уже молчу про то чтобы создавать и настраивать systemd-юниты, но он знает про docker и как устанавливать nginx и php из докера!
На вопрос, на хрена тебе сдался докер!? Он отвечает, что это удобно надёжно и безопасно...
На мой комментарий о том, что всё что делает докер можно сделать и использую capibillities в systemd, и это будет и удобнее и надёжнее, он говорит про них он не знает для него это слишком сложно, меня учили так и мне сказали что это надёжно и безопасно...
И как я и ожидал, у него хорошенько подгорело, когда он узнал что в проекте используется ещё и redis...
Ведь для redis нужен отдельный контейнер и настроить взаимодействие между этими контейнерами выставив привелегии и общие файлы... И самое умное что он сделал это спросил, а нельзя ли УБРАТЬ redis из проекта. XD XD XD
В общем такие гугловые специалисты растут....

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

118. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +1 +/
Сообщение от Урри (ok), 21-Мрт-21, 17:39 
Ну тот проект я уже давно сдал, а за информацию спасибо. Почитаю и если придут с похожей задачей возможно попробую предложить.
Ответить | Правка | Наверх | Cообщить модератору

143. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  –1 +/
Сообщение от Аноним (-), 21-Мрт-21, 20:04 
Да ладно тебе, вебсокеты не монструозные. Там конечно есть скелеты в шкафу, но вообще простой дровяной протокол, его даже мелкий lwan себе запилил. И таки оно именно нормальный поток, с произвольными данными, более потребный для околореатлаймных коммуникаций типа чатика или апдейтов статусов/переменных. А не какой там HTTP на костылях. Хоть вебмакаки и навебмакачили, конечно, малость.

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

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

155. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Ilya Indigo (ok), 21-Мрт-21, 20:24 
Что за дичь Вы несёте!?
Зассанный казачёк от Гугл или просто идиот?
Slowloris и прочие атаки возможны только на коряво настроенном сервере.
На нормальном сервере (последний nginx с дефолтными настройками) таймауты и прочие ограничения такого сделать просто не дадут, а если кто-то попытается, то в логах этот вредитель быстро будет замечен и забанен.
WebSockets монструозен, по сравнению с SSE, на котором и чатики и всё остальное, включая обновления страницы в реальном времени без перезагрузки, можно гораздо легче и эффективнее организовать.
Шли бы Вы со своим Иваном и прочими гулоботами отсюда нафиг!
Ответить | Правка | Наверх | Cообщить модератору

168. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (-), 21-Мрт-21, 22:12 
> Зассанный казачёк от Гугл или просто идиот?

Тот кто поигрался с HTTP, ws и издевательствами над ними на низком уровне, а также и потестивший всякие странные приколы. Пойдет? :)

> Slowloris и прочие атаки возможны только на коряво настроенном сервере.

ЧСХ на момент его появления такими были чуть более чем все. А наименее корявым - IIS (фэйспалм!)

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

> На нормальном сервере (последний nginx с дефолтными настройками) таймауты и
> прочие ограничения такого сделать просто не дадут, а если кто-то попытается, то в
> логах этот вредитель быстро будет замечен и забанен.

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

> WebSockets монструозен, по сравнению с SSE, на котором и чатики и всё
> остальное, включая обновления страницы в реальном времени без перезагрузки, можно гораздо
> легче и эффективнее организовать.

Я не знаю кому там и что "легче" но выглядит это как попытка натянуть сову на глобус. А ws таки может быть совершенно отдельный канал, не имеющий ничерта общего с HTTP и его протоколом после его подъема, по поводу чего там может гулять эффективный task-specific протокол, вообще никак не завязаный на HTTP и ближе всего это, натурально, к сетевому сокету. И я не вижу ничерта сложного с подъемом ws, это и в js делается парой строк, да и на стороне сервера не сильно сложнее. В lwan examples этого есть и назвать все это сложным - глум над здравым смыслом.

> Шли бы Вы со своим Иваном и прочими гулоботами отсюда нафиг!

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

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

223. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  –1 +/
Сообщение от Додо (?), 22-Мрт-21, 11:56 
Потому что SSE односторонний - с сервера к клиенту. Для отправки данных от клиента к серверу придется использовать HTTP запросы и как-то отправлять ответ через SSE.
Вебсокеты - двухсторонние. Можно получать данные от клиента, можно отправлять данные клиенту. Обработку данных можно производить в рамках одного класса.
Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

233. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Ilya Indigo (ok), 22-Мрт-21, 14:05 
> Потому что SSE односторонний - с сервера к клиенту.

Ещё один гуглобот...
Потому что через HTTP есть дофига способов отправить сообщение от клиента к серверу, в отличие от WebSockets, который НЕ может работать через HTTP, и он ВЫНУЖДЕН реализовать канал от клиента к серверу, который в случае с SSE просто не нужен, так данные в обе стороны проходят через HTTP в рамках одного класса!
И этот вынужденный костыль, маркетолухи гугла раскручивают как мегафичу...

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

240. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Додо (?), 22-Мрт-21, 18:42 
> Ещё один гуглобот...

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

> Потому что через HTTP есть дофига способов отправить сообщение от клиента к
> серверу, в отличие от WebSockets, который НЕ может работать через HTTP,
> и он ВЫНУЖДЕН реализовать канал от клиента к серверу, который в
> случае с SSE просто не нужен, так данные в обе стороны
> проходят через HTTP в рамках одного класса!

С использованием HTTP можно отправить данные от клиента к серверу:
1. в пути запроса, через query-переменные;
2. в заголовках запроса;
3. в теле запроса (при использовании методов POST, PUT, PATCH).
Это не "дофига способов", это только три. Если отправлять сообщения при помощи SSE, от сервера к клиенту, то можно указать только event и тело.
В Websocket можно указать только тело сообщения. При запросе апгрейда соединения - еще query параметры и заголовки (хоть передачу заголовков мало кто поддерживает).
В конечном счете все сводится к тому, что практически всегда данные передаются в теле запроса, в том или ином сериализованном виде. И с этой точки зрения нет никакой разницы, что использовать.
Кстати, у SSE есть большой, жирный минус: через него нельзя передавать бинарные данные, у него используется \n\n как разделитель сообщений.

> И этот вынужденный костыль, маркетолухи гугла раскручивают как мегафичу...

И SSE, и Websocket были разработаны в рамках группы WHATWG. В нее как бы не только Google входит.
Если смотреть на данные https://caniuse.com/ , то поддержка Websocket в Chrome появилась с версии 4, SSE с версии 6. Не такой уж большой разрыв.
Кстати, там же можно заметить, что в Firefox Websocket появился в версии 4, а SSE в версии 6 (такое вот совпадение) - что, Mozilla в далеком 2011 году тоже продалась Google, раз реализовала Websocket раньше SSE? :)

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

241. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Ilya Indigo (ok), 22-Мрт-21, 19:09 
> Это не "дофига способов", это только три.

А этого мало, или мы за неимением аргументов переходим к придиркам к словам?

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

То есть Вы признаёте что двунаправленность WebSockets это просто маркетинговый пиар, а вовсе не преимущество над SSE.

> Кстати, у SSE есть большой, жирный минус: через него нельзя передавать бинарные
> данные, у него используется \n\n как разделитель сообщений.

Необходимость передачи бинарных данные у меня и не возникала, но решается элементарно с base64.

>> И этот вынужденный костыль, маркетолухи гугла раскручивают как мегафичу...
> И SSE, и Websocket были разработаны в рамках группы WHATWG. В нее как бы не только Google входит.

Не важно кто входит в группу, важно кто пиарит или каким-то образом поддерживает этот пиар.

docker и kubernates тоже не один гугл разрабатывает, но вкладывается пиар, прямо или косвенно, именно он!

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

254. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Додо (?), 23-Мрт-21, 11:47 
>> Это не "дофига способов", это только три.
> А этого мало, или мы за неимением аргументов переходим к придиркам к
> словам?

Это не "дофига", это "несколько". И как раз ваш вопрос является придиркой.
Аналогично можно передавать данные в query-параметрах и заголовках при осуществлении соединения по SSE или при апгрейде соединения в Websocket. Разница только в том, что для SSE и Websocket в них можно передать данные лишь в самом начале, а в HTTP-запросах - в каждом запросе.

>> В конечном счете все сводится к тому, что практически всегда данные передаются
>> в теле запроса, в том или ином сериализованном виде.
>> этой точки зрения нет никакой разницы, что использовать.
> То есть Вы признаёте что двунаправленность WebSockets это просто маркетинговый пиар, а
> вовсе не преимущество над SSE.

Большой минус HTTP-запросов - необходимость открывать новые соединения (постоянно для HTTP 1, периодически дли HTTP 2/3).
В случае SSE при использовании HTTP 1 мы имеем 1+n соединений (1 соединение для SSE, n соединений для отправки HTTP запросов).
В случае Websocket мы имеем 1 соединение в любом случае, так как через него можно и отправлять, и получать данные.

>> Кстати, у SSE есть большой, жирный минус: через него нельзя передавать бинарные
>> данные, у него используется \n\n как разделитель сообщений.
> Необходимость передачи бинарных данные у меня и не возникала, но решается элементарно
> с base64.

base64 раздувает данные на треть. 4096 байт в base64 будут 5464 байт.
SSE не дает отправлять сырые текстовые сообщения, по причине того же разделителя. Нужно обязательно как-то сериализовать данные, чтобы не дай боже в теле не было \n\n.

Итого мы имеем...
SSE:
+ более нативное поведение для протокола (легко реализуется);
- обязательная сериализация данных (ограничение протокола);
- невозможность передачи бинарных сообщений (ограничение протокола);
- односторонний канал связи (ограничение протокола, требует дополнительных запросов для отправки данных).
Websocket:
+ двухсторонний канал связи (отправка и получение данных внутри одного соединения);
+ возможность передачи любых сообщений в любом виде (в том числе бинарных);
- отдельный протокол, требующий особой поддержки и апгрейда соединения (сложность реализации, плохо продуманный handshake).
Казалось бы, зачем нужен Websocket, если у SSE "дофига" плюсов (целый один)?

>>> И этот вынужденный костыль, маркетолухи гугла раскручивают как мегафичу...
>> И SSE, и Websocket были разработаны в рамках группы WHATWG. В нее как бы не только Google входит.
> Не важно кто входит в группу, важно кто пиарит или каким-то образом
> поддерживает этот пиар.
> docker и kubernates тоже не один гугл разрабатывает, но вкладывается пиар, прямо
> или косвенно, именно он!

SSE разработан для отправки сообщений с сервера.
Websocket разработан как аналог TCP соединения в JS (с ограничениями), изначально даже назывался TCPConnection.
Это _разные_ технологии, и из этих двоих Websocket более функционален. Его даже пиарить не нужно, он банально более удобен в использовании. В Websocket можно легко инкапсулировать другие протоколы, типа STOMP.

А насчет пиара... Вон, Microsoft в последнее время пиарит Linux. Что теперь, отказываться от Linux и переходить на FreeBSD? Oh, wait, его же Sony пиарит, используя в своих консолях...

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

139. "В ночных и бета сборках Firefox включена по умолчанию поддер..."  +/
Сообщение от Аноним (-), 21-Мрт-21, 19:58 
> Так вот, повторюсь - HTTP/3 такое же непродуманное ненужно. Для веб-страничек не
> нужен очередной велосипедный TCP, им и классического с головой хватает.

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

И так то оно ничего - но вот смотрит юзер ютут - бац - крутится. Хотя, казалось бы и канал в инет жирный, и вафля не загружена. А вот поди ж ты, факап на ровном месте.

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

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

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




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

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