Daniel
джава есть
Anonymous
Ну если так, то да, го лучший
aadz
А я думал, ты буддист по-настоящему :)
Daniel
и gradle есть, но gradle - это не dep, gradle изучать надо
Roman
И зачем тебе встроенный шедулер?
asynchronous non-blocking & concurrent code который легко писать и читать.
Roman
io eventloop опять забыл...
event loop & async-await это не то, совсем!
Daniel
вот зачем ты называешь код на go асинхронным и неблокирующим?
Anonymous
asynchronous non-blocking & concurrent code который легко писать и читать.
Так постойны, никто не мешает блокинг тебе написать и в го. а вот конкурентные структуры опять-таки в джавке получше будут
Daniel
event loop & async-await это не то, совсем!
я не понимаю, о чем ты. технологических преймуществ у go сегодня два: threadpool под горутинами и eventloop под вводом-выводом
Anonymous
Го шедулер вообще никак при блокинге то не поможет
Roman
нужен не он, а тредпул под ним
нет, на самом деле именно scheduler’е goroutine’ нужен 🙂 а то что он реализован на thread pool’е это хороший бонус к concurrency
aadz
джава есть
на самом деле - ничего нет! И мы должны это учитывать
aadz
хотя, юмор у меня слишком специфичепский и не смешной :(
aadz
Суко, Зеленин подсадил меня на измену
Roman
У джавы то получше будет, идея работает всяко лучше
Java это бАльшооой Агромный легаси 🙂
Daniel
у меня к яве ровно одна претензия: почему-то все, что я пишу на яве, занимает у меня вдвое-втрое больше времени, чем аналогичное на go. объяснить этот феномен я не в силах, но наблюдаю его регулярно, и в собственной жизни, и у коллег
Anonymous
Java это бАльшооой Агромный легаси 🙂
Кароч гугли graal и смотри кто впереди планеты всей, вот для них го уже легаси)
aadz
таак... сеейчас узнаем тут на нашем канале про аниме, кто какой язык любит...
Roman
вот зачем ты называешь код на go асинхронным и неблокирующим?
а разве это не так?) scheduler „распознаёт“ блокирующие горутины и swap’ит их, мы же вкурсе) это делает код синхронным, а его выполнение - асинхронным и неблокирующим. в event loop’е всё иначе, там блокировать нельзя совсем! там есть callback’и и его абсктракции аля Promises & async/await (не дай бог где-нибудь забыть await, заблокирует нахрен весь event loop) асинхронный код сложнее гошного синхронного, даже с async/await. В event loop’е например нельзя выполнять сложные вычисления, это блокирует execution thread и следственно весь event loop и всё встаёт раком… в Go это делать можно, это заблокирует один из потоков, но не всю систему, а в добаков ещё можно использовать Go.Sched() для неблокирующих тяжёлых вычислений (аналог в event loop’е это что то вроде`runtime.tick()`)
Daniel
Пиши на скале)
я теперь на groovy пишу, когда мне jvm нужна и либы явные
aadz
коллега, у вас каша в голове
у всех каша в голове, даже у тебя, прости
aadz
Ничего страшного!
Daniel
у всех каша в голове, даже у тебя, прости
но я-то в курсе про свою кашу
aadz
да ты вобще умничка
Roman
коллега, у вас каша в голове
сильно заявление, проверять (и обосновывать) его конечно никто не будет))
Daniel
Не распознает он ничего
еще как распознает. горутина, заказавшая ввод-вывод, не попадет в шедулер, пока eventloop не отрапортует, что ее ввод-вывод случился
Roman
Не распознает он ничего
а как по вашему Go тогда работает с I/O 🙂 я не зря обернул слово „распознаёт“ в ковычки
Илья
сильно заявление, проверять (и обосновывать) его конечно никто не будет))
Никто ничего не распознает, gosched внутри всех io операций, если ты «забыл» await, шедулер ничего делать не будет
Daniel
там сложнее существенно логика, чем просто gosched
Roman
Никто ничего не распознает, gosched внутри всех io операций, если ты «забыл» await, шедулер ничего делать не будет
ещё раз: я не зря обернул слово „распознаёт“ в ковычки ясное дело что логика планирования оптимизирована посредством „gosched“
Anonymous
и я не про io
Daniel
какой блок я должен сделать руками?
Anonymous
заблокируй поток
Daniel
как именно я должен его заблокировать?
aadz
Роман, ты слишком все усложняешь! даже эти нижние лапки типографские где-то выискал... я даже и не помню ихнихй UTF код... Может быть, не усложняй? А?
Daniel
а как хочешь
ну, например?
Anonymous
Thread.sleep
.
time.Sleep()
Anonymous
нет
Anonymous
Thread sleep
.
Thread sleep
А где такая функция есть то?
Roman
Thread.sleep
это заблокирует goroutine’у, а не runtime
Anonymous
в thrd_sleep
Anonymous
underlying thread заблокируйте
Anonymous
и пока
.
в java
А, лол
.
Мне почему то показалось разговор за Го идёт
.
Хотя странно что разговор не про Го)
aadz
а это канал про аниме - тут про любое можно говорить, вроде
Anonymous
А, лол
я про thrd_sleep
Roman
я про thrd_sleep
причём тут Go вообще?!
Marperia
а это канал про аниме - тут про любое можно говорить, вроде
Флуд же. Я бы на весь вечер забанил, чтобы не мешал.
aadz
а при чем тут аниме?
aadz
Флуд же. Я бы на весь вечер забанил, чтобы не мешал.
админы решают, что делать теперь :(
Anonymous
причём тут Go вообще?!
ну а какая разница, поток то системный)
Marperia
ну а какая разница, поток то системный)
Ну как бы горутина != sys thread
Roman
ну а какая разница, поток то системный)
вы серьёзно полагаете, что time.Sleep заблокирует системный поток?!
Anonymous
а работает она в космосе?
aadz
да ты чо)
да, не равно
Roman
эт зависит от реализации
и вы серьёзно думаете, что Go не оптимизирует а блокирует системный поток?