Denis
false
Alexander
Пятница начинается не с кофе. Она начинается с языкосрача!
Denis
вот здесь проверял: https://js.do/
Denis
да это же не срач, это просто шок какой-то
Denis
😊
Aleksei (astynax)
очевидно, когда знаешь как работает = не очевидно
= в сочетании с обращением по индексу вызывает метод __setitem__. Это известно любому питонисту
Aleksei (astynax)
Да, язык надо знать, внезапно
Ilya
= в сочетании с обращением по индексу вызывает метод __setitem__. Это известно любому питонисту
молодец, возьми с полки пирожок. только здесь "=" было не питоновское
Alexander
да это же не срач, это просто шок какой-то
Ты на питоне писал? Вот уж боль так боль, когда хаскеллиста пересаживают на этот язык. Открытий чудных никак не меньше, чем в JS.
Aleksei
Ну если знаешь как сравнивать, то норм) Главное помнить что NaN не равен сам себе)))
Ilya
Да, язык надо знать, внезапно
этим можно оправдать любую ересь в любом язке. и твит дениса тоже
Aleksei (astynax)
этим можно оправдать любую ересь в любом язке. и твит дениса тоже
Перегрузка операторов сделана в питоне так. И это не ересь, даже если вам лично не нравится
Aleksei (astynax)
Развели тут вкусовщину!
Aleksei (astynax)
(как обычно, лол)
Ilya
Перегрузка операторов сделана в питоне так. И это не ересь, даже если вам лично не нравится
какая перегрузка операторов? ты о чем вообще? где ты её там увидел
Aleksei (astynax)
Мы про питон все ещё?
Ilya
я да
Alexander
На уровне Hello World только...
Есть один чудесный, прекрасный, удивительный косяк дизайна языка, который противоречит самой его философии. https://stackoverflow.com/questions/1132941/least-astonishment-and-the-mutable-default-argument
Alexander
Ну и прочих приколов в нем хватает
Aleksei (astynax)
Писал на питоне пррфессионально шесть лет. Брат жив.
Aleksei (astynax)
Язык неидеален, но всяко сильно лучше, чем JS
Aleksei (astynax)
Писать на нем я больше не хочу, но прозвучавшие нападки - странные. Питон есть за что ругать, но не за вышеперечисленное
Aragaer
у меня пока самая болезненная травма - от с#
Aragaer
уж сколько лет прошло, но до сих пор не могу себя заставить на него смотреть
Denis
И да, я плевался.
Alexander
У меня где-то есть документик, где я рефлексировал про недостатки Питона.
Alexander
у меня пока самая болезненная травма - от с#
А вот не соглашусь. C# хорошо задизайнен. Ну, сравнительно.
Aragaer
я не про дизайн. Конкретно у меня была задача принять из сокета пачку байт и распарсить в структурку. На теплом ламповом си это делается одним кастом. На шарпе я бился лбом об стол и не понимал, чего он от меня хочет.
Ilya
Писал на питоне пррфессионально шесть лет. Брат жив.
мини-тест на профпригодность >>> x = 12345 >>> y = 12345 >>> id(x) == id(y) что выведет?
Aragaer
что-нибудь
Aragaer
какая разница, что - все равно так делать не надо
Aleksei (astynax)
12345 - большая чиселка. Не кеширует питон такие
Ilya
правильный "зависит от реализации"
Ilya
на python3 False, на pypy True , например
Aleksei (astynax)
cpython конечно
Ilya
cpython конечно
:) этого оговорено не было.
Aleksei (astynax)
на ваши тупые нападки заканчиваю реагировать
Aragaer
char buf[1024]; recv(sock, buf, sizeof(buf), 0); my_struct *s = (my_struct *) buf;
Aragaer
типа такого
Alexander
Но как же... Лайоут полей?
RattenKong 🦧🐀🦍️
Alexander
Компилятор же может их перетусовывать по усмотрению
Aragaer
ну там с проверками, что пришло сколько надо
Aragaer
мм. нет, не может
Aragaer
выравнивание может быть, но тут все было ок предусмотрено
Alexander
Это точно? Насколько я помню, порядок тоже может внезапно измениться. Чтобы выравнивание получилось
Aragaer
а шарп мне заявил "иди читай про маршаллинг многостраниц, раз ваще ничего не умеешь"
Alexander
Ну а как бокснутые структуры кастом создать?
Aragaer
нет, в си порядок будет ровно какой надо, но может быть выравнивание добавлено между полями
Aragaer
что значит бокснутые?
Aragaer
в жаве может быть изменен порядок полей в классе, чтобы сгруппировать сначала все то, что выравнивается по 8 байт, а потом что по 4 байта, а потом остальное
Alexander
Да, тут надо терминологию выровнять. Ты пытался в struct это запихать? Это как-то не очень даже звучит. Но он хотя бы value type
Aragaer
нет, я просто пытался указатель на последовательность байт привести к типу "указатель на структуру". С поправками на выравнивание.
Aragaer
в обычном си это совершенно нормальная практика
Alexander
Указатель на struct? А где он должен лежать, сам struct?
Aragaer
там, где лежат байты
Aragaer
обращение по этому указателю будет попадать на те же байты, с корректными смещениями и приведениями типов
Alexander
Но где лежат байты? Неясно. Вычитал, положил в байт массив, сделал указатель на это? Я бы даже пытаться не стал, на C# так не пишут, как на Си. Ну или тебе прямая дорога в managed c++
Alexander
Вообще, эти пограничные вопросы требуют более глубокого погружения в то, как в языке обрабатываются данные.
Aragaer
ну я про то и говорю, что в си это совершенно идиоматичный код. Создал на стеке массив, вчитал в него байты, затем наложил на эти байты структуру (я это обычно в таких терминах описываю) и получил нужные мне данные.
Alexander
Но в чем здесь недостаток C#?
Aragaer
я не говорю, что недостаток. Я говорю, что я это не осилил сделать на шарпе. Он меня послал читать про маршаллинг и анмаршаллинг, я силился это понять, не смог, сделал все как-то совсем на коленке (эндианнесс известен, порядок полей тоже, вручную все со сдвигами слепил, завелось) и больше к шарпу с тех пор не прикасался
Alexander
Ну вот есть MarshalPtrToStructure: https://msdn.microsoft.com/ru-ru/library/4ca6d5z7(v=vs.110).aspx И это не так уж страшно
Aragaer
и вот только в этом году впервые снова столкнулся с анмаршаллингом (в го парсил жаваскрипт в структуру) и что-то сложилось
Alexander
Это точно? Насколько я помню, порядок тоже может внезапно измениться. Чтобы выравнивание получилось
Посмотрел. Поля должны быть в указанном порядке. Наверное, я перепутал с чем-то другим
Aragaer
ну да. Тогда я видимо это не нашел. Или не осилил, как массив превратить в "неуправляемый блок памяти". Или что-то еще. Молодой был, глупый. Сейчас не сильно умнее, но все-таки много времени прошло
Aragaer
Универсальная платформа Windows Доступно с 8
Aragaer
хм. Но там говорится, что в .net 1.1 оно уже было. Тут я уже плохо помню. Семерка тогда еще не вышла. А я это делал как плагин для аутлука 2003
Alexander
Вообще, у моих коллег был опыт общения managed C# кода и unmanaged C++ кода. Делали это через managed C++. Местами было очень больно, особенно со строками. Мне, к счастью (или к сожалению?), не пришлось слой интеропа писать, я только результатом со стороны C# пользовался
Denis
Если Хаскель самый хорошо сделанный (спроектированный) язык, значит на нем нужно (можно) писать все, от ОС до веба?