
Nobue
16.09.2016
16:43:24
ну и даже если не геймдев, часто удобно сделать плюсовую либу и юзать ее кроссплатформенно
которая делает какие-то ключевые вещи

arisu
16.09.2016
16:43:30
Либо ява.

Nobue
16.09.2016
16:43:39
на iOS на джаве не попишешь особо

Google

Марк
16.09.2016
16:43:47
У меня знакомый в качестве первого языка мужественно пытался освоить шарп.

v
16.09.2016
16:44:03
и как?

arisu
16.09.2016
16:44:03
Либо браузерное.

Марк
16.09.2016
16:44:21

v
16.09.2016
16:44:27
странно
язык же простейший
чисто паскаль
или он пытался в глубины wpf вникать?

Марк
16.09.2016
16:45:30
странно
Я шарп сам не ковырял, но по вопросам понял, что там слишком дохуя ООП, всяких инстансов хуе мое. Да качнул там толмуд какой-то

Nobue
16.09.2016
16:45:47
шарп хороший язык кстати

v
16.09.2016
16:45:57
да та же жаба

Nobue
16.09.2016
16:46:00
если отвлечься от области его применения

v
16.09.2016
16:46:05
только еще удобнее

Google

v
16.09.2016
16:46:17
какой уж там "дохуя ООП"

Nobue
16.09.2016
16:46:17
ну да, как джава на стероидах и с функциональщиной

Марк
16.09.2016
16:47:25
Просто чувак упоролся по терминологии - читал то самую толстую и якобы православную книгу. Я ему говорю: напиши хоть что-то, что будет работать. Бота, блядь, в телеграм. А он продолшает штудировать книжку с кучей скучных примеров

v
16.09.2016
16:47:39
шилдта поди какого-нибудь

Марк
16.09.2016
16:48:06
У меня там по Яве до сих пор на полке пылится том. Тоже покупал из разряда "чем толще, тем лучше"

Aragaer
16.09.2016
16:50:09
на тему ооп в чистом С - даункаст делается через обращение к подструктурам, апкаст через container_of

Марк
16.09.2016
16:50:11
Самое бодрое введение в программирование проводил, кстати, яблокодер. Взяли пивка, за пару литров чувак показал, как вполне бодро в среде наклепать чет прикольное и даже работающее.

Aragaer
16.09.2016
16:52:21
а с шарпом у меня болезненное знакомство произошло тогда, когда надо было именно на шарпе получать из сокета бинарный поток и парсить его. Я не осилил все эти маршаллинги и анменеджед хрени, что-то накарябал и с тех пор шарп обхожу далеко стороной

Марк
16.09.2016
16:54:10

Aragaer
16.09.2016
16:54:46
нужен был плагин в аутлук
который бы общался с некоторой готовой прогой, которая умела только через сокет писать данные

Марк
16.09.2016
16:56:11
Кстати, а венда нынче умееет в рав сокеты?

Aragaer
16.09.2016
16:56:14
и блин, это была дикая боль по сравнению с обычным С, в котором recv(socket, buf, sizeof(buf)); my_struct *ptr = (my_struct *) buf;

Марк
16.09.2016
16:57:27
Почему нельзя ебануть my_str ptr = ?

Aragaer
16.09.2016
16:58:30
ссылки это в плюсах. В С указатели.
а зачем копировать?

Artem
16.09.2016
16:58:49
ну вообще-то можно было бы сделать то же самое в шарпе

Aragaer
16.09.2016
16:58:59
можно было бы сразу иметь готовый объект и реквом писать в него
наверно сейчас и можно, но в те годы я увидел страшное слово маршаллинг, пару вечеров пытался его понять, не смог

Google

Artem
16.09.2016
16:59:31
unsafe struct и unsafe method с реинтерпретацией байт

Aragaer
16.09.2016
17:01:17
у меня не осталось тех исходников и я даже не очень помню, в каком это было году

Artem
16.09.2016
17:01:22
в си можно было погореть на endianness каком-нибудь

Nobue
16.09.2016
17:02:02

Artem
16.09.2016
17:02:04
и точно так же промучиться, если неточно понимать, что происходит

Aragaer
16.09.2016
17:02:06
на эндианнесс можно погореть на любом языке, если ты начинаешь адресоваться к частям числа.

Марк
16.09.2016
17:02:17
После петончега в Си я столкнулся с парадоксально для меня ситуацией: есть инклуд либы. Либа с реп(то есть, не самопал какой-то). По привычке вбиваю название в надежде найти страницу с ее описанием, примерами использования хуе мое. результат - ХУЙ. Нихуя нет

Aragaer
16.09.2016
17:02:19
просто не во всех языках можно адресоваться к частям
я либами особо не пользовался, позикса хватает выше крыши
а он как раз везде есть

Марк
16.09.2016
17:04:34

Aragaer
16.09.2016
17:06:16
в виме K на функции пытается открыть ее ман. Если его нет, но прошелся ctags, то ctrl+] отправляет на .. как повезет - объявление или определение функции. Если вообще готовая бинарная либа, то это печаль

Aragaer
16.09.2016
17:06:43
в этом случае обычно читать комменты к функции в заголовочном файле с объявлением

Марк
16.09.2016
17:07:10

Artem
16.09.2016
17:09:11
читать хедер (который по-хорошему должен фактически быть документацией), искать по гитхабу примеры использования

Aragaer
16.09.2016
17:10:36
ну потому что кпан и пип это централизованные источники пакетов. А во времена, когда С появился не то чтобы не было таких источников, с интернетом проблемы были 8)

Марк
16.09.2016
17:12:17

Aragaer
16.09.2016
17:15:51
ну вот ... pip install чота или perl -mCPAN 'install чота' это для меня до сих пор нечто из ряда вон выходящее. На С если мне нужно что-то, то обычно гуглится как это сделать стандартной библиотекой, или же если использовать сторонее, то соответственно его находить и ставить
хм. Прям как установка софта на линуксе против установки софта на винде

Марк
16.09.2016
17:19:59

Google

Марк
16.09.2016
17:20:26
Да и вообще, там проблемы с допустановкой.
В core мало чего есть нужного.

Aragaer
16.09.2016
17:21:21
мой первый крупный проект, в котором я участвовал, был именно на перле. Я первый раз столкнулся с тем, что нужно ставить много пакетов, что есть стейджинг система и контроль версий.
но блин, при всех тех проблемах, которые там были, я видел после этого кучу проектов, где даже этого не было

Марк
16.09.2016
17:23:49
В перле доставляет, что банальный try catch отсутствует в коробке
С другой стороны, cpan содержит, наверное, все что можно для всех случаев в жизни. Пайтоновский пип после него - это какое-то жалкое, убогое подобие

Aragaer
16.09.2016
17:26:29
не то, чтобы я часто пользовался try catch.... Но хуже всего жава, где "нет, эта функция может кинуть такой эксепшн, поэтому ты ОБЯЗАН его ловить"

arisu
16.09.2016
17:26:50
и это правильно
не хочешь ловить - бросай дальше

Марк
16.09.2016
17:27:15
Че, серьезно? Без перехвата эксепшна лыжи не едут?

Admin
ERROR: S client not available

arisu
16.09.2016
17:27:19
но эксепшн обработай

Марк
16.09.2016
17:27:31
ооооо

Aragaer
16.09.2016
17:27:50
да, есть понятие checked exception
когда в компайл тайме проверяется, что эксепшн или обработается или проброшен дальше

Artem
16.09.2016
17:28:09
так это же хорошо

Aragaer
16.09.2016
17:28:14
оно есть только в жаве
и на него ругаются _все_

Марк
16.09.2016
17:28:40
А как в перле нет варианта "выключить эту ебанину нахуй, так как мне на нее насрать - я хелло ворд пишу"?

Aragaer
16.09.2016
17:28:47
неа

Google

Aragaer
16.09.2016
17:29:17
то есть даже попытка распарсить "1" в число все равно требует от тебя обработать ParseError

Марк
16.09.2016
17:29:42
Точнее, в перле есть для противоположного strict. И это я считаю охуенной фишкой. Жаль, что в петончиге подобной темы нет

Artem
16.09.2016
17:29:51
И это правильно, потому что там могут быть пользовательские данные

Aragaer
16.09.2016
17:30:06
могут

Artem
16.09.2016
17:30:24
Можно ругаться и на это и на подход go к обработке ошибок

Aragaer
16.09.2016
17:30:25
но я не могу написать Integer.parseInt("1") без try catch вокруг. Вааще не могу

Boojum
16.09.2016
17:30:26
Привет, няшки

Artem
16.09.2016
17:30:39
А ты и не хочешь так писать

Boojum
16.09.2016
17:30:41
Слушайте, нет питонобота в телеграме? Чтобы работал как интерпретатор

Artem
16.09.2016
17:30:50
Ты напишешь 1

Марк
16.09.2016
17:30:57

Artem
16.09.2016
17:31:04
Был

Boojum
16.09.2016
17:31:09
Нет
Досадно, надо бы сделать

Artem
16.09.2016
17:31:09
Но я не помню

Марк
16.09.2016
17:31:35

Yegor
16.09.2016
17:31:39
Я ещё слишком молодой и дно, но можете пояснить, как бот может работать как интерпретатор питона?)

Artem
16.09.2016
17:31:53
Будешь делать, не забудь захостить его где-нибудь рядом с важными данными

Boojum
16.09.2016
17:32:02

Artem
16.09.2016
17:32:33

Art
16.09.2016
17:32:36
@rextester_bot

Yegor
16.09.2016
17:34:19
Чёт он не интерпретирует, например С# и РНР
Или я тупой
Console.WriteLine("hello world");