Двач.hk не отвечает.
Вы видите копию треда, сохраненную 18 января 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
618 Кб, 640x481
503 Кб, 604x438
39 Кб, 600x600
74 Кб, 400x400
GoLang #4 PRISIVAEM ILUSHY EDITION #882625 В конец треда | Веб
Продолжаем сраться и попутна кастуем призыв илюши.

Что это за язык?
Компилируемый язык со статической pascal-like shit вместо типизации, с встроенный в язык CSP, разработанный компанией Google.

Какие у него сильные стороны?
Быстрая компиляция, простота, богатая стандартная библиотека, псевдоуниверсальность, кросскомпиляция.

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

На какие языки он похож?
C, PHP, JS, 1C.

Какая у него основная сфера применения?
Бюджетный веб (так как не жрет ресурсы как скрипты или джава), девопс-утилитки и прочие мидлевел сетевые утилитки.

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

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

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

Производительность
https://benchmarksgame.alioth.debian.org/u64q/go.html
https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=db
https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=plaintext

Перспективы
http://www.tiobe.com/tiobe-index/
https://www.google.ru/trends/explore?q=golang
Число репозиториев с не менее 1000 звезд (колонка "Languages")
https://github.com/search?utf8=✓&q=stars:>1000&type=Repositories&ref=searchresults

Полезное
Для начинающих (годный и развернутый список)
https://goo.gl/NfNfZg

Мануал веба на го с погружением в язык
https://github.com/astaxie/build-web-application-with-golang/blob/master/ru/preface.md

Го в примерах
https://gobyexample.ru/

Ищем пакеты:
https://godoc.org/

Сторонние го либы
https://github.com/golang/go/wiki/Projects

Кто уже юзает го
https://github.com/golang/go/wiki/GoUsers

Видосы (есть на русском, если полистать)
http://4gophers.ru/video
#2 #882629
В этом ИТТ треде >>882510-маня пояснит, как в 2016 рвут Keep-Alive-сессии, не просто закрывая сокеты, а как-то сложно и по-современному. Ждем всем тредом.
>>882641
#3 #882639
>>882591
Как и в 2004, таймаутом на последнюю активность
#4 #882641
>>882629
>>882639

а не таймаутом, на все соединение, как в нубо-го
>>882699
#5 #882654
не забываем вины
-уязвимость дефолтного сервера и отсутствие норм решения (тупо рвать весь коннект и похер если ты файл отдаешь)
-Глючность возникающая в Prepare (в sql) при хайлоад нагрузках

какие еще вины были?
#6 #882665
>>882639
Или как в моей netty (в божественной java/kotlin) - таймаутом на последнюю активность, на медленность запроса, исключая по mime-type крупные файлы, но ограничивая такие соединения числом по IP
>>882699
14 Кб, 736x37
#7 #882699
>>882641
>>882639
>>882665
Я в прошлом треде приложил этот скриншот из документации. Как видите, эти таймауты не на всё соединение, а на каждый запрос-ответ в контексте соединения.

С моей стороны были пруфы, код и объяснение причин неверного поведения кода анона. С твоей — беспруфные кукареки. Ты вот сейчас при всех обосрался, но признавать этого не будешь. Молодец, так держать.
>>884116
#8 #882729
Кто-нибудь Iris пробовал или на чём атм у вас пишут в основном? И что на фронте?
>>882991
#9 #882991
>>882729

> Iris


Мне не очень понравился, не вспомню уже чем. Взял gin.
На фронте обычный js.
#10 #883030
It'd be nice if bradfitz could just remove himself from here. That guy quite often insights the desire for me to split his lip. What a whiner.
So the CEO modified the posts of some Trumpians. Who gives a fuck. /r/golang has nothing to do with any of that. Our corner of reddit is so far removed from any of that as to be it's own completely separate thing.
This subreddit is perfectly fine. I have no idea where the contempt is coming from. All I see is on-topic discussion and project releases. Nice people answering questions, helping, and giving feedback; a little snarky but harmless conversation here and there; and the usability of reddit far exceeds that of anything Google has to offer. Google is just simply awful at anything social: G+ is a joke, YouTube (talk about being anti free spech!) comments are completely undiscoverable and mostly toxic; their own forums are something out of 2007, and similarly unusable.
I just think the mods that have an issue should just leave and let some people who aren't reactionary whiners trying to personally involve themselves in drama needlessly step up and take the reins.
I don't see any reason to change anything about this subreddit. There hasn't been widespread concern here in /r/golang, and if there has... I'd be hard pressed to find it.
#11 #883117
Все эти системы со сборщиком мусора - говно. Как только памяти начинает отжираться больше чем половина имеющейся, начинаются тормоза. Если хотите навернуть говнеца, то уж лучше растом обмазыватсья, там хотя бы есть ради чего.
#12 #883132
>>883117

>Все эти системы со сборщиком мусора - говно.


inb4 95% софта в мире так или иначе крутится на системах со сборщиком мусора и ничего, живы-здоровы. иди кукарекай в другой притон
#13 #883204
>>883117
Побитовые сдвиги посдвигал уже?
#14 #883230
>>883117

>растом


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

И за все это, ты получишь тормоза на уровне скриптовых языков (тесты http серверов и фреймворков)
https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=plaintext
#15 #883966
Трамп самому годному трету хк.
А тем временем на горе-патриота, который хотел свернуть сабреддит го наехали, и он пошёл на попятную.

Отпразднуем победу охлократии!
>>884111>>884121
#16 #884111
>>883966

> хотел свернуть сабреддит го наехали, и он пошёл на попятную


Зеленые просто боялись, что их чатик сломают и негде будет больше свой говнокод показывать. Я солидарен с этим патриотом.
#17 #884116
>>882699
хуй соси мать твою ебал
#18 #884121
>>883966

>горе-патриота, который хотел свернуть сабреддит го наехали, и он пошёл на попятную


Что за кулстори вкратце?
>>884122
#19 #884122
>>884121
Послушай последний радио-т, там всё по хронологии рассказали.

В двух словах: в каком-то зог-сабреддите обсуждали хуйню, его закрыли, и выходцы оттуда начали массово поливать говном сео реддита. Тот обиделся и сказал видимо поправить оскорбления ему на оскорбления самим себе.
От этого началась истерия и один из мочераторов этого сабреддита хотел закрыть его из-за этого нахуй.
#20 #884276
>>882625 (OP)
Чому ещё не запилили форк без всякий идеологически-правильной хуеты?
>>884286
#21 #884282
>>882625 (OP)

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


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


>


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



Ну и нахуй он нужен?
>>884286
#22 #884286
>>884282
Потому что в 2к16 модно делать новые языки, и гугл со своим продуктом тут как тут.
>>884276
Это к Илюше, он ещё дизайн не допилил.
>>884288>>884294
#23 #884288
>>884286

>2к16 модно делать новые языки


Помнится, в универе один одногрупник такой хуйней страдал в 2007-ом, тоже вместо предложенных тем курсача напишет свой язык, взялся писать и в итоге соснул хуйца. Не то чтобы я против, просто это напоминает тех ребят которые пилят свою борду, когда макак очередную хуйню вытворяет, а в итоге получают мертворожденный продукт, о котором в курсе полтора анона и те съебывают с нее.
>>884295
#24 #884294
>>884286

>дизайн не допилил


Да что там пилить то? Вынести хероту типа ошибок компиляции при неиспользуемых модуляъ/переменных в опциональщину, подключаемую флагами компилера, и заебись. А дженериков и подождать можно.
>>884296
#25 #884295
>>884288
Да их-то всегда было овердохуя, просто раньше не было прям моды на это у больших и средних компаний, сейчас гугл пилит го, мозила пилит раст, фб пилит ризон (вроде как закончили с хаком), эпл пилит свифт, крэй пилит чапель, у майкрософта с интелом их буквально с десяток, у жетбраинса котлин.
>>888994
#26 #884296
>>884294
Ну, он хочет сразу комплексно продумать все от языка до интеропа чтобы выпустить и все сразу было заебись. Знаем мы таких, лул
>>884297
53 Кб, 604x511
#27 #884297
>>884296
Только это не го получится, а очередной никому не нужный велосипед.
154 Кб, 800x800
#28 #885988
>>882625 (OP)

> Язык настолько убог и топорен...


Оу, го-тред дошел таки до самоиронии. Прогресс.
>>886514
24 Кб, 215x215
#29 #886494
>>882625 (OP)
Решил тут вспомнить Go, мне тут как раз давали тестовое задание, которое я сделал за 3 часа вместе с тестами на божественном руби. Ну алгоритм действий я знаю, но язык не особо, наверно уйдет чуть больше времени.

Антош, это пиздец, сделать get и распарсить xml на этом языке какой то ад. На божественном руби я сделал это 2 строками за 15 секунд. Тут же нужно блять создать 2 ебанных структуры чтобы распарсить xml, две структуры, КАРЛ! В самом коде еще нужно делать преобразования типов и желательно обработку ошибок, а не просто _. Просто пиздец, к основной части задания даже не смог приступить от нахлынувшей безысходности.
>>886521>>886552
#30 #886514
>>885988
Кстати, почему у Го такая ебанутая обработка ошибок? Спиздили бы try и catch из C++ и дело с концом. Да еще и в принудительном порядке обработка ошибок зачастую.
>>886617
#31 #886521
>>886494
Нахуя ты динамический язык со статически типизированным сравниваешь, даун, да еще и с процедурным?
>>886526
#32 #886526
>>886521
я все понимаю, Антош, но ничего не могу с собой поделать
#33 #886552
>>886494

> сделал 2 строками за 15 секунд


Создав при этом промежуточный объект с результатом парсинга XML в памяти, потратив на это лишнее вычислительное время и, собственно, лишнюю память. Анмаршалеры в Go пишут всё напрямую в структуры. Эта мелочь не всегда критична, но мне приходилось переписывать на Go сервера, которые инициализировали на каждого клиента огромные JSON-объекты, и с Go это всё удалось ускорить в ~100 раз, по памяти выигрыш был 4-5 раз.

Вообще, то, что ты хочешь структурированный XML парсить без определения структуры, уже многое о тебе говорит. Это ОК, если ты хочешь один раз что-то на коленке быстро написать, но если пишешь что-то серьёзное, то размазывать по всему проекту не работу с нативными объектами, а эти doc.xpath(...).first.attr(...) — не ОК. Кстати, для Go есть готовые либы с таким подходом (например, https://github.com/beevik/etree), но нормальный человек, почувствовав нужду в таком подходе, возьмет Python/Ruby и накидает скрипт на коленке.

> В самом коде еще нужно делать преобразования типов и желательно обработку ошибок


Если твой XML составлял не ПТУшник, то таких проблем не возникает. Из-за криворуких документов иногда приходится использовать промежуточные структуры с кастомными анмаршалерами, да.
>>886621
#34 #886617
>>886514
Почему это ебанутая? Не надо вводить новую концепцию обработки ошибок, достаточно стандартного if-else
>>886624>>886659
#35 #886621
>>886552

>нормальный человек, почувствовав нужду в таком подходе, возьмет Python/Ruby и накидает скрипт на коленке.



Я вот всю жизнь так делаю (я не бэкэнд разраб, а жалкий админ), но все больше ops тулов пишут на этом языке. Недавно столкнулся с компанией, где все новые тулы golang only.
>>886624
#36 #886624
>>886621
Если их инструменты достаточно сложные, то почему бы и нет?

>>886617
Стандартного if-else достаточно тогда, когда ошибки не возникают. Когда же они возникают, начинается отладка. Стоит упомянуть лишь то, что стектрейс говорит, где был panic, но где был иницализирован error — нет, это уже твоя задача. Я тоже считаю, что подход к обработке ошибок в Go не так уж плох до определённого момента.
>>886668>>886847
#37 #886659
>>886617
Программист - ленивая скотина, которую нужно быть по рукам. Программист никогда не будет делать то, что он может не делать. Чтобы игнорировать ошибки в какой-нибудь жабе нужно делать так: "try { func(); } catch e {}", если ты этого не сделаешь, то при первой же возможности рантайм выскажет всё, что он о тебе думает. Чтобы добиться подобного поведения в го нужно делать ничего. Буквально, ничего. Ты просто не пишешь код, и все ошибки игнорируются так же, как это делается с вышеприведённым кодом в жабе. После первой же ошибки состояние программы становиться некорректным, и её поведение в крестостандарте описывалось бы как "undefined behaviour". И вот же что забавно - ты знать не можешь, когда, где и какой мудак поленился написать этот "if else"; то есть потенциально после любого вызова любой не твоей функции состояние программы может быть некорректно, и ты об этом даже никак не узнаешь.
Такой вот охуенный язык, такой вот замечательный подход к обработке ошибок. Зато на концепциях сэкономили.
>>886668>>888994
#38 #886668
>>886659
Твои аргументы — говно. Даже в самых хуевых либах не видел игнорирования ошибок. Если какие-то дауны теоретически могут что-то там игнорировать, то они сделают это независимо от того, сложно им это игнорировать или легко. Это никак не оправдывает странного подхода Пайка к вопросу, но я не первый раз вижу людей, которые несут хуйню вроде той, что ты несешь.

>>886624-кун
>>886673>>886832
#39 #886673
>>886668
ты дебил-фанбой, читающий жопой

мимошел
>>886675
#40 #886675
>>886673
Мимо шёл, но за мой елдак ртом зацепился.
sage #41 #886676
хоспади, я уже и забыл, почему этот раковник перманентно скрыт
>>886680
#42 #886680
>>886676
Скрыт, но как бы открыт, поэтому ты зашел, да?
>>886684
sage #43 #886684
>>886680
вот решил глянуть, чё там черви-пидоры нонче обсуждают и лол, - ничего не изменилось за пол года

чао лахи-девопсики
#44 #886832
>>886668
Ошибки не всегда специально игнорируются. В ноде была такая же проблема до недавнего времени. Я охуел от количества варнингов о неотловленных экзепшонов на своем проекте, когда нода начала о них писать.
Хотя я считаю себя довольно внимательным погромистом, который не делает хуяк-хуяк
#45 #886847
>>886624
Его-то везде достаточно, и проблема не столько в игнорировании ошибок, сколько в том, что обрабатываются они абсолютно одинаково. Вот возникла у тебя ошибка в функции которую не ты писал, но что-то да возвращает причём не факт что этот кусок кода вообще задокументирован - ты же просто в лучшем случае залоггируешь/кинешь панику/сам вернёшь вернёшь ошибку раскрутив руками стек. Вообще всё это можно было сделать просто блоком try...catch в точке входа, но вместо этого у тебя код будет состоять в лучшем случае на половину из if err != nil { panic("sukablyad") } - к этому основная притензия.
>>889001
#46 #888576
не тонем
#47 #888582
https://blog.pusher.com/golangs-real-time-gc-in-theory-and-practice/
Тем временем, хвалёный РИАЛТАЙМ ГЦ го всасывает у... барабанная дробь... ОКАМЛА БЛЯДЬ! У самого медленно развивающегося куска верблюда, причём не самой новой версии. Оправдывайтесь, говноеды.
#48 #888595
>>888582
мамку ебал
>>888712
#49 #888712
>>888595
Сокрушительная победа илюши и языка го.
#50 #888836
>>888582
Кричу чота.
Как раз хорошо зашло бы в тред про стек который не грузит гц.
>>888848
#51 #888848
>>888582
>>888836

>The ~3ms pause times for OCaml are due to the incremental GC algorithm that OCaml uses for the old generation. (Our main reason for not choosing OCaml was its poor support for multicore parallelism.)


Лол, ну так все понятно. Конкретно этот (тривиальный) бенчмарк лучше получился у окамля, потому что он юзает оптимизацию гц. Если бы тест получился сложнее (с чуть более долгоживущим мусором), Go его обошел бы. Это во-первых. А во-вторых, во-вторых, чувак гонял на Go 1.7.3, когда на дворе Go 1.8-beta1, в который завезли новый сборщик, который работает за sub-millisecond время.

Ты бы лучше посмеялся с того, как любимый публикой Haskell полощется в районе 60 мс :D
Или джава с ее жалкими >100 мс задержками.
#52 #888851
https://beta.golang.org/pkg/sort/#Slice все уже видели? В Go теперь нормально сортировать можно)
#53 #888858
>>888848

>мамку ебал


Сократил без потери смысла, не благодари.
43 Кб, 374x456
22 Кб, 693x247
Аноним #54 #888859
ребята кто знает в чем дело?
создал раздел на 8300мб на и отформатировал его в fat32
Хочу задать файл подкачки. Задаю 8192мб
Перезагружаю комп а там стоит файл подкачки 4.15гб
Пробывал уже по разному.
В настройках стоит 8300 но показывает что на диске занято всего 4.15
>>888862>>889053
#55 #888862
>>888859
Илюша, тебе непременно нужно сосать хуй.
>>888863
Аноним #56 #888863
>>888862
спасибо. нет
#57 #888864
>>888848

>OCaml uses for the old generation.


>Если бы тест получился сложнее (с чуть более долгоживущим мусором)


Вся суть итт треда.
Хоть кричать я начал ещё на "оптимизации гц".

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

О джяве там в комментах отписали, она в тесте без прогрева (он со 160 до 50 роняет) и не тюненый (вообще, как и все остальные – их в отличие от гошного внезапно можно тюнить).

>когда на дворе Go 1.8-beta1


Люди в продакшене на 1.5.x только переезжают, ты о чём.
>>888866
#58 #888866
>>888864
У нас в клаудфлейр обкатывают 1.8 на 10% продакшн серверов.
#59 #888994
стенатекста

>>884295
У эппла и МС всегда был языки, заточенные под их инфрастуктуру, так исторически сложилось и от этого никуда не деться.
Котлин тащемта годнота, джетбрейнс решает проблемы, которые их в яве изрядно заебали.
У фейсбука вообще тонны бабла и огромнейшая инфрастуктура. Они деньги вкладывают вообще в весь опенсурс и разработки, которые им упростят поддержку. Уверен там во внутренней кухне разработок еще больше, которые никому не показывают.
Но я так, с дивана.
>>886659
В либах из стандартной библиотеки ошибки не игнорируются. Если у вас кто-то пишет не по гайдлайнам его проблемы.
Я работал как-то над проектом, где нельзя было запушить код в репозиторий, если были варнинги от pep8 и pylint, только допустимая длина строк была 120, ибо мониторы кошерные.
Но один хуй, если высирать код, придерживаясь каких-то правил, это сократит и тебе время и другим людям.
Я вот зуб даю, что через год ты взглянешь на свой же говнокод и охуеешь от осознания того факто, что его писал ты.
>>888582
Когда у меня жрет 10гб сервак мускула на одной ноде, 40 редис, а приложение всего 1, то как-то похуй на гц. С задачами быстро справляется и похуй.
Энивей окамл не менее нишевый, чем го, со своими недостатками и преимуществами.
>>889001>>890653
#60 #889001
>>888994

>сервак мускула на одной ноде


Тогда у тебя всё очень плохо.

>Энивей окамл не менее нишевый, чем го


И в чём же это заключается? Ну кроме яскозал.

>ошибки не игнорируются


>>886847

>У эппла и МС всегда был языки, заточенные под их инфрастуктур


Да насрать на них, сейчас языки клепать начали вообще все — от производителей железа (крей, интел) до совсем среднячковых компаний (жидбраинс).
12 Кб, 696x163
#61 #889021
Обновился до 1.8, отвалился gocode. Нормально вообще? Пока не будет нормальных инструментов писать на этом говне не нужно.
#62 #889051
>>889021
Релиз 1.8 запланирован только на январь, пиши им в багтреккер лучше чтобы пофиксили.
>>889103
#63 #889052
>>889021

>Нормально вообще?


Да.
#64 #889053
>>888848

>Если бы тест получился сложнее (с чуть более долгоживущим мусором), Go его обошел бы


Если бы Иван Грозный сына не убил, мы бы сейчас на марсе жили. Ты сделай, а потом посмотрим и сравним. Еслибовать можно долго и безрезультатно.

>чувак гонял на Go 1.7.3, когда на дворе Go 1.8-beta1


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

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


>А вот у вас там в европах в жопы ебуцца! Плевать, что мы в говне по уши, зато у нас пидоров нету!


>>888859
Хороший вопрос, как раз для го-треда. В жыр32 размер файла хранится в DWORD'е.
#65 #889084
>>888848

>потому что он юзает оптимизацию гц.


Ахуеть блять, что ещё за оптимизация GC? Он использует какие-то хаки? Настраивает сборщик для конкретной конфигурации железа?

Нет блять. У него просто лучше алгоритм GC. Какой из этого вывод?
>>889090>>889117
#66 #889090
>>889084

>Какой из этого вывод?


мамку ебал
#67 #889103
>>889051
Откатился на 1.7.4, репортить не стал.
>>889187
#68 #889117
>>889084

> Какой из этого вывод?



Ты хуй
>>889120
#69 #889120
>>889117
ReКупи слона илюше
>>889126
#70 #889126
>>889120
Лучше я ему скобочек куплю.
#71 #889187
>>889103
Так же делаю, находя баги.
Го-маня-мир должен нормально так наткнуться на "айсберг-реальности" и научиться трижды думать, чтобы вестись на маркетинговый хайп (а последние должны научиться делать качественный продукт)
>>889335
#72 #889316
>>889021
У тебя gocomplete отвалился, а не gocode. И вообще это бета, тебе никто не гарантировал, что 3rd party tooling будет с ней идеально играть.

>нормальных инструментов


Сам пользуется атомом ахахахх
#73 #889335
>>889187

> Го-маня-мир должен нормально так наткнуться на "айсберг-реальности" и научиться трижды думать


Шта
>>890003>>890018
#74 #890003
>>889335
Ничо, это пятикопеечные бушуют)
>>890026
#75 #890018
>>889335
шта хде куда
#76 #890026
>>890003
сам себе лизнул?
#77 #890435
Анон, есть какое-то решение, которое позволяет обходиться без импортов вида "github.com/vasyan1488/yoba-microservice", т.е. без полных путей относительно GOPATH? Очень раздражающая хуйня почему-то.
>>890450>>890478
#78 #890450
>>890435
Нету. Потому что НИНУЖНА.
Единственный вариант — вендорить все депенденси руками к себе в проект.
>>890453
#79 #890453
>>890450

>Нету. Потому что НИНУЖНА.


Go-way, как есть, лол!
#80 #890478
>>890435
Это фича, лох)
>>890606
#81 #890606
>>890478
ЗАБИЛ НА ПРОЕКТ НА ПАРУ НЕДЕЛЬ
@
ПОНАДОБИЛОСЬ ИСПРАВИТЬ 1 СТРОЧКУ И ПЕРЕСОБРАТЬ
@
ВСЁ РАСПИДОРАСИЛО НАХУЙ И НЕ СОБЕРАЕТСЯ
@
ПЕРЕПИСЫВАЕШЬ ВСЁ С НОВЫМИ БИБЛИОТЕКАМИ
>>890693
#82 #890653
>>888994

> Они деньги вкладывают вообще в весь опенсурс и разработки


кому нужна ето жс говно, а даун)
#83 #890693
>>890606
ОТКРЫЛ ДЖАВА ПРОЕКТ 4 ЛЕТНЕЙ ДАВНОСТИ
@
ЗАМЕНИЛ СЕРВИС ПО ИНТЕРФЕЙСУ
@
СОБРАЛ, ЗАПУСТИЛ, ПРОГНАЛ ТЕСТЫ, ЗАРЕЛИЗИЛ
@
ВСЕ РАБОТАЕТ КАК ЧАСЫ, ХОТЯ УЖЕ НЕ ПОМНИШЬ КАК ТАМ ЧТО РАБОТАЕТ ВООБЩЕ
>>890699
#84 #890699
>>890693
Вот поэтому я и выбрал жабу.
Приключения интересны юнцам.
>>890714
#85 #890714
>>890699
Мнение крудошлепа нам очень важно, для вас есть отдельный загон.
>>890746
#86 #890746
>>890714
то чувство, когда завидуешь, что чьи-то круды не сыпяться как в говно-js спустя неделю
>>890824
#87 #890824
>>890746

>Go-тред


>джява-даун топит за хуиту для перделок в браузере


Добро пожаловать. Снова.
>>890850
#88 #890850
>>890824

>2016 год


>маня верит, что кроме веба и мобильников его код где-то еще нужен

#89 #891376
что дает эта асинхроность в го для микросервисов?
Ну да http i/o, в бд еще блокировка есть. И все?
Да и сам дефолтный http сервер тормазнутый какой-то (есть тесты).
При этом же планеровщик дергается же при каждых вызовах функции?
#90 #891450
Вы, блять, видили какие шрифты завезли гоферы для демонстрации кода??
https://blog.golang.org/laws-of-reflection

Блять, хорошо ход не курсивом написали.
>>891512>>891771
#91 #891512
>>891450
Так эти хипстеры же недавно вообще свой шрифт запилили, лол.
#92 #891519
Хочу написать на go обфускатор go-кода. В какую сторону смотреть? Что посоветуете почитать? Я не очень опытный
>>891537>>891574
#93 #891537
>>891519
Собственный обфускатор кода для чайников. 2012 года, автор Пайк Роб
#94 #891574
>>891519
Нахуя?
>>891589>>891600
#95 #891589
>>891574
Да ебет тебя, сука, нахуя? Хочется мне, блядь, так!
#96 #891600
>>891574
Он боиться что его говнокод кто-то украдет.
Каждый быдлан у нас же невьебаться непризнаный гений
>>891615
#97 #891615
>>891600
Ну а по сути есть че казать?
>>891671
#98 #891671
>>891615
Соси хуй, быдло.
Вот тебе по сути.
>>891694
#99 #891694
>>891671
Специалист уровня этой параши. Ясно.
>>891695
#100 #891695
>>891694

>это всерьез требующее годноты быдло


Какое смешное, надо же.
>>891724
#101 #891724
>>891695
А вот и тонкие реквесты ничего не знающего дауа подъехали...
#102 #891771
>>891450

>видили какие шрифты завезли гоферы для демонстрации кода


Гугли что такое font license.
#103 #891798
Теперь вы добавлены в Перекотер, так что вам нет нужды перекатывать треды вручную >>891794
#104 #892663
Подумываю, куда перекатиться со сраного Пузона. Гляжу в сторону Го.

Но вот смотрите, пацаны. Одна из главных заявленных фич Го - эффективные зелёные треды. С одной стороны, это звучит так заманчиво, что ради этого можно потерпеть даже дебильную систему типов. Но с другой стороны... так ли эти зелёные треды фундаментальны? Ведь по большому счёту это фича рантайма. Вон, в Rust'е отказались от зелёных тредов, чтобы избавиться от рантайма (теперь они едят кактус futures). Но даже на Rust'е, даже на Си, у большинства приложений уже есть рантайм - ядро ОС. И оно уже реализует вытесняющую конкурентность - обычные треды. Да, они дороже, чем горутины, потому что переключают больше контекста. Но, во-первых, настолько ли дороже, чтобы было критично на масштабах обычных смертных (не Гугла)? А во-вторых, так ли эта дороговизна фундаментальна?

Иными словами, если сейчас я куплюсь на хайп вокруг горутин, не случится ли так, что завтра в Линуксе сделают какие-то супер-легковесные треды вроде Виндовых fiber'ов, с ними подружится компилятор того же Rust'а, и ржавобоги получат сильно конкурентный в/в на нормальном языке, а мне в числе гофербыдла останется подбирать за ними объедки?
#105 #892675
>>892663

>Виндовых fiber'ов


Я тебе больше скажу: в той же os x и bsd-ях есть GCD, который и есть этот самый рантайм, но с куда большей гибкостью.

В Го вся суть именно в том, что можно делать хуяк-хуяк, от которых компилятор раста или утечки в сях тебе этот хуй оторвут. Работать будет не так быстро, но очень кошерно по сравнению с другими хуяк-хуяк языками.
>>892693>>892774
Что не так? #106 #892680
Есть такая функция http://pastebin.com/S0hA3ahT

>panic: near "WHERE": syntax error

>>892695
#107 #892693
>>892675

> Я тебе больше скажу: в той же os x и bsd-ях есть GCD, который и есть этот самый рантайм, но с куда большей гибкостью.


Во, кстати, да. Я что-то слышал про GCD, но забыл. Спасибо.

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


Прости, не осилил разобрать. Это довод за Го или против? Можешь ещё разок, без слов на ху-?
>>892697
#108 #892695
>>892680
Нид хелп, посоны
>>892706
sage #109 #892697
>>892693
Хуй. Это не довод (хуитка) за или против, это просто такая хуйня которая кому-то нужна. Вот такая вот хуйня.
#110 #892698
ансейдж
#111 #892701
>>892663
именно так, да и сейчас они нахер не нужны, завезли уже асинхронный веб и i/o вообще с DirectMemory, завезли асинхронную работу БД, и собственно - больше асинхронить то нечего, только избыточная нагрузка на планировщик по каждому чиху (хотя это задача ОСи, которая кстати лучше справляется).

А всякие 100500 миллионов в секунду это развод, так как холостые запросы нахер никому не нужны, натяни бизнес логику и все просядет и нужно будет распределять так и так.
>>892725
sage #112 #892706
>>892695
Еба, я гоню. UPDATE же.
#113 #892707
>>892663
Какую кашу нужно иметь, чтобы разменять питоны, руби, даже js, и даже php на го? На эти костыли времен семидесятых годов?
Имхо лучше докупить планочку ОЗУ, чем блять страдать в такой параше, с хорошо натаскаными лемингами-евангелистами и их подрожателями
>>892725>>892890
#114 #892725
>>892701

> асинхронный веб и i/o вообще с DirectMemory


Это кто? Нагуглил https://directmemory.apache.org/ но не понимаю, каким боком оно к асинхронному в/в.

>>892707

> Какую кашу нужно иметь, чтобы разменять питоны, руби, даже js, и даже php на го? На эти костыли времен семидесятых годов?


Вот я и хочу понять: горутины - это костыль или неебись достижение прогресса. На костыли менять не хочется. Всё же Питон хоть и говно в известной степени, но работа на нём есть и не самая плохая.
>>892730>>892741
sage #115 #892730
>>892725

>но работа на нём есть и не самая плохая.


Очевидно что фрилансерам нет смысла перекатываться. Для тех, кто мутит модный стартапчик, кого заставляют писать на Go, кто делает какие-то свои прожекты (как я). А такому как ты, ремесленнику, оно не надо, не забивай себе голову.
>>892742
#116 #892741
>>892725

> асинхронный веб и i/o вообще с DirectMemory


Общая память-буфер между сетевой/файловой хуйней ввода/вывода, минуя 100500 промежуточных буферов, для мгновенного обмена данными, при этом не аллоцируя лишний раз в хип (java)

Асинхронщина в контексте веба нужна только для http запрос-ответа и бд - и все, поэтому завезли всякие тулзовины для других языков (фьючеры, async/await), и будут всегда для них пилить подобные фичи в API операционки (потому что все языки важнее, а го там и сам справится, наверно).
И 100500 миллионов горутин нахуй не нужны так как ты всегда ограничен своими ядрами на проце (если конечно у тебя там не ЦОД соразмерный с деревню).

Мое ИМХО - на Го нереально писать большой и сложный проект, он по-моему создавался для скрипто-тулзовин
>>892743>>892751
#117 #892742
>>892730
Чё-то ты не то прочитал в моём посте. Я как раз о том, что перекатываться хочу не за едой (еда пока есть), а за ПРОФЕССИОНАЛЬНЫМ РАЗВИТИЕМ. Поэтому я присматриваюсь, а не клюю сразу на удочку гугла. И наличие успеха прямо сейчас (а Го, несомненно, уже успешный язык) - веский, но не доминирующий фактор. да, Хаскель уже освоил
>>892744
#118 #892743
>>892741
И да, бойтесь этого языка, писать на нем большой код боль, а евангелисты там хорошо раскручивают его, дойдет и до ваших начальников и будут вас, под якобы-экономию железа, переводить на го-проекты (хотя потом заплатят за это другую цену, но это будет потом)
#119 #892744
>>892742
Профессиональное развитие - там где серьезное бабло и серьезные масштабы. Тут без вариантов - джава.

На Го он развиваться решил, ппц.
>>892754>>892778
#120 #892751
>>892741

> Асинхронщина в контексте веба нужна только для http запрос-ответа и бд - и все


Асинхронищина нужна для запрос-ответа клиента, БД, кэшей, очереди задач и ещё дохуиллиона сторонних сервисов, в которые ты ходишь по сети. То есть, для всего сетевого ввода/вывода (а при большой нагрузке - и для дискового тоже).

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

Альтернатива - отводить тред на каждый запрос (или хотя бы уметь это делать при исчерпании пула). Но говорят, что это гроб гроб тормоза контекст-свитчинг. Я вот и пытаюсь понять, где тут правда.
>>892758
#121 #892754
>>892744

> Профессиональное развитие - там где серьезное бабло


Вовсе нет.

> и серьезные масштабы.


Теплее.

> Тут без вариантов - джава.


Лол. Похоже, ты не видел ни серьёзного бабла, ни серьёзных масштабов.
>>892757>>892761
#122 #892757
>>892754
Это как раз от тебя несёт каким-то маней-мечтателем, который от хипстерских технологий возбуждается так, что стены ебать готов.
#123 #892758
>>892751

>Но говорят, что это гроб гроб тормоза контекст-свитчинг


Для того и делают гринтреды с шедулерами. Го, собственно, отличается тем что позволяет делать хуяк-хуяк-канкаренси, что ты ищещь-то?
>>892768
#124 #892761
>>892754
А какие варианты яве-то? Го, у которого кучи багов в каждом новом релизе? У которого не то что даже гц нельзя настроить, а проект нельзя создать где хочешь — потому что НИНУЖНА?

Это игрушка для утилиток вроде докера (ну, докер — это их сборник). Не больше.
>>892771
#125 #892768
>>892758
Я ищу понимания, насколько это уникальная фича Го. Если это невротъебенная космическая технология, то возможно ради неё стоит запрыгнуть на hype train. А если завтра то же самое может появиться в $another_server_language или прямо в Линуксе, то я подожду.
>>892774>>892781
#126 #892771
>>892761

> А какие варианты яве-то?


Множество масштабных и серьёзных систем пишется на C++. На Python, к сожалению, тоже дофига. Бывают на Эрланге и даже на C. Это даже если вместе с Явой исключить всю её экосистему (Scala) и .NET заодно (C#).
>>892774
#127 #892774
>>892768
Ну так оно уже много где есть уже есть в системах изкаробки >>892663 >>892675

Тут тебе 200 раз написали — аналогов для хуякхуяк нет, даже в питоне сложнее. Если для тебя это прям киллерфича — стоит.

>>892771
Не прыгай из области в область, мы сейчас говорили про сурьёзный бизнес в целом и конкретно нишу явы, а не про гугл и фейсбук.
>>892778>>892910
#128 #892778
>>892774

> Тут тебе 200 раз написали — аналогов для хуякхуяк нет


Блять, ты можешь по-русски написать? У тебя табу какое-то или что? Слово рвётся из груди, но не как не может вырваться! Выпусти же его, скажи, какая идея сокрыта за словом "хуякхуяк"!

> Не прыгай из области в область, мы сейчас говорили про сурьёзный бизнес в целом и конкретно нишу явы, а не про гугл и фейсбук.


Лол что. Мы говорили о профессиональном развитии. Про бизнес и яву >>892744 стал заливать.

На всякий случай уточню: профессиональное развитие - это "клепать менее говно", а не "получать больше денег за больше говна".
>>892788
#129 #892781
>>892768
Я ищу понимания, насколько это уникальная фича Го

Настолько уникальная, что от зеленых тредов в джаве отказались еще в версии 1.2
>>892782>>892788
#130 #892782
>>892781
То было в 1998. Тогда не было высоко конкурентного веба и даже C10k. Нещитово.
>>892785
#131 #892784
Сюрьезный бизнес на CRUD-питоне, динозавра Си, загнивающем шарпе и ерланге никому не нужном, блять...

Сейчас вроде такие долбаебы на node.js тусят? Пиздуй туда и уноси свой Го.
#132 #892785
>>892782
Вот сделаешь мне 10К на одном ядре с бизнес логикой, вот тогда поговорим, а пока иди нахуй с холостыми i/o (и да, уже тренд 100к и даже 1М).
#133 #892788
>>892781
Настолько уникальная, что супербыстрый го в бенчмрках веб фреймворков от techempower всасывает сочной хуятины у явы и прочих?
>>892778
Ахуеть порвало маню-фанатика. Стандартные оправдания хипстеров, придумай что нибудь новое.
>>892799
#134 #892797
Вот так, ёпты. Пришёл в тред с анти-Го посылками и чуть не троллингом, а спустя десяток постов меня записали в хипстеры-фанатики Го.

Ладно, ребята, нормальных ответов от вас хуй получишь, да я и сам хорош, придираюсь ко всему подряд, пойду читать про GCD лучше.
#135 #892799
>>892788
я как бы и сказал что зеленные треды хуйня, только для узких мест, в остальном только просадку даст (из-за того что планировщик на каждый вызов функции дергается).
#136 #892890
>>892707

> с хорошо натаскаными лемингами-евангелистами и их подрожателями


Это ты сейчас про джавадебилов? Только они тут зачем-то пытаются доказать что го сосет и ненужен.
>>892898
#137 #892898
>>892890

>джавадебилов


Истина.

>го сосет и ненужен


Истина.
>>893023
#138 #892910
>>892774

>аналогов для хуякхуяк нет


В винде есть фиберы, в ЛИНАКСЕ тоже что-то такое есть, как выше сказали,- напиши свой планировщик, и будет тебе хуякхуяк в любом языке.
>>892928
#139 #892928
>>892910

>напиши свой планировщик


Вот именно это и делает го языком пригодным для хуякхуяк. В других языках пердолить системный апи/писать свою библиотеку и тд — в то время как в го накатил компилятор и пилишь говнокод.
>>892930>>892947
#140 #892930
>>892928
Чем goвнорутины лучше, чем Эрланговская многопоточность?
>>892932
#141 #892932
>>892930
Тем что позволяют пердолить более—менее эффективный код на одной машине. У эрланга всё наоборот.
#142 #892947
>>892928
Пишется один раз, а потом используется из других языков. Там, где макросы есть, можно даже сахарок поверх напердолить, чтобы почти как в го было. И без всяких привкусов. А так получается, что го - для неосиляторов.
#143 #893023
>>892898
джава-господам срать, даже шарп отсосал у джавы по рынку, а вы этоу помойку противопоставляете, вы вероятно путаете с андройд-уебками, но это же бывшие скрипт-киди.
#144 #893581
есть уже стори как мы разочаровались и вернулись/перешли на %язык%
#145 #893587
>>893581
Так куда переходить-то? На нём только хипстеры и пишут. Тут вон уже отпиысывали - дырявые беты в проде накатывают, что как бы намекает на аудиторию. Пока ничего нового и хайпового не запилят - будут кушать что есть.
#147 #893677
>>893675
Но это не точно.
#148 #893774
>>893581
В моём наполовину продуктовом бодишопе запилили продукт на go бывшие пхпшники. Говорят что из-за того что менторы рекомендуют не юзать фреймворки, а обходиться только стандартной либой - приходиться писать свои велосипеды на каждый чих. Не понимаю то им мешает забить на менторов и заюзать какой нибудь revel/iris/etc, но из-за велосипедострония решили в будущем отказаться на новых проектах.
>>893901
#149 #893901
>>893774

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



Вся суть.

Недавно разговаривал с командой, которая делает на Го очень нехилый продуктовый комплекс. Они мне тоже: только стдлиб, только хардкор. Почему? Ну тип чтоб не было как в JS с left-pad)))
>>893908>>893980
#150 #893908
>>893901
Поражает их неспособность отличить востребованный опенсорс, у которого есть комьюнити и оно поддерживает код, от васянских поделок, которые были написаны из-за необходимости костыля и выложены в общий доступ что бы потешить ЧСВ. Вдвойне поражает что это их решение, а не навязанное кем-то сверху, начальством или заказчиком. Тут прямо напрашиваются шутки про пхп и go, лол.
>>893913
#151 #893913
>>893908
Да это не их решение, это называется "пайк скозал что нинужна значет нинужна". Так же как и со всем остальным.
>>893918
#152 #893918
>>893913
Дополнительный лулз что на фронтенде там angular2, т.к. модно стильно молодёжно. А это в отличие от топорного go, напротив - переусложнённый фреймворк с неебическим оверхедом (~3МБ для hello world это вам не шутки) и отсутствием вообще какого то "тру" пути. От чего приходиться вместо написания кода - постоянно бороться с наркоманскими идеями разрабов сего чуда.
>>894065>>894076
#153 #893980
>>893901
лол, любая либа или фрейм это экономия 100-1000 человеко часов, видимо заказчики очень жирные и готовы оплачивать велосипедные костыли
#154 #893987
https://habrahabr.ru/company/badoo/blog/317442/#comment_9961156

>Расскажите про юнит тестирование Go демонов


>Мне немного стыдно, но у нас для Go практически нет юнит тестов


Пиздец.

Я параноик, или реально в компаниях для игр накатывают го, чтобы потом пропиарить/разрекламить себя?
>>893990>>894033
#155 #893990
>>893987
У меня еще паранойя, судя по тому, что на хабре давно стухла вся аудитория и яркое общение редкость, не кажется ли тебе, дотошный анон, что большая часть вопросов там от сотрудников и они сами же себя наплюсовывают?
>>894013
#156 #894013
>>893990
А ты быстр и сообразителен, счастливый владелец сорок седьмой хромосомы.
Не прошло и года как ты НАЧАЛ ПОДОЗРЕВАТЬ
#157 #894033
>>893987
Нет, просто тесты в большинстве случаев нахуй не нужны.
>>894042
#158 #894042
>>894033
Not_Sure_if_Trolling_or_Just_Stupid.jpg
>>894076
#159 #894065
>>893918
Начать надо с того, что в целом использовать Го для бэка сайтиков - так себе решение, из пушки по воробьям, что называется.
#160 #894076
>>894042
Они же написали, что тестов почти нет и что переписывали на go сишники, где юнит-тестирование и какое-нибудь tdd не самое веселое занятие.
И да, тесты в большинстве случаев нахуй не нужны.
>>893918

> модно стильно молодёжно


Нет, просто ангулар решает задачи. Только и всего, а ты и дальше продолжай думать, что это тяжело и вообще не нужно. Вторая версия заоптимизирвоана с накинутой поверх типизацией в виде тайпскрипта.
Практически единственный хороший подход в вебе, если не учитывать слегка сырой elm.
>>894094>>894101
#161 #894094
>>894076

>ангулар решает задачи


Да, но делает это через ненужный оверхед. React, например, решает те же задачи и намного элегантнее. Да это не фреймворк, но у реакта есть своя экосистема в которой есть всё что необходимо.
>>894101>>894110
#162 #894101
>>894076
>>894094
Воу-воу, давайте просто сойдёмся на том, что ЖС в принципе необходимое зло, писать на котором неприятно, и закончим на этом.
#163 #894110
>>894094

> решает те же задачи и намного элегантнее


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

мимо котлин господин
#165 #894222
>>894262
#166 #894262
>>894222
От создателей slice[len(slice)-1]
>>894401
#167 #894401
>>894262
Скорее от создателей append(a[:i], append([]int{x}, a[i:]...)...)
#169 #894832
Объясните за
if err!=nil {
}
Это че, мне после каждого вызова надо будет описывать блок обработки ошибки вместо самой логики. То есть логику придется размазывать по коду между блоками обработки ошибки?
>>894862
#170 #894862
>>894832
В общем, да. Обычно делают обёртку для этого дела.
func handleErr(error err) {
// обработка
}
res, err := shit(a, b)
handleErr(err)
>>894889
#171 #894867
>>894821
Вот и приехали. Однозначный вин.
>>894874
#172 #894874
>>894867
В чём вин-то? Это просто плагин для идеи вынесенный отдельно.
#173 #894889
>>894862
ну то есть проверку на err!=nil вынес в handleErr. Но handleErr получается тоже должна возвращать типо ошибка/не ошибка, и ее результат также получается нужно проверять и либо продолжать выполнение логики либо возврать из функции делать? Ну дак в обертке-то еще и контекст потерян, и если мне там кучу ресов надо освобождать например, это мне придется в handleErr все хендлы (или что там в Go) передавать?
#174 #894902
>>894889
Да, так всё хуёво. Такая обработка ошибок-одна из основных претензий к языку.
>>894915
#175 #894915
>>894902
Наоборот - охуенно же вон как у вас, пидорасов, горит
>>894920>>895021
#176 #894920
>>894915
лично у меня фрустрация не от обработки ошибок, а от отсутствия нормального паттерн-матчинга и алгебраических типов. всю хуйню простил бы за эти две вещи, а так да, goрит

кстати, раз такая уже публика, то почему никто ещё не запилил язык компилируемый в go?
#177 #894922
>>894920
Запилили уже. Odin, have, чё то там ещё.
>>894948
#178 #894923
>>894920
Ну ты уж загнул. Создатели даже map/filter/reduce отказались делать. Обоснование этому в классическом go-way: НИНУЖНО.
>>894925>>894945
#179 #894925
>>894923
Да нет, пайк сам их написал и выложил на гитхаб. Правда подписал именно так: НИНУЖНА.
#180 #894945
>>894923
их можно просто реализовать как методы, эта вся хуйня уже проходилась в прошлом с js. в сравнении с nodejs го выглядит няшнее в перфомансе, но деревянный синтаксис так и просится навернуть сверху какой нибудь сахар
#181 #894948
>>894922
не могу нагуглить, Один гугл воспринимает либо как транслитерацию русского "один"(одна штука) либо как либо для документации. с have всё ещё более плачевно. ясен пень что golang have something
#182 #894950
>>894948
*либу
#183 #894966
>>894889

>Но handleErr получается тоже должна возвращать типо ошибка/не ошибка, и ее результат также получается нужно проверять и либо продолжать выполнение логики либо возврать из функции делать



Нет, зачем так? Есть три варианта:
1) игноришь ошибку
2)обрабатываешь её здесь и сейчас и забиваешь на нее
3) делаешь в данном месте возврат в вышестоящую функцию
>>895024
#185 #894970
>>894974
#186 #894974
>>894969
>>894970
благодарочка!
#187 #895021
>>894915
лол, какие же они сектанты ебанутые, мы то не пишем, страдаете как раз вы.
>>895275
#188 #895024
>>894966
выбираю

>1) игноришь ошибку

#189 #895032
>>894821
лол, увидели популярный плагин, форкнули и теперь будут бабло гребсти с сусликов.
У опенсорсных макак от этого не бомбит?
>>895036>>895055
#190 #895036
>>895032
Нет, я готов платить за гарантированную поддержку и фичи.
#191 #895055
>>895032
Самое смешное, что оригинальный плагин собираются ограничить ультимейт версией идеи и др. её платными ответвлениями. Опенсорс, он такой.

Хотя у кого там бомбить-то будет — поищи вон на реддите обсуждения iris-а. Это такой веб-фреймворк, автор которого отклонял все коммиты и коммитил от своего лица. И этим до сих пор кто-то пользуется.
>>895081
#192 #895081
>>895055
А как еще можно организовать?

Как оформить платформу, напрямую не приносящую доход, но позволяющую на себе разместить то, что доход приносит?
Если сделать публично - своруют, если приватно - заебет все контролировать.

Пока дошел до стратегии: отдать публичную часть корки попенсорцу, под утехи и забавы, а приватную анально контролировать, чтоб не утекло.
И аффтору хорошо: пилит только свое.
И попенсорцу: на платформе можно много чего козырного запилить, да и если аффтор-мудаг забьет хуй и полностью удалит приватный сервис с платформы, попенсорц сможет запилить более бледный, но вполне функциональный аналог, тем самым продолжив свое трудное, полное боли, попенсорц-существование.
Такой вот праздник швабодки.
Годно?
#193 #895156
Go-анон, ответь честно: тебе нравится писать на этом языке или тебя заставили?
#194 #895162
>>895156
Сколько можно повторять, конченные блять. Язык это нечто большее чем система типов и набор грамматик. Язык это еще рантайм, язык это еще тулинг, язык это еще деплой и т.д. и т.д. Мне Go дает быстрые программы, широкую экосистему (пакетов много, легко прикрутить), простой деплой с кросс-компиляцией и хардверную конкуррентность. Это очень охуенный инструмент если ты знаешь что с ним делать.
>>895164>>895170
#195 #895164
>>895162
То есть заставили.
#196 #895170
>>895162
Пишу я на %ЯП-нейм% и мне всё в нем нравится, мне не нужно себя через силу заставлять использовать его, при этом он мощный и на нём можно писать как всякие мелочи так и серьёзные приложения. Порой даже думаю, как хорошо, что я выбрал именно его в своё время.
Довольно часто можно слышать фразу, особенно здесь, что язык-лишь средство, а не объект поклонения. Я согласен, но приятно же, когда язык одновременно прагматичен и написание кода на нём доставляет удовольствие?
#197 #895171
А потом еще регуляркой парсишь err - то ли сервер с базой недоступен, то ли ошибка в коммите.
>>894889
>>895239>>895523
#198 #895238
>>895156
заставили, начальство как лохи купились на выигрыш производительности, а теперь логти грызут и на нас орут, что скорость разработке просела к хуям (у уже молчу про качество, так как наши велосипеды глючные, что сторонние, да блять сам язык глючный)

мими питон макака
#199 #895239
>>895171
Лол, вспомнил сразу детство и пхп, там тоже вечно строки парсили, чтобы тот или иной тип узнать
#200 #895273
>>894920

> паттерн-матчинга и алгебраических типов


Проиграл, нахуй это в полностью императивном языке?
>>895538
#201 #895275
>>895021
Горят в основном javaдауны, типо тебя, которые приходят срать в тред. Потому что ничего кроме Huita<DrugayaHuitaInterface> huita = new Huita<DrugayaHuitaInterface>>(); не можете распарсить.
>>895295
#202 #895277
>>895156
Нравится. Джава оверхед для моих задач, нода говно, на пайтоне, временами рубях, пишу на работе. Функциональные идеи не нравятся, а лисп, точнее slime emacs'a, не осилил.
#203 #895289
Замечательный кандидат, сказавший, что Java он не знает и можно ли сделать задание на Go? Я сказал в том смысле что «хрен с ним, давайте на Go», на что получил ответ — «отлично, Go я тоже не знаю, вот выучу и сделаю»! Скажу честно — я горжусь знакомством (пусть и шапочным) с таким упорным человеком.
https://habrahabr.ru/company/ecwid/blog/315228/

Гоферы, почему вы такие глупые сектанты? Это же жесть))
>>895292
#204 #895292
>>895289
Почему ты называешь гофером человека, который не знает Go? Человек из твоей цитаты не гофер и не джавер, а просто обычный еблан. Гоферы и Go тут не при чём.
>>895293>>895312
#205 #895293
>>895292
Это толстый троллинг, зря ведешься.
#206 #895295
>>895275
Таким даунятам как ты котлин завизли (и скалу), а ты все порашу семедесятых готов жрешь, без обработок ошибок, без нормальных регулярок, без пропертей (лол голые структуры) и глючнее чем пхп и js (хотя те были стандартом де-факто)
>>895300
#207 #895300
>>895295

> порашу семедесятых


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

> без обработок ошибок


Я года 4 писал на сишке и не знаю, что это такое. А тут даже defer и recovery есть.

> без нормальных регулярок


Там, где мне нужны серьёзные регулярки, лучше perl скрипт накидаю. Простые регулярки в го хороши.
>>895313>>895314
#208 #895312
>>895292
Потому что ты глупый суслик и не видишь тут очередной вкидон месседжа о том, "вот я возьму Го за пару дней и стану про-программистом на нем". Просто он сказал это в таком блядь идиотском контексте, что вызывает только тупое умиление от маркетинговых стереотипов.
#209 #895313
>>895300

>Я года 4 писал на сишке и не знаю, что это такое


Посмотри в окно, мир за 44 года изменился.

>лучше perl скрипт накидаю


Там где нужно стандартное де-фактор решение - "я запилю свои костыли", ага. Да ты просто мастер проектного дела.
#210 #895314
>>895300

>Я года 4 писал на сишке


И что же ты в го забыл-то? Из системщиков-лабодаунов в бэкэндеры?
>>895332>>895489
#211 #895332
>>895314
скорее всего он писал круды на сишке, такие долбаебы тоже есть и для них го действительно очень крутой язык (как это было бы в 1970 годах)
#212 #895489
>>895314
Просто понравился язык. Такой же простой, но с куда большим набором фич.
#213 #895523
>>895171
Для эрроров можно типы задавать.
Так что ничего парсить не надо, стандартные case
Но это если эррор написан нормально
>>895536>>898068
#214 #895529
Обратите внимание, как го-сектанты выравнивали или пытались выравнивать "ненужные" комменты (вероятно кооперируясь в их закрытом сектанском чатике на слаке)
>>895530
#216 #895536
>>895523
Конечно, в нормальных языках исключения имеют дерево наследования, скажем ты можешь прописать IOException вместо всех ошибок данного типа.
В говне тебе придется ручками все ловить, лол

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

И да, будут тысячи либ улучшающие работу с ошибками, как и с логгерами сейчас и будет сотня тысяч несовместимостей.

Запомни уже Анош, Го не подходит для реального приложения, только хуяк-хуяк-скрипты.
#217 #895538
>>895273
а нахуй тогда в императивном языке возможность передавать функции аргументом в другие функции?
>>895541
#218 #895541
>>895538
Не вижу противоречия с императивностью
>>895544
#219 #895544
>>895541
окей, а какие противоречия у паттерн матчинга, который по-сути switch? тут даже мб и switch хватило бы, если бы завезли хотя бы union типы

а вообще то что ты говоришь нихуя не аргумент, а больше похоже на троллинг или просто тупость
>>895688
#220 #895686
>>895536

> в нормальных языках


> дерево наследования


лол
>>895690
#221 #895688
>>895544
паттерн матчинга нет в си и обероне, потому нет и в го
>>895692>>895694
#222 #895690
>>895686

>лол


лол
#223 #895692
>>895688
Нету, как и всего остального, потому что клали болт на синтаксис вообще. Но радует не это, радует то, что маркетологи + евангелисты настолько качественно выполнили свою работу, что суслики даже отстаивают многие решения (точнее отсутствие вообще каких-то решений).
>>895697
#224 #895694
>>895688

> отсылка к "авторитетам"


ретроград? ретроград же!

в си не было http сервера из коробки, откуда в гоу, нахуй СЕРВЕР? что за хуйня!?
>>895701
#225 #895697
>>895692
То что некую (я бы сказал большую, но не всю) аудиторию программистов постоянно разводят - это давно не секрет, но больше лулзов приносит сочетание этой тупости с их высокомерием.
Не является ли маскот-дебил - этакой скрытой шуткой над ними?
Есть тут ZOG эксперты, которые забыли принять таблетку?
#226 #895699
>>895536
омг. ещё один адепт Exception Driven Development. хочу прочитать файл на диске, а его нет - нужно что бы случилось выпадение ошибки которое непременно нужно ловить, иначе вся приложуха упадёт. вот где-то здесь ахуеть можно. а если нужно записать в файл но не хватает прав? конечно нужно снова что бы случилось выпадение ошибки. однажды ошибка выпадет когда ты будешь ехать в карете и её будет наматывать на колесо, пока у тебя глаза не втянуться в череп, как у улитки.
>>897152
#227 #895701
>>895694
если смотреть по тестам, то это самый медленный асинхронный сервер, так что считай его там нет
>>895703
#228 #895703
>>895701

> маняврирование в сторону снижения значимости факта


сноб? сноб же!

в си не было корутин и каналов из коробки, откуда в гоу, нахуй КОРУТИНЫ И КАНАЛЫ? что за хуйня!?
>>895705>>895990
#229 #895705
>>895703
Я не то анон, я просто хотел обосрать сервер.
Но соглашусь, только крайне поверхностно можно сравнить го с си, но не забывай что сусклики совсем не интеллектуалы.
>>895710
#230 #895710
>>895705
зачем вообще сравнивать гоу с си и оправдывать отсутствие фичи Х в гоу тем что её не было в си? я такую хуйню если кому расскажу - мне же не поверят!
>>895839
#231 #895839
>>895710
у тебя нет друзей и тебе никто не верит. Ты же на двачах и в го-треде, кого ты пытаешься обмануть здесь
>>895850
#232 #895850
>>895839
лол. друзей нет, но есть сотрудники на работе, с которыми мы иногда ржем с найденных нами странностей в той или иной сфере айти. вот гоу достаточно богатый источник лулзов
>>895912
#233 #895912
>>895850
ну так завези нам что-нить лулзовое, все равно всех фанбоев распугали
>>895973
#234 #895973
>>895912
Я фанбой и еще здесь. Мне пичот только от ошибок и немного от отсутствия женериков, но женерики таки ненужны их слишком сложно понимать потом, а у меня айкью и так около 80, а ошибки я просто ИГНОРИРУЮ.
>>896010
#235 #895990
>>895703

> в си не было корутин и каналов из коробки


> в си не было http сервера из коробки


И тут Остапа понесло.
1. Когда пилили С, то идеи асинхронного программирования были только в теории. А go лепили чтобы избавиться от костылей в специфичных нуждах компании.
2. В С из библиотек вообще нихуя нет из коробки кроме libc.
>>895991
#236 #895991
>>895990

> А go лепили чтобы избавиться от костылей в специфичных нуждах компании.


По сути go повторил путь эрланга.
>>896001>>896023
#237 #896001
>>895991
Эрланг не взлетел.
>>896023
#238 #896010
>>895973
это нормальная практика еще с пхп
>>896032
87 Кб, 1196x165
#239 #896021
Вспомнил что у меня есть аккаунт в сектантский чате (теперь уже почему-то закрытом чате, лол), буду по мере лени кидать лулзы сусликов.

И так, сегодняшний пациент утверждает почему дебаггер не нужен.
Го не только лучший язык тысячелетия (того тысячелетия), так взяв его, вы перестанете писать баги! Именно поэтому дебаггер это атавизм старых глупых языков.
>>896026
#240 #896023
>>896001
Он слишком узкоспециализированный и начал набирать актуальность только в последние 5 лет про то, что его допилили до вменяемого состояния (когда можно просто взять и заюзать а не фиксить баги в нём самом и допиливать под свои нужды) как раз в последние несколько лет промолчим, лол.
>>895991
Да нет.

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

Го же - дельфи1 в 1. Простой язык, киллерфича которого в текущий промежуток времени является мейнстримовой. Но суют и сувать будут везде. Собственно, на этом всё, дальше сами знаете.
>>896027
#241 #896026
>>896021
Так то же самое несут хачкель-сектанты, мол, отладчик нинужин. Что как бы намекает что они ничего и не пишут, лол.

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

Про типизацию и обработку ошибок порадовало (а под злым компилятором он что имеет в виду - запрещение компилировать если есть лишний импорт?)
>>896103
#242 #896027
>>896023
лол, горутины киллер фича?
ну серьезно для чего ты стал их использовать?? Про асинхронный пиздеж не надо, он нужен только в блокирующий i/o,а это редкое явление по процессорному времени, а вот дергать планировщик каждый вызов функции это нормально (причем ОС тоже делает это)?
>>896033
#243 #896032
>>896010
Не поверишь, но я не писал никогда на пхп, вообще никогда, даже гостевух. И мимо веб-параши на го тоже прошел. Веб - для педиков.
>>896044
#244 #896033
>>896027
Да, это киллер фича позволяющая утилизировать все лишние ядра безо всякого пердолинга. Как и в дэльфи в своё время с гуем - может и будет притормаживать, зато легко и просто.
>>896041
34 Кб, 821x137
Еще один пациент #245 #896038
Автокомплит названий функций/методов в IDE??? - НЕНУЖНО!!!
>>896057>>896067
#246 #896041
>>896033
Еще раз, выигрыш будет только во время блокирующий операций (которые уже юзают реже), а в остальном твой поток и так в максимум отработает (но не в ГО, так как там будет шедулер на каждый вызов функции дергаться, представь какая просадка)
>>896062
#247 #896044
>>896032

>>Веб - для педиков



Ты в нем сидишь и пишешь это, хм, ну окей
>>896066
#248 #896057
>>896038
Вероятно это про функцию которая переводить строку в int - Atoi() - охуенная функция, а то блять ParseInt() пиздец какое длинное и запутанное имя.
>>896062
#249 #896062
>>896057
ASCII to INT, что не так?
>>896041
Да похуй на шедулер и тормоза, можно сделать быстро и модно загрузить ядра.
>>896068
#250 #896066
>>896044
Имеется ввиду что его готовят педики. Ты еще скажи что макак не играется на заднем дворе у себя.
#251 #896067
>>896038
Вообще чат там нормальный был раньше, пока ебанутая Леночка не забанила 255-го. Я и сам съебал оттуда после его бана, пусть варятся в своих стартапах сами, дауны.
>>896074>>896090
#252 #896068
>>896062

>Сокращение по первой букве в 2016 году


>Что не так?


Все отлично, продолжайте.

>Да похуй на шедулер и тормоза


>и модно загрузить ядра.


чтобы этот монстр тормозил уже на всех ядрах, лул
#253 #896074
>>896067
стори?
>>896078
#254 #896078
>>896074
У мясной дырки https://twitter.com/webdeva пригорело. Вот и вся стори. Да похуй на этих чертей.
>>896081
#255 #896081
>>896078
её по-моему завезли, когда упрекнули что голанд-шоу как сосисочная вечеринка, а все норм подкасты пищалку имеют.
Но все равно от нее толку ноль, она там почти молчит всегда.
Правда помню подкаст, она проговорилась про отчет (она ляпнула типа "как было бы удобно если бы ты сделал так, было бы удобно отчет составлять").

У меня сразу же включился ZOG - отчет кому??? Некой доброй компании?
>>896085>>896086
#256 #896085
>>896081
что касается чатика, так там иногда такую херню несут, и так слащаво себя ведут, что по ощущениям как минимум 95% участников там даже не программисты, а как бы просто играются в Го и либы (есть такие полудурки)
#257 #896086
>>896081

>Некой доброй компании?


Ну так у них же есть спонсоры. И вангую не только диджитал оушен. Платят так или иначе за популяризацию.
>>896091
#258 #896090
>>896067
Да не был он нормальным ещё задолго до неё. Вспомните как там забанили илюшу за "говно" и устраивали охоту на ведьм (если кто найдёт на архиваче/в гугле стори будет) или как там дивана0 заставили расплакаться и убежать.

Это изначально сборник пхпдебилов традающих регулярными истериями.
>>896098>>896099
#259 #896091
>>896086
Там именно сказала в контексте отчета о темах подкаста. Это было сентябре или октябре (в край в августе).

Но вообще явление платных евангелистов это не секрет даже, поэтому думаю срать.
#260 #896098
>>896090
Они закрыли чат и теперь никто не мешает им чувствовать себя важными разработчиками, утопая в оргиях само-лизания.
#261 #896099
>>896090
Ну хз, я там туда пришел за помощью по го, встретил 255-го, остался ради общения. Человек, который не только в го шарит, но и вообще, и в общем. А я как раз пилил одну вундервафлю, а у него как раз был интерес в такой вундервафле. Должно было срастись, но эта тупая пиздень взяла и дропнула его. Я не долго думая самодропнулся. Так что я не очень в курсе как там было пару лет назад. Но что меня взбесило с самого начала, тоже мод, щас не вспомню ник, с самого начала доебался мол хуль я не самосдеанонился на входе? Я охуел от такого и показал ему фейкоакк в вконтаче. И это, кстати, потом не только ко мне такие предъявы были. Я пытался возмущаться, это же интернет, ебана! Но там набегали из близких к моче и затыкали рот, мол здесь такой положняк. При том что там сидит Акулович, разраб вконтача, то есть сдеанонить например меня, не составит проблем. Короче, я оттуда съебал и на то были причины. Сидеть ли там вам - решайте сами.
>>896101
#262 #896101
>>896099
Лол, это походу же Илья их так надрессировал?
>>896102
#263 #896102
>>896101
Нет, его уже к тому времени тоже дропнули. Как и Ивана-дивана.
>>896109
#264 #896103
>>896026

>отладчик нинужин


Но во всяких хаскилях/окамлах он и правда не нужен. Система типов поймает кучу ошибок, а те, которые не поймает, можно вручную найти через ручную редукцию функций. Вот автоматический редуцилятор бы не помешал, а отладчик нинужен.
#265 #896109
>>896102
Приходишь такой в сообщество, в обычное техническое сообщество, а тебя к стенке ставят и разъясняют что ты хуй и ты нам должен... (может еще ксерокопию паспорта?)
Я бы прихуел от такого гостеприимства.
Пиздец они больные уебаны.
>>896113
#266 #896113
>>896109
А еще желательно не называться никнеймами и на аватарку фоточку свою ставить. Реально там не так все просто, вот выше параноик-кун тоже заметил. Но я не выкупаю в чем суть, а в ZOG не верю.
158 Кб, 580x931
#267 #896144
Суть треда прямо отражается в пикче
>>896194
#268 #896194
>>896144
Го от этого лучше не стал, просто фанатики съебнули, это же не чатик, тут наплакаться и забанить нельзя
#269 #896221
а этот хуй с радио-т, как он поносом поливал го и стебался, а потом вдруг резко прозрел, даже какую-то статью написал и по-моему начал активно го в новости включать.

И вот в статье рассказывает какой го-шикарный и понятный язык, типа открыл код и сразу все прочел и вспомнил.
Я через полгода открыл го-код я охуел от процедурного мусора.
>>896223>>896258
#270 #896223
>>896221
а ведь его слушают дети, продажный он хуй)
#271 #896258
>>896221
Гуглозог ему на клык лапу дал, не иначе.
Я прямо предвижу, как через несколько лет все вдруг прозреют и будут переписывать свою веб-парашу на новый модный язык, а Го будут хаять. Как с руби, примерно, произошло.
>>896316
#272 #896316
>>896258
Язык уже в стагнации, ему же около семи лет?
Большого бума на рынке вакансий не произошло, тру-стори по переходу с языка X на язык Go были настолько наивными и поверхностными, что вызывали только бурление говн и отвращения. Тем более специальные холиварные сравнения языков и того что го лучше их, вызывали больше ненависти, чем попытку черного пиара.

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

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

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

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

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

Еще я думаю, что внутри компании много кода написано и им не очень как бы хочется вносить новый синтаксис, то есть все устаревает (алиасы вот только хотели, но хомяки что-то в стойку встали), поэтому гораздо проще евангелистов заставить проехаться по ушам хомякам, что мол так и надо, так и правильно (я уверен обработают и по алиасам так же, через несколько месяцев суслики уже будут топить что это норма и вообще не портит сопровождение кода).
138 Кб, 951x637
#273 #896393
А тем временем
#274 #896396
Посоны, а вы ставите перед гошным сервером апач или нгинкс? Вот у меня есть сервис на го, он должен крутится в торе. Запускать от рута мне чет не хочется, впрочем как и ебаться с конфигами апача. Как сделать лучше?
#275 #896482
>>896396
ндижнкс же, причём всегда если у тебя только что-то на сам апач завязано. тогда апач тоже за нждниском поставить. странные у тебя вопросы какие-то
#276 #896502
>>896396
что тут
#277 #896570
Безопасно ли пользоваться таким кодом

> result, err := db.Query("SELECT anon FROM sosach where pinus_len=?", "10")


или лучше обмазываться мидлварями?
>>896572>>896592
170 Кб, 1266x339
#278 #896572
>>896570
Алсо, я прогнал роуты sqlmap'ом, вроде безопасно. Но эти русские хакеры, они же везде(((
#279 #896592
>>896570
Ебать дебил.
Добро пожаловать, это твой тред.
>>896603
#280 #896603
>>896592
Спасибо, ну а по сабжу?
>>896606
#281 #896606
>>896603
проигрываю с этого долбаеба, боиться каких-то хакеров, потратил время на прогон запросов, потратил время чтобы написать сюда, но блять не может прочитать доку где этот момент обговорен.

Ты откуда такой способный? Впрочем вы там все такие.
>>896721
#282 #896685
>>896396
Не нужен го серверу реверс-прокси сервер в большинстве случаев.
>>896716
#283 #896716
>>896685
в каких нужен?
>>896736>>896739
#284 #896721
>>896606
лол. а что если это всё некая теория заговора? все эти абсурдные советы менторским тоном, идиотский синтаксис и прочее. что если это всё создано что бы отсеять адекватных людей способных мыслить самостоятельно и вывести особую касту гоферов?

предлагаю среди таких ньюфагов форсить идею что если прочитать исходники компилятора гоу, то можно найти флаг который переключает его в режим которым пользуется сам пайк. но подробно не говорить что это даст
>>896743>>896778
#285 #896736
#286 #896739
>>896716
не слушай тех анонов. nginx в реальных проектах чаще всего не просто проксирует, а разруливает ещё много чего. просто так ставить его конечно нахуй не нужно. это в принципе касается вообще всего - не делай чего-то, если ты не понимаешь зачем ты это делаешь. вот зачем ты на go пишешь?
>>896743
#287 #896743
>>896721
А там женерики, ООП, функциональное программирование!

>>896739
Мозги промыли, зачем ещё. Вменяемый человек, кто что-то кроме пхп/жс трогал не будет на этом писать.
>>896767
#288 #896767
>>896743
а ещё консоль как в питоне!
#289 #896778
>>896721
заговор уже есть, это вам ответка за то, что не полюбили Dart, страдайте.
>>896781
#290 #896781
>>896778
кому нам, лол? я недавно вкатился в тред, почитал и сделал такой вывод.
дарт не выстрелил так как на практике не даёт ничего что не дал typescript, в то же время имеет неебовый оверхед и рантайм с блекджеком и шлюхами. веб разработчики просто продолжили дрочить свои трансплитеры
>>896787>>896798
#291 #896787
>>896781

>кому нам, лол?


Дегенератам вроде тебя, например
>>896794
#292 #896794
>>896787
да иди ты нахуй, я тебя не знаю, лол
>>896804
#293 #896798
>>896781
За то как много надавал нам го:

>самая лучшая поддержка строк из всех


>на деле просто поток необработанных байт



>ошибки это значения!


>на деле лень было реализовывать что-то удобное в рантайме и оставили как есть (то есть - ничего)



>дженерики ненужны


>но чтобы совсем не наглеть сделали типизацию хотя бы в слайсах и мапах (тут оказались нужны)



>язык легко читается и очень прост


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



>компилируемый язык, статическая типизация


>большая часть ошибок увидишь только в рантайме и если повезет (которые можно было еще на момент компиляции отловить)



>быстрая компиляция, почти как в скриптовых языках.


>в мечтах (примечание, говорят было шустро в 1.0, в общем верните мне мой 2012...)



>код элегантен.


> 3 строчки вызова API и тут же 9 строк if err != nil



> interface{} проверить на nil? так никто не делает! НЕНУЖНО!


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

#293 #896798
>>896781
За то как много надавал нам го:

>самая лучшая поддержка строк из всех


>на деле просто поток необработанных байт



>ошибки это значения!


>на деле лень было реализовывать что-то удобное в рантайме и оставили как есть (то есть - ничего)



>дженерики ненужны


>но чтобы совсем не наглеть сделали типизацию хотя бы в слайсах и мапах (тут оказались нужны)



>язык легко читается и очень прост


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



>компилируемый язык, статическая типизация


>большая часть ошибок увидишь только в рантайме и если повезет (которые можно было еще на момент компиляции отловить)



>быстрая компиляция, почти как в скриптовых языках.


>в мечтах (примечание, говорят было шустро в 1.0, в общем верните мне мой 2012...)



>код элегантен.


> 3 строчки вызова API и тут же 9 строк if err != nil



> interface{} проверить на nil? так никто не делает! НЕНУЖНО!


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

>>896803
#294 #896803
>>896798
лол, хули ты ко мне приебался, я сам могу тебе ещё больше расписать о goвне, приправив фрустрациями с поля боя. просто на дарте докер не написали в своё время, а хули ты хотел? дарт не нужен, а гоу менеджеры друг другу продают забивая хуй на касту взаимозаменяемых гоферов
#295 #896804
>>896794
Зато я тебе знаю.
Будь осторожен.
>>896805
#296 #896805
>>896804
катись обратно в свой тред где тебе некому говном кормить
>>896806>>896824
#297 #896806
>>896805
бля, таки опейчатался,

>атись обратно в свой тред где ТЕБЯ некому говном кормить

>>896824
141 Кб, 1600x1035
#298 #896824
>>896834
#299 #896834
>>896824
фройд отстань, я же не написал "некого"
>>896835
#300 #896835
>>896834
Не оправдывайся.
>>896836
#301 #896836
>>896835
перед фройдом не в западло, а ты мне не указ
>>896845
#302 #896845
>>896836
Ха, дебил дебилом - а малаца.
>>896847
#303 #896847
>>896845
хуй соси, губой тряси!
>>896851
#304 #896851
>>896847
Хоть и школьник :3
>>896854
#305 #896854
>>896851
я мамке твоей в рот срал когда ты школьником был, а она тебя целовала!
>>896856
#306 #896856
>>896854

>!


Типичный школьник.
>>896859
#307 #896859
>>896856

> :3


ты в треде для дебилов, дебил
>>896861
#308 #896861
>>896859
Но ведь школьник - это хуже дебила.
Вот и ты, например.
>>896866
#309 #896866
>>896861
но я готов умереть за твой манямир о школьниках, ведь это твоё право быть дебилом и детектить в мимокрокодилах школьников
#310 #896867
классически го-тред, теперь я спокоен
>>896869
#311 #896869
>>896867
Соси говно пидор
>>896870
#312 #896870
>>896869
дурак штоле?
>>896871
#313 #896871
>>896870
Да ты
>>896872
#314 #896872
>>896871
нет, не я, а тот анон уоторому ты писал, я другой анон, не путай, с этого всё и начинается
>>896873
#315 #896873
>>896872
Отстань
>>896874
#316 #896874
#317 #897122
Анон был прав, уже написали пару статей о том, почему алиасы это нужно и почему ты обязан в них верить. В общем осталось за малым, за евангелистами, и суслик будет покладист в этом вопросе.
sage #318 #897152
>>895699
Да нет же, в main() сразу хуяришь в подгузник всю приложуху, и похуй на ошибки. Подумаешь, файлик открыл, а его нет - это ошибка разве? Прав на запись не хватило? ДАЛААААДНО, ПИЗДИШЬ ВЕДЬ, ПАЛЮБАС!!! Короче, я хуярю дальше, а ты там сам права ищи, пидор ебаный. Мне лучше знать, есть тут права или файлик, или нет.
>>897158>>897162
#319 #897158
>>897152

> в main() сразу хуяришь в подгузник всю приложуху, и похуй на ошибки


капитулировал!
#320 #897162
>>897152
Так и надо писать, это залог успеха.
#321 #897377
https://blog.gopheracademy.com/advent-2016/exposing-go-on-the-internet/

Тут подробно расказывают как открывать Go сервисы наружу.
#322 #897413
А почему никто не ноет что компилятор агрится на одинарную кавычку

>println('xyu')


Я считаю это адовым пиздецом и переусложненным ненужно. Потому что приходится постоянно тянуть мизинец к шифту, что не есть удобство.
#323 #897417
>>897413
Можно бэктики использовать. Но хуёво всё равно, да.
>>897461
#324 #897440
>>897413

> одинарная кавычка переусложненное ненужно


> статический язык


Вы там совсем уже зажрались со своей динамикопарашей.
#325 #897441
>>895536

> Го не подходит для реального приложения


С дивана слезь хотя бы.
>>897444>>897460
#326 #897444
>>897441
Илюша, please.
#327 #897460
>>897441
Аргументируй, диванный.
#328 #897461
>>897417
Я использую правый шифт, потому-что левый размером с литеральную клавишу. Бэктики дальше шифта, да еще и слева. Но это да, вопросы к клавиатуре. Но все равно, сделойте чтоб одинарная и двойная кавычка были равносильны.
#329 #897462
А вот кстати да, может кто-то задумывался форкнуть и сделать свой конпилятор, с генериками и нормальными кавычками? И очень ли там все сложно устроено?
#330 #897464
>>897462
Выше вкидывали уже. Но это мёртворождённые языки. Проще взять ЯП, который точно будет развиваться и поддерживаться, чем брать вторичное да ещё и от вторичного языка.
>>897481
#331 #897469
>>897462
В кавычках суть в том, что одни — символ, вторые — строка. Это же типа строгий статический язык у которого всё кастуется к и из интерфейсов, и юнит тесты в самом компиляторе из коробки — лол.
>>897513
#332 #897481
>>897464

>Проще взять ЯП, который точно будет развиваться


>го


>за семь лет сделали с языком нихуя

>>897593
#333 #897513
>>897469

>одни — символ, вторые — строка


В смысле char и char[]?
#334 #897528
>>897462

>кто-то


Илюша
#335 #897593
>>897481
Там из дальнейшего контекста понятно, что я как раз не Го имел в виду.
#336 #897723
>>897413
Во всех нормальных языках так.
Двойные кавычки для строк, одинарные для отдельных символов.
>>897736
#337 #897736
>>897723
define нормальных
>>897737
#338 #897737
>>897736
ретроговно на котором привык писать анон, который рассуждает о "нормальности".

как сказал анон выше про интерфейсы, а ещё забыл упомянуть про то что строки в golang в utf8 и смысл отличия одинарной кавычки от двойной пропадает вообще. но лично меня эта особенность уже не так напрягала после паблик экспортов с имён только с Большой буквы. это пиздец, зачем!?
31 Кб, 1012x167
#339 #897739
Ебать-копать, я щас орнул.
В гошном коде

> base_url = "https://localhost:5000/btc"


> resp, err := http.Get(base_url)


...
И, собственно, сам сервис, который написан на питоне. Дебаг в консольке на скрине. Если что, там третий питон.
#340 #897748
>>897739
zalGO!
>>897758
#341 #897758
>>897748
Я бы сказал zaGLOt
sage #342 #897761
>>897739
Дебил, чтоле? У текстового сервиса крипту спрашиваешь, убери из схемы урла секуре-признак и попробуй снова. Если будет саем шиит, обязательно орну вместе с тобой
>>897763
#343 #897763
>>897761
я другой анон, но разве http.Get имеет различное поведение в зависимости от протокол-части урла?
>>897772
#344 #897766
>>882625 (OP)
ребята, кто нить пытался править исходники или переписывать их?
>>897767
#345 #897767
>>897766
Хочешь что-то переписать, что ли?
#346 #897768
>>897739
ты бы дал ссылочку, где и что накопал.
sage #347 #897772
>>897763
Не удивлюсь, если Пайк насыпал сахар внутрь, а снаружи сахар позапрещал, тот еще хмырь.
>>897776
47 Кб, 1067x600
#348 #897776
>>897772
Да, где-то была отсылка к его словам, что многое уже готово в том или ином виде, но из-за обратной совместимости никто не знает как это запилить до версии 2.0, поэтому они просто не показывают этот функционал. Но если пересобрать компилятор go в gogcc с какими-то там флаги, то можно увидеть go-next и даже писать на нём.
>>897777
#349 #897777
>>897776
Мам, Саша опять троллит!
>>897887
#350 #897887
>>897777
Таки не шутка
>>897760
#351 #898017
Котаны, как получить mode файла, тока шоб в integer? Ну или как конвертнуть такую

>-rw-rw-r--


хуиту в integer?
>>898266
#352 #898045
Ребята, а зачем пакаджи завязаны на фолдерах? Я до сих пор не могу определиться, как правильно структурировать код, я привык обычно feature first подход, но это иногда приводит к конфликтам импортов и борода получается. Я так смотрю многие люди вообще не заморачиваются и хуячат в корень сотку файлов в мейн пак. Наверное оно и удобно, особенно учитывая что перемещаешься по проекту через поиск файлов в ИДЕ, но мне как-то непривычно без фолдеров, сабфолдеров, сабсабфолдеров.
>>898058
#353 #898058
>>898045
Столкнулся с этим в первый день работы Го, был конечно удивлен, так как объясняли что зависимость определяется на уровне одного файла (а не стектрейса где-то в глубине, лол).

Как решение.
Надо просто поток исполнение (еще называет статичные контекст) отделить от библиотечного контекста (то что вызываемо, многоразовое).

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

Что касается комьюните, они или не пишут больших проектов или рефлексируют помещая все и вся в один пакет. Я даже не стал спрашивать, они то в ответах на конкретный дизайн отвечают как ебанутые фанатики, а в вопросах дизайна проектах и абстракций вообще будут хуйню нести (ну то есть они проблемы даже не обсуждают, это закрытая тема в секте).
>>898061
#354 #898061
>>898058
Илюша, съеби.
>>898121
#355 #898068
>>895523
Ладно, педрила, уговорил. Вот код
func qwe (...string) ([]byte, error){
switch {
case string(body) == "Not paid":return nil, errors.New("Not paid")
case len(string(body)) == 32: return body, nil
default:return nil, errors.New("Unknown error")
}
}

Теперь ты мне предлагаешь делать типа такого

zalupa, err := qwe("asd")
if err != nil {
switch err{
case "Not paid":println("Goni bablo, ueba!")
case "Unknown error": println("Che tvorish, pizdets!")
}}
Так штоли? Я бы тебе еблет разбил, если бы увидел что ты такое в продакшон толкаешь, говноед.
>>898070>>898442
#356 #898070
>>898068

>switch err{


>case "Not paid":println("Goni bablo, ueba!")


>case "Unknown error": println("Che tvorish, pizdets!")



Все правильно сделал, так и надо.
>>898073
#357 #898073
>>898070
Ну че ты начинаешь, нормально же общалися.
>>898075
#358 #898075
>>898073
Ты просто не понимаешь сути Го и Гугла.
>>898076
#359 #898076
>>898075
Ну так покажи как надо.
>>898081
#360 #898081
>>898076
Ты все правильно написал, только добавь побольше кейсов.
#361 #898084
Вот, короч, рабочий пример https://play.golang.org/p/8xkN-8rB_A
Так ловить ошибки - это просто пиздец. ПИЗДЕЦ, браты!
>>898087
#362 #898087
>>898084
switch err.Error() {
case "Not paid":
fmt.Println("KUUUUUUUUUUUUPIIIIIIII")
case "Unknown error":
fmt.Println("HZ")
}
Все верно написано, как и задумано.
>>898090
#363 #898090
>>898087
Хватит, перестань. Вернись к себе в пхп-тред.
>>898102
#364 #898102
>>898090

>ААААА ВРЕЕЕЕТИИИИИИ!!!!!!!!


Руки греть можно.
>>898110
#365 #898110
>>898102
Ебанашка, если следовать как ты говоришь, то код на примерно на 85% будет состоять из обработки возможных ошибок. Это не наш путь хотя бы потому, что что в каждую батарейку придется зарываться. Ты, для начала, попробуй case'нуть все ошибки из стандартной библиотеки, потом уже будешь толстить на сосачике, умник хуев.
>>898113>>898119
sage #366 #898113
>>898110
В смысле, у гопников принято ИГНОРИРОВАТЬ ошибки, потому что "этого не может быть"?
#367 #898119
>>898110

>то код на примерно на 85% будет состоять из обработки возможных ошибок


Все верно, так и должно быть.
#368 #898121
>>898061
что не так?
Если функция пакета А вызывает функцию пакета B, та вызывает функцию пакета С, в которой идет вызов чистой функции из A - это будет ошибкой.

Это (если в контексте с++ или джава) вы бы вызвали статическую функцию вышестоящего класса и вас бы за это отругал компилятор.
#369 #898123
>>898121
Да ты охуел, говнюк малолетний.
>>898236
#370 #898236
>>898121
>>898123

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


поправка - вышестоящий класс (пакет) но вызов метода даже другого класса/объекта

Это стоит записать в еще одни вины дизайна ГО.
>>898239
#371 #898239
>>898236
Илюша, угомонись.
Ты никому не нужен.
#372 #898248
Как выглядит функция здорового человека
...
var1 = callSomeApi1()
var2 = callSomeApi2()
var3 = callSomeApi3()
...

Как выглядит функция курильщика
...
var1, err = callSomeApi1()
if err !=nill {
return nil
}

var2, err = callSomeApi2()
if err !=nill {
return nil
}

var3, err = callSomeApi3()
if err !=nill {
return nil
}
...

И тут же мне они говорят, что го-код читается легко!
#372 #898248
Как выглядит функция здорового человека
...
var1 = callSomeApi1()
var2 = callSomeApi2()
var3 = callSomeApi3()
...

Как выглядит функция курильщика
...
var1, err = callSomeApi1()
if err !=nill {
return nil
}

var2, err = callSomeApi2()
if err !=nill {
return nil
}

var3, err = callSomeApi3()
if err !=nill {
return nil
}
...

И тут же мне они говорят, что го-код читается легко!
>>898264>>898442
#373 #898264
>>898248

>var1, err = callSomeApi1()


>if err !=nill {


>return nil


>}


>


>var2, err = callSomeApi2()


>if err !=nill {


>return nil


>}


>


>var3, err = callSomeApi3()


>if err !=nill {


>return nil


>}



Охуенно.
#374 #898266
>>898283
#375 #898283
>>898266
спасибо, порыгал
#376 #898294
>>898121

> Если функция пакета А вызывает функцию пакета B, та вызывает функцию пакета С, в которой идет вызов чистой функции из A - это будет ошибкой.


Естественно, ошибкой говнокодера.
>>898307
78 Кб, 1451x210
сводки из закрытой секты #377 #898301
Кажется гоферы начали что-то подозревать.
#378 #898307
>>898294
В каком месте?
Я придумал для это термин - пакетная рекурсия говна
Ведь компилятор го - не может исключить пакет которые уже загружен в цепочке пакетов, даже у php макак есть include_once.
>>898321>>898693
179 Кб, 1515x374
сводки из закрытой секты #379 #898318
когда ты взял новый го, но все равно мыслишь как php-макака
>>898436
#380 #898321
>>898307
Я тебе больше скажу: даже сишникам завезли #pragma once и простые межмодульные экспорты.
#381 #898322
Сусликов как обычно говном накормили и те довольны. Паттерн поведения даже хуже чем у офисных-энтерпрайз-терпил.
#382 #898436
>>898318
Я тут поясню, а то мало ли тут какие специалисты.
Нет бы добавить один if с проверкой на существование файла (и последующей передаче управлению FileServer или взамен ответу 403) - гофер, берет и натягивает целый сервер к своему серверу!

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

Вот так и живем, с одной стороны фанатики, у которых мозгов хватает только найти либу на гите, с другой скрипачи, которые только что слезли со своих банановых деревьев.
>>898514
#383 #898442
>>898248
Но ведь твои варианты различаются.

Ты уж определись, хочешь ли ты ловить ошибки или нет.
>>898068
вот как работают с ошибками в Го
type MyError struct {
msg string
}
func (e MyError) Error() string {
return e.msg
}

func DoStuff() error {
...
return MyError{"Whoops"}
}
This allows you to check error types:

if _, ok := err.(MyError); ok {
// Handle MyError
} else {
// Handle all other error types
}
>>898509
#384 #898509
>>898442

>Ты уж определись, хочешь ли ты ловить ошибки или нет.


Они и ловятся (уровнем выше, в общем это unchecked исключения, скажем в kotlin, java, в шарпах, плюсах... во всех других языках), просто в нормальном мире программирования - обработка ошибок не является частью контекста исполнения и обрабатывается отдельно (скажем в catch блоках и не обязательно в том же месте). И причина проста, наличие ошибки уже говорит об "другом" поведении для текущего модуля и в большинстве случаев работу модуля нужно прервать (и скорее всего решается это где-то уровнем выше в логике программы).

Да и в том примере проще в catch прописать какой-то общий IOException один раз, чем три раза дергать if != nill

То есть, ошибок либо нет (и это нормальное поведение), либо они есть и это исключительная ситуация, которая обрабатывается отдельно (и именно поэтому, вместо розового пони мира ошбики это значения мы видим реальное if != nil).
>>898510
#385 #898510
>>898509
...и да, ошибки должны быть типизированы уже на уровне стандартной библиотеки и вообще предоставлять что-то кроме как обычную строку.
Текущая модель ошибок подходить чтобы записать в логер и все, хотя ошибки это у нас значения (правда какие непонятно).

Вообще если по честноку, вам вообще никакое API для ошибок не завезли и отъебались только статьей (и евангелистами)
>>898515
#386 #898514
>>898436
чёт проиграл. я так то вообще node-js разраб, который вообще вкатился из web фронтенда, но как-то да, go за гранью добра и зла
#387 #898515
>>898510
я не гофер, но ты тоже мудак. идите нахуй со своими эксепшенами. стек вываливать наружу нужно только в пиздец каких ситуациях, которые и предвидеть то особо не возможно. пока у тебя есть эксепшены - у тебя есть тормоза и оверхед, не говоря о том что это явные признаки плохого кода. код должен быть однозначен, даже таком имеративном goвне. ветвления в коде из-за внешних факторов - это шизофрения
#388 #898516
>>898515
хороший тому пример к тому же проверенный временем - это erlang
>>898522
#389 #898520
>>898515

> стек вываливать наружу нужно только в пиздец каких ситуациях



ПИШЕШЬ ЙОБА-ФУНКЦИЮ
@
ЙОБА-ФУНКЦИИ ВЫЗЫВАЕТСЯ ТЫСЯЧУ РАЗ В РАЗНЫХ МЕСТАХ ПРОГРАММЫ
@
ПРИЛОЖЕНИЕ РАБОТАЕТ И ВДРУГ ПАДАЕТ.
@
МЫ ВИДИМ ОШИБКУ ЙОБА-ФУНКЦИИ, ОНА СКАЗАЛА ЧТО ДЕЛИТЬ НА НОЛЬ НЕ ХОРОШО
@
ТЫ ПРИХОДИШЬ В НЕОПИСУЕМЫЙ ВОСТОРГ ОТ ДЕТАЛЬНОСТИ ОШИБКИ, ТАК КАК В ДУШЕ НЕ ЕБЕШЬ ГДЕ ИМЕННО ИЗ 1000 ВЫЗОВОВ ЭТО ПРОИЗОШЛО - ВЕДЬ ДАУН С ДВАЧА СКАЗАЛ ЧТО СТЕКТРЕЙС НЕНУЖЕН.

Кстати сектанские долбаебы с го-чата говорили такую же хуйню.
Поэтому просто съебись нахуй, глупое животное.
>>898528
#390 #898522
>>898516

>хороший тому пример к тому же проверенный временем - это erlang


В твоем мире бегают розовые пони?
>>898528
#391 #898528
>>898522
нет, там просто есть 6 вариантов ошибки, мб я где-то путаю, но всё однозначно в отличие от ErrorHuinyaProviderDoSomethingButIamIdiot

>>898520
попробуй тоньше. одно дело дебаг в деве, другое дело эксепшены в продакшене, мань
>>898628>>898638
sage #392 #898628
>>898528
На тебе хуету:
Ты у мамки молодец
@
Написал кучу проверок
@
Код работал 3 суток
@
На четвертые криво настроенный периодик удалил файл ровно сразу после твоей проверки его существования
@
А ты уже его открываешь
@
Это же не ошибка, мам, должно открываться!!! Скажи им

Просто иди нахуй, дебил, не всегда есть возможность избежать гонки с внешними для твоего кода подсистемами. Эти гонки надо уметь предусмотреть и обработать. Но у тебя же боязнь трейса, трейс очень медленно работает раз в 5 лет, но даже тут НЕДОПУСТИМО. Ты действительно фанатик, как Пайк прям, ведь ВСТАВКА В МАССИВ - ЭТО УЖАС УЖАС ДОРОГО НЕ ДЕЛАЙ ТАК.
>>898648>>899018
#393 #898638
>>898528
А в чем он не прав-то? Или у тебя есть другие способы узнать где что упало без стектрейса от эксепшена?
>>898515
Пиздец долбоёб. Тормозов там столько же, как и от го-стиля, пока это исключение не произойдёт (причём если оно типизированное — и там тормозов не будет).
Про ветвления извне вообще кекич. Интересно где же суслики набирают таких довнов.
>>898648
#394 #898648
>>898628
>>898638
Все это ненужно и похуй.
>>898661>>898767
#395 #898661
>>898648

>Все это ненужно и похуй.


Go-way as is!
>>898665
#396 #898665
>>898661
Да, это так.
Го - это язык, где говнокодеры могут побыть дебилами - ужасными, бесчувственными, безразличными дебилами, которыми они на самом деле и являются.
>>898767
#397 #898690
Бля, голангны, чет у вас совсем хуево как-то, пойду лучше в монаду завернусь.
#398 #898693
>>898307

> Я придумал для это термин - пакетная рекурсия говна


В пайтоне есть такая же пакетная рекурсия. Говорю же - это проблемы хуёвых кодеров, не умеющих правильно по пакетам функционал раскидать, не оправдывай свой хуёвый скилл проблемами языка.
>>898748>>898783
#399 #898741
>>882625 (OP)
Зачем нужен го, если есть хаскел? Software transactional memory есть, дохуллиард зеленых тредов наплодить можно, есть и исключения, и в Maybe/Either завернуть можно. Хватит выебываться, вкатывайтесь уже.
sage #400 #898748
>>898693
В питоне можно импорт в тело функции упихать в крайнем случае
#401 #898767
>>898648
>>898665
Булшит евангелистов имеет некий порог вхождения, опытный специалист удивиться тому что ему пытаются впарить, а вот бестолковые будут есть это и еще радоваться.

Именно поэтому все сообщество напоминает невменяемых фанатиков, там вот таким странным отбором сконцентрировались "лучшие умы человечества".
>>899012
#402 #898783
>>898693
а кто сказал что пайтон не кусок переоцененного говна?
#403 #899012
>>898767

> Именно поэтому все сообщество напоминает невменяемых фанатиков


Имплаинг, что большинство джаво-, питоно- %langname%- даунов не такие же фанатики. Яркий пример срущие в го тредах хейтеры, которые сбежали из своих протухших хаскелезагонов.
>>899017
#404 #899017
>>899012
просто у хаскеля почти нет хейтеров, потому что им мало пользуются.
А го развивается
>>899020
#405 #899018
>>898628
в го не обязательно проверять файл на существование, если какая-то операция не может выполниться, она вернет ошибку, вот и всё
>>899056
#406 #899020
>>899017
В чем и суть. Сколько бы эти евангелисты каноничного ООП и мимовкатывальщики не срали кирпичами, Go как простой язык общего назначения уже взлетел.
>>899060
#407 #899056
>>899018
а чтобы узнать что именно произошло (нет файла) или ошибка ввода-вывода или доступа, нужна парсить строку ошибки?

Что пугающего в
if ( ! fileExist()) {
// создаем файл
}
>>899076
#408 #899060
>>899020
только в мире розового пони, хотя теперь из перечня вакансий, аля:
php, js, brainfuck, haskel, sql
и правда иногда встречается go, но это скорее какой-то хипстер им там наговнокодил на нем (а менегеры поздно поняли откуда вонь).

Столько там языку лет? Все взлетает?
>>899074
#409 #899074
>>899060
лол, свинособака не понимает что какой-нибудь пыхарь или пистонист может взять и переписать на goвне узкое место в своём проекте и довольны все и заказчик приобщился к модным технологиям и манагер всем теперь продаёт "мегакодера" и кодер на линкедине ещё один скилз добавил. на фоне всего этого 47 хроммосомного пати, бегающие вокруг с порваным пердаком джависты и подобные им - единственное что доставляет
>>899088
#410 #899076
>>899056
так можно и в го
Можно делать проверку отдельно, можно не делать.

И парсить ошибку как текст не надо, в го у ошибок тоже могут быть типы

Вот пример

file, err = os.Create(filename)
if e, ok := err.(*os.PathError); ok {
.//error
}
#411 #899088
>>899074

>какой-нибудь пыхарь или пистонист может взять и переписать на goвне узкое


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

Другой момент, что пыхари и питонщики на хую вертели недоразвитый го после своих божественных динамических языков с готовыми фреймворками.
Ты чем там порадовать скрипщиков решил? Что для парсинга json иногда можно упороться в 50 строк кода? Ты серьезно? Иди катайся на розовом пони.
>>899112
#412 #899112
>>899088
иди нахуй, дабл, лол

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

>узкое местное переписывают на си


проиграл
ты видел как пыхари код пишут? у них всегда открыта вкладка с докой по стандартной либе, лол. какой нахуй си?
>>899177
#413 #899177
>>899112
иди туши пукан в другом месте, а то у него на пхп ели пишут, на сях не могут, а блять на тормознутом языке с ГЦ - запросто, сказочник

ты самый бестолковый фанбой из го которого я встречал, естественный отбор в го дает хорошие плоды (или каникулы)
>>899214>>899215
#414 #899214
>>899177
уёбок, перечитай мои посты, я хуесосил гоферов, только ты настолько туп что продолжал несколько раз отвечать мне как "фанбою". гугл уже в ольгино ботов нанимает для пиара?
>>899274
#415 #899215
>>899177
ты долбаёб, напиши асинхронный производительный сервер на си. а если написал, то какого хуя ты делаешь в пыхе/пистоне? если ты можешь написать на си, то можешь и на пыхе/пистоне ибо не особо сложно, но геморно и сами языки не сроектированны для этого. goвно с деревянным синтаксисом - как раз уровень этих давнов + даёт плюшки недоступные им.
>>899291>>899293
#416 #899274
>>899214

>перечитай мои посты


>в анонимной борде



Сука, где вас таких тупых производят?
Это не десант с закрытого го-чата?
#417 #899291
>>899215

>асинхронный производительный сервер


>пистон


>сами языки не сроектированны для этого


Телл ми моар
#418 #899293
>>899215

>напиши асинхронный производительный сервер на си


сделал, но не понял нахуя мне асинхроность кроме i/o операций.

>то какого хуя ты делаешь в пыхе/пистоне?


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

>goвно с деревянным синтаксисом


> как раз уровень этих давнов


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

Го не влез не туда и не сюда. Писать скриптные проекты на нём - уродливо и очень муторно (так как отсутствие сахара это тонна того же бойлерплейта).
Производительность - я посмотрю как твой язык будет жрать проц, без поколений в ГЦ (каждый раз пережевывая гигабайты одного и того же). Просядит как скриптовые языки.
Асинхронность - лол, ну завезли уже асинхронные i/o и БД, а твое говное как дергало планировщик каждый вызов функции, так и будет.
Компиляция - нет не дженериков, даже interface на nil хер проверишь, большая часть ошибок будет рантайме - и нахер нам тогда компиляция.
#419 #899294
Производительность, хм, тут надо сначала проект хотя бы до 30К хостов довести и уже там думать, а писаться поначалу будет много и времени на бойлерплейт нет. Тем более нет времени на борьбу багов, в том числе полуглупых либ.
>>899301
#420 #899301
>>899294
Это кстати очень похоже на байт от гугла: они выпускают язык, пиарят его, мол, позволяет экономить на железе, а сами реализовывают идеи быстрее чем модные стартаперы с го и имеют с этого хороший профит.
>>899322
#421 #899322
>>899301

>байт от гугла


у гуглапараши все продукты говно, но что ты хотел от рекламной конторы?
>>899323>>899371
#422 #899323
>>899322
Зато у тебя продукты охуенные и мы ими все мечтаем пользоваться. Только где они?
>>899329>>899419
#423 #899329
>>899323
джва на гуглплэй и три на соурсфордже
#424 #899371
>>899322

> у гуглапараши все продукты говно


> миллиарды пользователей по всему миру


Ну-ну, запилишь годноту - приходи.
>>899384
#425 #899384
>>899371
Единственный их хороший продукт — поиск. Остальное выезжает на его горбу за счёт агрессивного маркетинга.
#426 #899392
>>899384
Внезапно удваиваю. Больше всего проигрываю с гугл групп - на моем core i7 этот высер загружает простой текст по 5 секунд. Просто стыдоба.
>>899418
#427 #899418
>>899384
>>899392
Учетверяю, а еще этот дизайн 90х, якобы минимализм, а в действительности уродство школьника-дизайнера на белом фоне.
Они сначала и гугл+ таким сделали, но сейчас до ума немного довели, поняв что их виденье вкуса мир вертел (хотя, опять же, на гугл+ всем все равно срать).
#428 #899419
>>899323

>сначала добейся сам



Ты наверно из одноклассников к нам сюда пришел?
#429 #899428
>>899384

>Единственный их хороший продукт — поиск.


сейчас это лютейшее говно вываливающее кучу нерелевантного проплаченого контента
#430 #899456
>>899384
Добавь еще google analytics
#431 #899468
>>899384
Android ещё.
>>899476
#432 #899476
>>899468

>Android


ох кек, поверх линупса накатали йобаджаву забыв продумать архитектуру.
#433 #899715
go
>>899719
#434 #899719
>>899715

>fix


Вы разрушаете хрупкий мир гофера! Остановитесь!
>>899785
#435 #899785
>>899719
Нет, его тут разрушали когда целый тред пытались объяснить го-довнам что Гц и правда сканирует стек. Осталось ещё объяснить зачем же он это делает, или например почему сусликовый гц грузит цпу похлеще жявного — можно будет наблюдать суицид сусликов в прямом эфире.
>>899786
#436 #899786
>>899785

>пишет в гаф тред


>упоминает в одном предложении Гц и стек


>ожидает адекватной реакции


хорошая попытка
>>899788
#437 #899788
>>899786
Что такое вась, тебе ещё разок скинуть ссылку на ишью на гитхабе говна? Или послать почитать как гц работают?
>>899790>>899801
#438 #899790
>>899788
хуй себе за щёку закинь лучше
>>899792
#439 #899792
>>899790
Типичный гафер сгарел.
#440 #899801
>>899788
лол, я как раз знаю что и как в гойе, а вот ты принёс тупейший развод расчитаный на совсем уже дыбилов. ты понижаешь градус адекватности, я кормлю тебя говном. баланс придумал не я, может боги, может прохожие бомжи в песни спели
>>899802
#441 #899802
>>899801
Ебать ты гоун.
>>899872
#442 #899812
Со скриптами то понятно, удобно. Но если хочется навернуть компиляцию и статику, неужели жрать джаву?
>>899828
#443 #899828
>>899812
Высокоуровенные статические языки на гау и жяве заканчиваются? что за истерия массовая — на лоре все веб уже на си и расте пишут, тут какие-то дураки загуглить языки программирования которые им нужны не могут.
>>899841
#444 #899832
ГГГГГГГГГГГГГГУУУУУУУУУУАААААААУУУУ
#445 #899841
>>899828
так ты тут поплакал но не ответил.
Надеюсь ты сейчас не про perl делфи и всякие шарпы начнешь лечить?
>>899843
#446 #899843
>>899841
Что тебе ответить-то довен? В 2к17 даже в лиспе запилили возможность писать с полноценной статикой, чо тебе надо-то мразиш?
>>899936>>899950
МАРКЕТИНГ #447 #899845
О том как надо пиариться на сектантах, даже если статья не о языке
https://habrahabr.ru/company/scorocode/blog/317450/#comment_9979114
#448 #899872
>>899802
лол, я даже не буду пытаться понять ты один семён или вас туту набежало, но лулз в том что вы пишете на уровне будто не осилили гав и теперь у тебя припеканус
#449 #899936
>>899843
Что за маневры начались, я тебе спросил, на чем писать нормальный статик-типизированый веб в 2017, если го-говно, а джава избыточная что пиздец (и никому ненужный шарп туда же).

Ты блин еще бы мне кобол сюда принес, лисподолбоёб
>>899941
#450 #899941
>>899936

>нормальный


на перл, давай расскажи, что это не модно и не молодежно.
#451 #899950
>>899843

> даже в лиспе запилили возможность


покажи примеры готовые, будь братишкой
#452 #899997
Пацаны, а как у вас тут затестить скока памяти отжирает, скока процессорного времени и т.д.? Тока мне самому эти ебучие тесты лениво писать, может есть какие вундервафли?
#453 #900054
>>899997
если джава и го:

-у го нет поколений в ГЦ - чем больше хип, тем тормознутие.
-но есть стек и value type - что немного поможет (нет конечно).
-джава оптимизирует код лучше, за счет jvm может оптимизировать даже моменты которые сишный O3 не может
-за счет jvm есть спекулятивная оптимизация.
-для джавы пилят бинарник graal вроде 9.0 будет (так что и стартовать будет быстро, хотя мы все сервера пишем же, нам срать).
-jvm не могут создавать новые версии которые будут тормознутие старых. На го похер (помним просадки в 1.6 и 1.8 за счет оптимизации ГЦ, платой проца).
#454 #900058
>>900054
Так как ГЦ это узкое место производительности, продолжем:

-есть выбор разных ГЦ у джавы
хочет раз в 5 минут собирайся потратив 100мс (что срать для веба), хочешь каждый 10мс, но заплатив просадкой 20% проца за реалтайм, лол.

-есть возможность тюнить ГЦ и реально выжить в сложных местах что-то. В го? В го маскот думает за тебя что тебе лучше
>>900066
#455 #900066
>>900054
>>900058
Тебя спросили, как протестить, а не твои рассуждения на тему "я хейчу го, поэтому вот причины, по которым джава, наверное, будет лучше"

>>899997
Вот какой-то тест
https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=go&lang2=java
>>900135>>900213
#456 #900129
Есть ли какая-нибудь хуйня автоматическая система сборки, которая фиксит ошибки всякую хуйню типа анюзд импорта/переменных?
>>900251
#457 #900135
>>900066
хейчу говно где хочу
>>900189
#458 #900189
>>900135
У меня даже собака с кошкой не срут где хотят. Ты глупее их, выходит.
>>900229
#459 #900213
>>900066

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


Это называется "правда глаз режет". Если бы было что ответить — парировал бы.

>Вот какой-то тест


Ты поехавший? При чем тут бенчмарк?
>>899997
А нахуя тебе это в самом языке/его тулките? Это функционал любой системы из коробки. (h)top на никсах и диспечер на шинде.

Если нужно прямо измерять сколько тактов и кб уходит в каждой функции — есть из коробки гуглевский pprof.
#460 #900229
>>900189
ты у них спрашивал чтоли? дебил))
>>900231
#461 #900231
>>900229
Нет. Я их воспитывал - прописывал пиздюлИн.
Они на удивление быстро усвоили правила приличия - за какой-нибудь год. В отличии от тебя - ты и после 20 лет нихуя не понял.
Так что они как минимум в 20 раз умнее тебя.
#462 #900251
>>900129
Нет, но обычно редактор такое умеет.
#463 #900252
>>900054
Ты долбоеб, у нас таких в АТО отправляют. Расскажи мне, даун, как ты замеры делаешь? Го - бинарь, жвм - виртуалка и говно в байткоде. Даже так считай, считать с диска джва метра гошного бинаря и 80 метров всяких говноскриптов на баше в перемешку с сишными бинарями, всю эту мешанину ты и называешь ЖВМ. Еще раз, ты отвечаешь как полный даун, который не может в контекст, во-вторых, пошел на хуй, жавадаун.
>>900266
#464 #900266
>>900252
Ты новичок?
Замеры кода делают так: опрашивают аппаратный счетчик процессора, запускают код, еще раз опрашивают счетчик. Дельта счетчика и есть время исполнения.
Как видишь никакой зависимости от размера кода на диске нет - только время исполнения.
Для явы еще прогрев кода устраивают - вызывают код тысяч 100 раз перед замером, чтобы все оптимизации прошли.

Я конечно понимаю что ты еще зеленый и даже такие основы вызывают у тебя проблемы, но в следующий раз не пались так - пацаны за такие глупые вопросы тебя с ходу обоссут, и поделом.
А пока я добрый - мотай на ус. Может даже за умного сойдешь, если будешь рот поменьше раскрывать.
>>900283
#465 #900283
>>900266
Лолд. Ты рсскажи юзеру что твоя параша не тормозить, а если тормозит, то надо 100к раз запустить что сработали все оптимизации. И пусть еще гигов 60 памяти докупит, а то чет медленно прогревается. Какой же ты тупой, пиздец.
>>900305>>900310
#466 #900305
>>900283
Очередной нытик?
Ты не знал как замерять - тебе любезно рассказали.
Чего тебе еще надо, собака?
#467 #900310
>>900283
это долбаеб пытается задеть чувства самого быстрого ГЦ и лучшего jit компилятора?

Иди лучше сделай своему го вменяемую скорость хеш-мапы до уровня джавы и потом мы еще попробуем сравнить это говно
>>900314
#468 #900314
>>900310
эти бараны в выдачу хеш-мапы поставили рандомайзер, чтобы не казалось что мапа сортированная - пиздец
>>900328
#469 #900328
>>900314
тебя ебать не должно
иди нахуй
>>900345
#470 #900345
>>900328
Порванный фанбой это скучно, ты лучше расскажи,
каково ощущать, что тебя считают таким дебилом, что добавили рандомайзер?

а вообще го весьма удачный эксперимент, мы теперь игнорируем людей у которых есть приписка Го в резюме
>>900351>>900491
161 Кб, 800x1067
#471 #900351
>>900345
У меня возникла теория.
Го - как единица психической аномалии в программировании.
Если человек так легко выкидывает из головы все эволюционные решения принятые в программировании, то либо у него их совсем не было (в голове), либо он настолько хуевый специалист, что готов жертвовать инструментом в пользу моды/понтов/авторитетства.

Недаром они такие неадекватные.
>>900491
#472 #900471
>>900054

>-джава оптимизирует код лучше, за счет jvm может оптимизировать даже моменты которые сишный O3 не может


>-за счет jvm есть спекулятивная оптимизация.


Это все компенсации убогости языка (из за боксинга, виртуальных методов, стирания джинериков и тд)
В итоге + на - дает ~0 преймущест по сравнению с другими рантайми (типа .NET или GO)

-для джавы пилят бинарник graal вроде 9.0 будет

> (c) В основном работа идёт с java.base, но в JDK 9 даже он официально поддерживаться не будет, вся фича экспериментальная. А Graal тоже тестируем.



>стартовать будет быстро


> (c) В случае с холодным стартом проблема медленного запуска может с AOT не решаться, а усугубляться: теперь надо ещё больше грузить данных с диска, потому что нативный код в общем случае ещё больше, чем байткод



Oracle планирует использовать его в AOT только для компилирования одного модуля из стандартной библиотеки Java
И да же он один превращается в бинарник на 265MB (у конкурентов 30MB)
Да и поддерживается только Linux x64

Подробности http://jug.ru/2016/12/aot-hotspot/

мимо джавист
>>900519>>900533
#473 #900491
>>900345
>>900351
сосите хуй завистники
>>900524
#474 #900519
>>900471

>мимо джавист


мимо долбаеб ты.

>виртуальных методов


jvm и это оптимизирует и даже половину методов инлайнит или выбрасывает нахуй (если это геттеры и сеттеры)

>стирания джинериков


что за ересь?? в байткоде нет денериков, долбаеб

>В итоге + на - дает ~0


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

Бинарник нужен для клиентского ПО, для быстрого старта и все, но джава чаще крутиться на серверах, поэтому мне срать (и другим 99%), мне jit важнее (так как он будет мощнее оптимизировать чем компиляция, в том числе разворачивать циклы с динамическим счетчиком и использовать спекулятивную оптимизацию).

Мой диагноз твоих пониманий и знаний в ИТ - уровень гофер
>>900523
#475 #900523
>>900519

>jvm и это оптимизирует


Во первых не всегда, а только когда есть одна известная имлементация.
Девиртуализация есть и в том C# + там по умолчанию методы не виртуальные

>и даже половину методов инлайнит или выбрасывает нахуй (если это геттеры и сеттеры)


и в этом нет ничего уникального, другие компиляторы (C#/GO/C++) делаю тоже самое

>что за ересь?? в байткоде нет денериков


Дубик, я и имел в виду type erasure в дженериках ( https://docs.oracle.com/javase/tutorial/java/generics/genMethods.html )

>мне jit важнее


да похуй мне что тебе важнее, просто выше кто-то вскукарекнул про AOT в java

мимо джавист
>>900534
#476 #900524
>>900491
Ты такой упоротый дебил, что реально думаешь что вам всем завидуют? Ты воспринимаешь язык как привилегию, мол ты можешь пользоваться, а мы нет и поэтому завидуем и хейтим? Ты реально дебил?

У меня кстати знакомый питонщик ушел с работы, когда их стали "насильно-добровольно" переводить на эту парашу. Я бы сделал так же, какая зависть тут? Люди бояться языка для даунов, ты только на маскот посмотри. Го - язык для ^бедных^ глупых
>>900578
#477 #900533
>>900471

> мимо джавист



Так бы и сказал, что говноед.
#478 #900534
>>900523

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


В чем проблема? Хотспот не глуп и в отличие от -O3 не покрашит код в говно (а в случае чего и откатить может)

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

Шарп говно которое уже никому не нужно, да там плюх больше, но это в большом бизнесе не решает (и кстати шарп тормознутие джавы, лол).

>https://docs.oracle.com/javase/tutorial/java/generics/genMethods.html


ты просто сказочный долбаеб, ты походу не знал как устроены дженерики, что это обертка-каст вокруг Object?

>мимо джавист


уровня Го, лол
>>900576
#479 #900563
Мочератор! Этот джава-даун уже всех заебал!
>>900707
#480 #900568
>>899384
Gmail/Inbox хороший почтовый клиент. Скорее всего даже лучший в принципе.

Calendar очень хороший органайзер, альтернатив считай нет.

Maps/Earth очень качественный софт. Жаль прекратили поддерживать бесплатный Earth. Ну это, что говорится, fair enough, потому что бесплатный Earth мало кому стал нужен после того, как Maps стали такими удобными в браузере (где-то после 2008 года).

Docs — идеальна хуйня. Коллаб с задержками до полусекунды буквально. Кстати, кому интересно, гуглите Paxos.

И это основные. Еще не забывай про Blogger, который был просто лютовой годнотой в нулевые и даже сейчас позволяет даже домохозяйкам вести блог.

знаю что покормил
>>900804
#481 #900576
>>900534
Вот кстати да. Тоже при анализе виртуалок пришел к одному открытию для себя: виртуалка имеет полный контроль над исполнением кода, а значит имеет возможность обрабатывать все исключительные ситуации с кодом внутри себя, чего код без виртуалки не может сделать.

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

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

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

Также виртуалка открывает и другие интересные возможности, в частности для защиты. Так например жава легко позволяет строить сети из недоверенных узлов, обладающие абсолютной защитой от перехвата и проникновения, в которых MITM невозможен теоретически.
>>900579>>900720
#482 #900578
>>900524

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


да
#483 #900579
>>900576
Как можно нести настолько складную ахинею и не краснеть? Расскажи свой секрет. Скажи честно, сам искренне веришь в свой бред?
>>900581>>900621
#484 #900581
>>900579
Гофер, иди нахуй.
#485 #900598
Собрались как-то 2 питониста, 3 джависта, 2 пхписта и 1 эрлангист в го-треде
>>900601
#486 #900601
>>900598
А Илюша им и говорит азаза мамок ебал
#487 #900621
>>900579
Ну если для тебя такие вещи невероятны, то... зачем тогда ты нужен?
>>900721
#488 #900692
Сапоги горный, какую литературу посоветуете нюфагу?
#489 #900693
>>900692

>горный


Гоферы*, лол
#490 #900697
>>900692
GOF, очевидно.
#491 #900698
>>900692
она нинужна.
серьёзно, тура на сайте го хватит с головой.
#492 #900707
>>900563
Няш, у нас свободное общение, если он дискутирует по существу, то он в своем праве.
>>900751
133 Кб, 1440x810
#493 #900720
>>900576

>код вообще не будет падать


Программы на Java спокойно падают с сегфолтами:
- Реальные баги в виртуальной машине (те уровней отказа у тебя теперь 2: твоя программа + JVM)
- Ошибки в C++ вставках (JNI)
- Ошибки при использование Unsafe (или коде библиотек использующих его).
>>900784
#494 #900721
>>900621
Ну вот смотри. Ломается у тебя физическая память, и уносит страницу, в которой был код твоей виртуальной машины - восстанавливайся. Или уносит половину байткода. Или уносит данные, над которыми байткод производит действия. В последних двух, максимум, что ты можешь - мирно убить приложение. А вот если глюканёт один бит и поменяет, например, dec на inc, то к тому моменту, как ты это просто заметишь, половину рабочих за твоим станком уже намотает на вал.
мимо
>>900834
#495 #900751
>>900707
Рот закрой, гнида.
#496 #900784
>>900720

>Программы на Java спокойно падают с сегфолтами


И?
У виртуалок есть возможность управления кодом на лету, у самого кода такой возможности нет. В этом и разница.
Виртуалка - это "внешняя" сущность для кода, но сущность, которую удобно менять. Фактически код для исполнения кода.

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

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

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

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

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

Нативный код лишен такого интерфейса, поэтому падает - нет гарантии корректности кода для железа и корректности железа для кода.
Программист вынужден все необходимые костыли вставлять сам, для каждого приложения.
Компиляторы и HAL тоже вносят свою лепту в интерфейс, но в отличии от виртуалки они статические - это как общение с иностранцем не через живого переводчика, учитывающего все особенности обеих сторон, вплоть до воспитания, образования, характера и настроения собеседников, исправляющего косяки, осуществляющего литературный перевод где необходимо, а через школьный словарик, коверкая смысл и недопонимая друг друга.
Грубо говоря компилятор ссыт оптимизировать что-либо, если твердо не уверен в безопасности оптимизации, и для большинства ситуаций он не может знать, что многое можно было соптимизировать намного лучше. Виртуалка знает что безопасно, а что нет, и имеет возможность менять код на лету, так что не задумывается над оптимизациями - смело оптимизирует все, что может, гарантируя безопасность своими внутренними проверками. И, в отличии от компилятора, с помощью расширений ее можно заставить не только оптимизировать, но и модифицировать код как угодно, пользуясь данными рантайма.
#496 #900784
>>900720

>Программы на Java спокойно падают с сегфолтами


И?
У виртуалок есть возможность управления кодом на лету, у самого кода такой возможности нет. В этом и разница.
Виртуалка - это "внешняя" сущность для кода, но сущность, которую удобно менять. Фактически код для исполнения кода.

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

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

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

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

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

Нативный код лишен такого интерфейса, поэтому падает - нет гарантии корректности кода для железа и корректности железа для кода.
Программист вынужден все необходимые костыли вставлять сам, для каждого приложения.
Компиляторы и HAL тоже вносят свою лепту в интерфейс, но в отличии от виртуалки они статические - это как общение с иностранцем не через живого переводчика, учитывающего все особенности обеих сторон, вплоть до воспитания, образования, характера и настроения собеседников, исправляющего косяки, осуществляющего литературный перевод где необходимо, а через школьный словарик, коверкая смысл и недопонимая друг друга.
Грубо говоря компилятор ссыт оптимизировать что-либо, если твердо не уверен в безопасности оптимизации, и для большинства ситуаций он не может знать, что многое можно было соптимизировать намного лучше. Виртуалка знает что безопасно, а что нет, и имеет возможность менять код на лету, так что не задумывается над оптимизациями - смело оптимизирует все, что может, гарантируя безопасность своими внутренними проверками. И, в отличии от компилятора, с помощью расширений ее можно заставить не только оптимизировать, но и модифицировать код как угодно, пользуясь данными рантайма.
>>900795>>900860
#497 #900790
>>900792>>900795
#498 #900792
>>900793>>900795
#499 #900793
>>900795
#501 #900804
>>900568
А еще эти пидеры выпилили отличнейший рсс клиент.
PEREKOT Perekoter !JLHGEtxGTk #502 #900816
ПЕРЕКОТ в тред >>900814 (OP)
#503 #900834
>>900721

>Ну вот смотри. Ломается у тебя физическая память, и уносит страницу, в которой был код твоей виртуальной машины - восстанавливайся.


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

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

>то к тому моменту, как ты это просто заметишь


Предполагается сканирование памяти раз в n секунд? Банально.
Нет, и это тоже необходимо, но в данном случае это просто как периодическая проверка индексов ФС - все ли верно, ничего ли не потеряли?
Не обязательная, но желательная процедура.
ИРЛ, для случая одного массива памяти, абстрагировании более жесткое - виртуалка не имеет доступа к физической памяти, она видит корректную виртуальную память, которую ей подсовывает слой абстракций памяти.
А вот тот слой абстракций уже работает с физической памятью - записывает данные с избыточностью, проверяет корректность при считывании, восстанавливает данные при ошибке, генерируя новую копию избыточных данных, отправляя сбойную ячейку на обслуживание, генерит для сбойных ячеек специальный код доступа, т.к. сбойные ячейки не полные, и напрямую их читать нельзя.
Ведет фоновое сканирование всего массива памяти, обновляет и перетасовывает информацию (тренирует накопители), отжигает блоки памяти с вышедшим ресурсом, следит за целостностью и количеством своих обработчиков - кусков кода, рассеяных по памяти, часть из которых работает параллельно, и гарантирует защиту от сбоев самого этого слоя абстракций.

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

Цена в любом случае - замедление работы. Но если корректность важна - оно того стоит.
#503 #900834
>>900721

>Ну вот смотри. Ломается у тебя физическая память, и уносит страницу, в которой был код твоей виртуальной машины - восстанавливайся.


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

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

>то к тому моменту, как ты это просто заметишь


Предполагается сканирование памяти раз в n секунд? Банально.
Нет, и это тоже необходимо, но в данном случае это просто как периодическая проверка индексов ФС - все ли верно, ничего ли не потеряли?
Не обязательная, но желательная процедура.
ИРЛ, для случая одного массива памяти, абстрагировании более жесткое - виртуалка не имеет доступа к физической памяти, она видит корректную виртуальную память, которую ей подсовывает слой абстракций памяти.
А вот тот слой абстракций уже работает с физической памятью - записывает данные с избыточностью, проверяет корректность при считывании, восстанавливает данные при ошибке, генерируя новую копию избыточных данных, отправляя сбойную ячейку на обслуживание, генерит для сбойных ячеек специальный код доступа, т.к. сбойные ячейки не полные, и напрямую их читать нельзя.
Ведет фоновое сканирование всего массива памяти, обновляет и перетасовывает информацию (тренирует накопители), отжигает блоки памяти с вышедшим ресурсом, следит за целостностью и количеством своих обработчиков - кусков кода, рассеяных по памяти, часть из которых работает параллельно, и гарантирует защиту от сбоев самого этого слоя абстракций.

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

Цена в любом случае - замедление работы. Но если корректность важна - оно того стоит.
>>900860
#504 #900860
>>900834
>>900784
Перекат, берите свои цитатки и уебывайте туда
ПЕРЕКОТ https://2ch.hk/pr/res/900789.html (М)
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 18 января 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски