Это копия, сохраненная 12 октября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Пока все хейтят и поливают говном Голанг, за его дизайн(отсутствие джинериков, обработка ошибок трай/кейч), но несмотря на это , В 2к17 Golang официально вошел в 10 самых популярных языков по версии известного всем сайта TEOBE:
Пруф: https://www.tiobe.com/tiobe-index/
Итак, какими же феромонами манит Golang к себе все больше и больше разработчиков:
1: Компиляция в монолитный статический бинарник, со всеми зависимостями и библиотеками( в отличии от других языков не нужно возиться с установкой различных виртуальных машин, интерпритаторов, жит компиляторов, библиотек, менеджеров зависимостей)
Так-как компиляция идет в машинный код, можно спокойно делать массовый продукт для продажы и не боясь что твой написанный код растащут юные куль хачкеры(питон, руби, пеашпи, джаву код никак не защитить)
У Go самая быстрая компиляция в бинарник(ц++, хачкиль, раст, д, просто курят в сторонке)
Работает на всех популярных ОС(linux, windows, mac), легкая кросскомпиляция без геморроя.
2: Постой в изучении: Подробная документация всего на 100 страницах. Язык может быстро оседлать буквально за 7 дней, если уже программировал на любом другом языке
3: Многопоточность и без всякого GIL (привет аутсайдерам Питону, Руби, Пеашпи)
4: Язык разрабатывает одна из самых богатых кампаний в мире, а это значит есть ресурсы чтобы делать хайп языку и его раскручивать( привет аутсайдеру Dlang)
5: Все есть из коробки, чтобы делать веб шедевры, консольные утилиты(http, sql, template, smtp, html парсер и т.д)
6: Много сексес стори , применения языка в продакшен( докер, почта.маил.ру, бипкар, различные файлообменники и стартапы)
7: обратная совместимость между версиями компилятора
8: самое большое количество созданных приложений 819.000
Пруф: https://libraries.io/
Пока хейтеры будут ругать Golang , мы семимильными шагами продвиним данное божье творение в топ 5 рейтинг языков. Потом эти хейтеры очнуться и поймут , что случилось и станут умолять , чтобы их тоже взяли в сообщество Гоферов.
Для тех кто решил вкатиться в Golang, что имеем на данный момент:
1: Официальная документация: http://godoc.org/
2: Перевод на русский мануала про секретные чит коды: https://github.com/Konstantin8105/Effective_Go_RU
3: 814.000 проектов https://libraries.io/go
4: русскоязычный подкаст про Golang http://golangshow.com/
5: Огромное мировое сообщество в гугл группе: https://groups.google.com/forum/#!forum/golang-nuts
6: Сборник лучших библиотек для Go : https://github.com/avelino/awesome-go
7: Отаеты на вопросы и решения по языку Go ttps://toster.ru/tag/go/questions
8: Около 10 полноценных видеокурсов (на анг яз), которые можно утянуть с того же рутрекера
9: примерно 8 книг(3 книги переведены на русский язык)
10: Есть полноценная IDE goglang, а также плагины к популярным редакторам
Ответы на самые популярные вопросы:
КАК ВКАТИТЬСЯ В Golang ПРЯМО СЕГОДНЯ?
https://gobyexample.com/
https://learnxinyminutes.com/docs/go/
https://github.com/Konstantin8105/Effective_Go_RU
https://youtube.com/watch?list=PLrCZzMib1e9q-X5V9pTM6J0AemRWseM7I&v=9Pk7xAT_aCU (rus)
https://golangbot.com/ (eng)
ЧТО-ТО Я ОЧКУЮ ПЕРЕХОДИТЬ НА ГОЛАНГ,? говорят он отстойный, подскажи, как вылечить фобию и начать наконец-то изучать Go, соит ли его мне начинать тыкать палочкой?
Чтобы выбить из своей головы подобные страхи , убеждения , достаточно всего лишь прочитать 2 статьи от самого популярного подкастера Юмпутуна из http://radio-t.com
#1 http://p.umputun.com/2016/05/03/go-ili-nie-go/ наччало
#2 http://p.umputun.com/2017/04/18/god-s-go-v-riealnoi-rabotie/ спустя год
В комментах выкладывайте ссылки на различные видео, конспекты, статьи по языку Golang, которые вам понравились!
http://benchmarksgame.alioth.debian.org/u64q/go.html
>>1021004
Посмотри сегодня эту лекцию, может вкатишься
https://youtube.com/watch?list=PLrCZzMib1e9q-X5V9pTM6J0AemRWseM7I&v=9Pk7xAT_aCU
Можешь сначала немного Питоном обмазаться, а потом на Golang двинуть
Если до этого уже программировал на других языках, то можно с книги Кернигана занырнуть в Go, если программирование с нуля, то скорее всего сложна будет и местами не понятно
https://vk.com/doc58893927_374748614
янитакая
есть на русском https://gobyexample.ru/
есть на русском https://learnxinyminutes.com/docs/ru-ru/go-ru/
Про это забыли http://golang-book.ru/
Ну потихоньку вакансии нарастают
Ну он же не преподаватель а топовый разработчик маил.ру. Если нужны понятные объяснения , то это нужно идти в университет,там профессор умеет нормально объяснять
Ты прав, пиздуй на завод.
Питонидзов на него активно пересаживают, но чую я подвох.
Сделай лучше.
Я вот пописываю скриптики и ковыряю веб на Питоне. Хочу для начала попробовать все свои наработки-наработочки переписать на Го.
Позже хочу вкатиться в профессию кодера и хочу на Го.
Осваивание туторов из шапки даст знания для джуна?
ОП, очень хорошо описал. Мне вот только интересно, как вообще люди переходят с одного ЯП на другой? Вот к примеру я пишу на плюсах, для скриптов юзаю питон или баш. А зачем мне го?
Я вообще пишу в notepad'е, а компилирую через командную строку.
Хотя можно как на видео через Visual Studio Code, но меня бесит их корявые настройки, когда указал не ту папку и ничего не работает, т.к. типа крутые программисты, а сделать, чтобы всё работало нажатием 1 кнопки не могут.
>Нод32 ловит вирус-рекламщик при компиляции хелоу ворда
Скорей всего у тебя комп уже заражён и вирус поражает все новые ехешники.
мимо-пользователь-нод32-более10лет
линукс
Нет, за своим кодом надо следить самому. Если код кривой, то ни какой fmt это не исправит. Любой Goмик тебе скажет: "фу, какой противный у тебя код!".
Мы таких врунишек как ты за версту чуем. Чем в 2к17 не судьба удалить Швиндувс и установить нормальную ОС типо Ubuntu или MacOS??? И не нужно будет тратить время, чтобы каждый месяц искать ключ лицензии от антивируса.
Golang компилятор и СублуймТекст редактор завести а остальное все от лукавого, только систему засорять.
Нахуй так жить?
>Автокомплита почти нет, подсветки нет.
Хуй знает, у меня на маке практически идеально работает. Автокомплит по всем скачанным библиотекам, переход к исходникам, автоформатирование, даже глобальный рефакторинг работал - идеальное ide.
Ставлю плагины, пишет ошибки:
go: missing Git command. See https://golang.org/s/gogetcmd
package github.com/golang/lint/golint: exec: "git": executable file not found in %PATH%
вернее он работает но его почти нет
Та же фигня, полдня маялся. В итоге выбрал папку в проводнике (панель слева), которая совпадает с %GOPATH% и всё установилось.
Ебанат! Вы откуда, нахуй, прилетели сюда?! Я сколько жил, никак не думал, что в такое ебанатство попаду! Вы откуда все прилетели, вы же, я не знаю, в тех же школах учились, у тех же учителей, у тебя же, блядь, родители – почти мои ровесники, нахуй! Как ты-то получился, из чего?!
У меня лицензия на 3 года, сасайте лалки.
>Как ты-то получился, из чего?!
Из говна и палок, очевидно же. Тут больше половины зекача таких. python/js/php треды забиты вопросами один тупее другого.
бамп нахуй
И как его выловить? Я хочу компилировать на десктопе, а то 3 день сижу в плейграунте го, но там много не напишешь.
Лол блять, три года без антивируса, полет нормальный
К сожалению, со знаниями настройки VS Code не рождаются.
Если что, я про это:
PHP7 по скорости рвет питон и руби, и наравне с нодой. Так что не вот этого.
Нужно сравнивать не скорость языков а фреймворки на этих языка. Потому что в семье равно узким местом будет запросы в базу данных. К тому же по любому будет на фронте мощный сервер nginx с которым любой яп будет нормально летать. Так же нужно учитывать скорость разработки на питоне и руби это будет мега быстро. Также удовольствие от разработки, на PHP вонючке не всем приятно прожить
На РНР можно реально зарабатывать деньги хоть сейчас, а Go пока ни кому не нужен кроме mail.ru
Нагуглил, что есть библиотека gxui, но как ей пользоваться - не понятно. Инфы - 0.
Ну хорошо. А как вызвать WinAPI функции напрямую в Go? Есть ли какая-нибудь книга "Программируем на Го под Шиндовс"?
https://github.com/avelino/awesome-go#gui
https://github.com/therecipe/qt
https://github.com/andlabs/ui
https://github.com/go-qml/qml
https://github.com/go-vgo/robotgo
https://github.com/alexflint/gallium
Добро пожаловать в программирование. Работа программиста подразумевает постоянный поиск и изучение информации.
>>1024000
>как вызвать WinAPI
https://ru.stackoverflow.com/questions/537173/go-windows-api
Нет. Быстрее кода, который генерируют компиляторы С/С++, ничего нет. Скорость кода окамла чуть быстрее джавы, но уступает С/С++
Попробовал установить библиотеку, пишет:
exec: "gcc": executable file not found in %PATH%
Это чё? Я должен поставить себе ещё компилятор С, чтобы что-то написать на Go?
FORTRAN
Поставил этот gcc. Снова пытаюсь установить библиотеку, а это говно мне выдаёт 100500 ошибок компиляции. Это чё? Я должен ещё ошибки выискать этих криворуких создателей библиотеки?
Сколько работал с C/C++, ни разу такой фигни не испытывал, что готовая библиотека не хочет компилироваться. Видимо, там разрабы вообще рукожопые и не проверяют что выкладывают. Какое вообще может быть к ним доверие после этого? Может там вирусы или майнеры встроены в эти библиотеки.
И че тут гадать должны, что ты там поставил и как? Расписывай проблему полностью, что ставил, как ставил.
Эх, помню смеялся я над этим 2 года назад, а сегодня они демпингуют мою зарплату.
>разрабы вообще рукожопые
Хз, в тебе что-то явно не так, может 47 хромосома в код затесалась? У меня проблем не возникало.
Собственно у них вся страничка забита комментами с моей проблемой и походу они её так и не решили, потому что не может так быть, что у всех людей ничего не работает:
https://github.com/andlabs/ui/issues/229
Разработчики языка сами предложили инструмент для установки сторонних библиотек:
go get [адрес_библиотеки]
А по факту этот механизм не работает, т.к. требуется установка каких-то сторонних программ. Причём даже после их установки всё равно ничего не работает, т.к. видите ли я скачал какую-то не такую версию, да и винда у меня не такой версии как у разработчиков, да и вообще надо поработать напильником, чтобы что-то заработало.
Вот откуда я должен всё это знать?
Помню как-то на РНР срочно нужно было работать с Excel файлами. За 5 минут нашёл библиотеку в виде одного простого файла, скачал его и вставил к себе. Прописал include и всё, блин, заработало с первого раза. А ещё кто-то гонит на РНР.
Тебе дали 5 ссылок на разные библиотеки. Есть qt под go. Не можешь осилить, не лезь в программирование.
>>1024135
Тебе сказали, либо описывай проблему пошагаво, и тебе помогут, либо молчи. Гадать что там у тебя, и жалеть тебя, никто не будет.
go get у всех работает кроме тебя. разные версии ставятся специальными инструментами, гугли. На винде там никто не сидит. Винда не предназначена для программирования. Работать напильником, искать информацию, - все это ежедневная жизнь программиста. Ты попал не туда где все легко. Своими капризами ты ничего не добьешься. Скорее всего тебе никто отвечать не будет, слишком крикливо себя ведешь. Задавай вопросы адекватно, никто не обязан подтирать за тобой сопли.
>Ты попал не туда где все легко
Противоречие. На первой лекции от мэйлру, говорили, что тут всё легче, чем в С++, а по факту всё наоборот. В С++ не испытывал таких проблем.
Под винду никто не парится с совместимостью.
>В С++ не испытывал таких проблем.
Там не нужно было думать? Вот уж действительно, хуже джава-дебила только крестовик.
>в отличии от других языков не нужно возиться с установкой различных виртуальных машин, интерпритаторов, жит компиляторов, библиотек, менеджеров зависимостей
А вот нихуя, CRT все равно должна быть, потому что практически все, что написано в наши дни требует сишного рантайма
Чтобы go get нормально работал, нужно дополнительно установить прожку под названием Git, она в и нормально прописать пути path
>Там не нужно было думать
Там не нужно было ебстись в жопу из-за такой простой хуиты. Тут размышлизмы уровня генту-червя нужны, если ты из тех кому нравится руками собирать ядро и ебистись с анимешной вайфу, вместо решения задач - ты сверхразум, забей на смердов.
>ебстись в жопу
>установить пару дефолтных тулз для разработчика
Проорал с этого крестодолбоёба.
Алзо, тут го2 вроде как хотят.
https://blog.golang.org/toward-go2
Golang 2.0. Не ждем , а готовимся. Скоро другие языки окончательно соснут
Как же я проигрываю с этих довнов из Гугла. Опыт ангуляра их ни чему не научил, лишь бы скорее хуяк хуяк в продакшен и занять рыночек. Необучаемые блять. И ведь хипстота будет жрать из очередное говно, а через два года ещё одно, лол.
И это говорит адепт крестов. Иди заучивай спецификацию c++ на 1500 страниц. В го спецификация 50-100 страниц, точно не помню.
>Иди заучивай спецификацию c++ на 1500 страниц
Ничего не заучивал. Понимание языка приходит со временем. Какие-то синтаксические мелочи всегда можно посмотреть тогда, когда они будут нужны.
Полностью согласен.
Даже в начале 2000-х, я с трудом на дискетах доставал компиляторы и они работали без допиливания. Просто пишешь нужный include и вот тебе и графика, и файловый ввод/вывод.
Ещё забыл пример привести. У нас в универе был Visual C++ 6.0, а дома у меня был Borland C++ (не помню уже какой версии). Я переносил исходники, чтобы сдать лабы и они компилировались без доработок на обеих платформах.
Боюсь представить сколько будет боли и слёз для студентов, которые будут изучать Go.
Если используешь библиотеки написанные на языке Go, то компиляция идет очень быстро и как по маслу. Если хочешь использовать библиотеки с , где есть Си код и библиотеки(например тот же порт к Gtk GUI, то придется немного повозиться. Нужно будет установить эти самые сишные библиотеки в систему. И программа будет достаточно долго собираться, потому что Си библиотеки шибко гемморойные. Ну это нормально, потому что тот же Qt5 фреймворк на С++, может собираться в программу хоть 2 часа
Не будет боли. Используй код и библиотеки, которые написаны чисто на языке Go. Если будешь пытаться вызывать Си библиотеки , то нужно будет повозиться, так как Ц/Ц++ слишком геморройные языки, тем более если их использовать вместе с другими языками
Зато попробуй Джавку скомпилировать в бинарник, чтобы не нужно было использовать всякие жвм, посмотри сколько памяти кушает го и джава, нахуя в веб приплетать джаву, которая предназначена для разработки большой группы людей в кровавом ынтерплайзе. Не легче ли лежать в гомаке попивая сокэ и безболезненно делая микросервисы. На джаве будешь читать 500 мегабайтные исходники от очередных индусов
> Зато попробуй Джавку скомпилировать в бинарник, чтобы не нужно было использовать всякие жвм
Можно. Но он будет хуже работать, чем божественная хотспот жвм.
Жвм также даёт кучу преимуществ разработчику, помимо джита и сборщика. Совместимость с кодом и бинарниками десятилетней давности, одинаковая работа на любой ОС, триллиарды библиотек в мавене доступных всегда и на любой платформе, профайлинг из коробки, миллион настроек производительности, загрузка классов на лету и всё в таком роде.
> посмотри сколько памяти кушает го и джава,
Не всё ли равно? Памяти в каждой микроволновке по 30 гигабайт сейчас.
Такая модель памяти увеличивает производительность джявы в разы без ручных оптимизаций, поэтому у неё сосут не разгибаясь все кроме C/C++.
> нахуя в веб приплетать джаву, которая предназначена для разработки большой группы людей в кровавом ынтерплайзе. Не легче ли лежать в гомаке попивая сокэ и безболезненно делая микросервисы. На джаве будешь читать 500 мегабайтные исходники от очередных индусов
А что ты хотел от языка 1990 года?
Для хипсторов есть скала, кложура, котлин. И они лучше го.
>докачивать ещё 100500 программ
Стоп. Щито? Крестоблядок не знает что такое gcc? Are you serious?
>с нуля написать для Go библиотеку с помощью которой можно будет рисовать GUI на html/js
Ты серьёзно сейчас? Это тысячи на полторы часов, если браться сейчас писать js интерпретатор на go.
В том и прикол, что диска Е: у меня нет. Скорей всего диск Е: у разрабов этой кривой библиотеки.
Я тот пример так решил:
[code]for i := 1; i < 100; i++ {
s := ""
if i%3 == 0 {
s += "Fizz"
}
if i%5 == 0 {
s += "Buzz"
}
fmt.Println(i, " "+s)
}[/code]
Блин, коряво выложил. Вот красивенько.
Это было чтение сути свича по диагонали.
% возвращает деление по модулю - число
&& возвращает и сравнивает бул
Как ты собрался сравнивать число и бул? Либо в свитч суй бул, тогда первый кейс скомпилится, либо в первом кейсе возвращай число.
В goвно треде большинство, как я посмотрю, особо одарены интеллектом
Вы еще 10 тред не до конца отсосали, куда прыгаете пучеглазые долбаебы?
В динамичных языках есть coercion.
Вот у меня бабах после джваскрипта.
10х Бабах от массивов. А указатели так и не понял. Очень всё "просто" однако.
Нехуя, прозревший через лучи буллшита здравый смысл! Скриньте!
Да анон, если не считать хуевые порты, кроме голого хттп говнища там ничего нет!
Поисковые запросы.
Прям в дни релиза покемонов го :)
Пользуюсь виртуальной машиной вмваре и проблема заключается в том , что буквы начинают сами печататься , точнее одна
Я только ставлю курсор на сорочку и он сразу же начинает писать одну букву ( dddddd ) и так постоянно
Объясните что это ? И как убрать
Уже перестанавливал
То есть, чтобы скинуть дробилку (парсинг видео или картинки) вам реально понадобиться хуячить новые микросервис (хотя го мог бы просто позволить заюзать отдельный поток)
Наверно так же как и во всем типизированном мире. Создаётся структура и в нее инжектятся жсон пропертис.
мимо честно не ебу
Я уже видел ублюдков, которые хуячат на каждый чих горутину. Можно только представить все прелести параллельной отладки, когда одна из сотен говно горутин начнет магически сыпаться.
Например потому, что слайсы забагованы и могут поменять состояние оставив старое в других переменных (и это просто охуенно!).
>То есть, чтобы скинуть дробилку (парсинг видео или картинки) вам реально понадобиться хуячить новые микросервис (хотя го мог бы просто позволить заюзать отдельный поток)
И шо ты думаешь, Python что ли будет лучше для этого?
Го сэкономит норм озу и чуток проца, но все это не будет иметь значения даже если у тебя нагрузка на 2 сервака.
А вот в плане комфорта и быстроты разработки, что питон, что другой скрипт язык даст фору, особенно если там тяжелые либы на сях написаны.
Но если у тебя 100 серваков, то реально перепись на го даст сэкономить (хотя я бы оставил все на питоне, а путем замеров тяжелое переписал на си)
Врешь, Go на 6 месте с цифрой 2,981,149, даже Netty порвал. Так то.
fasthttp - автор отрицает необходимость поддержки полностью http протокола, так что это говнокостыль только для школьных тестов (там вообще ад, если разобраться в истории).
Иди покопайся в реддите. И там где-то есть ссылка на гугл группу. И весь ад не в том, что он не посчитал нужным что-то поддерживать, а то как он ставит свои позиции в стиле гошного НЕНУЖНО, я умнее и мне виднее. И как он вообще реагирует на замечания по коду.
Его сервак не очень даже встречали в гофер чате. В общем, типичных фанатик, я бы в продакшен такой код не потащил.
Ну а так, если надо бенчмарки подрочить - сделай пул потоков на чистый асинхронных сокетах с минимум обработки хттп и там все бенчмарки ты в труху порвешь (ума много не надо, но все же там тестят сервера, а не переделки-на-коленке).
Чаще просадка именно из-за обработки хттп протокола и абстракций кода (особенно в жабе) для последующего модульного расширения обработки этого хттп (яркий пример нетти с его хендлерами и то как надо 3-4 хендлера в пайлане прогнать для поддержки всего и вся в хттп)
Реквестирую golang windows
>Чаще просадка именно из-за обработки хттп протокола и абстракций кода (особенно в жабе) для последующего модульного расширения обработки этого хттп (яркий пример нетти с его хендлерами и то как надо 3-4 хендлера в пайлане прогнать для поддержки всего и вся в хттп)
Надо отдать должное, несмотря то что жабисты любят упарываться оверхедными абстракциями, код на ней продолжает летать хотя я не фанат жабы
Хотя это больше заслуга JIT которого научили выбрасывать и инлайнить все говно что лепят индусы да, те тесты после прогрева гоняют, я смотрел.
>отдавать статику
>через язык
Что? Тебе когда надо картинку отдать или css файл ты в скрипте открываешь файл, читаешь его и пишешь клиенту, так что-ли?
Так я и думал. Никто даже объяснить не сможет что там не поддерживается. И на заметку, протоколы никогда не используются полностью. Никто сейчас не использует все коды ответов, это ни к чему. Если он не дописал коды ответов, то это не страшно.
Хейтерам Го лишь зацепиться за что-то. И ведь лезут же на ветки чтобы хейтить. Лучше бы свои дела делали.
Джава очень быстрая, этого не отнять. Но какой ценой, горы шаблонного кода и абстракций. И память жрет будь здоров. Я удивился, что го смог обогнать нетти, ведь эта штука очень быстрая.
Го может спокойно жить с реверс-прокси. От этого скорость только увеличится. Fcgi епта.
Чем тебя не устраивает стандартный Go http client? Зачем использовать дополнительные костыли
Перечитай мое сообщение, даунито, чтобы понять, что я говорю об обратном.
>>1025142
Уже лет 8 как взлетает, да все никак не взлетит.
К сожалению язык не выстрелил, а вендроида гугл обмазал готовым говнищем - котлином.
Го сейчас как дарт, без поддержки в хроме. Язык свободного плавания. Только отголоски маркетинга, затрагивают глупые молодые умы недо-программистов.
Они даже вкурили что не смогли всех заставить жрать говно и задумались о го 2.0 лол
Но мы то знаем что уже поздно.
Запусти голый нетти и он порвет даже пример с си, тебе уже сказали, еблоид пучеглазый, перделки-на-коленках на а-сокетах рвет все что можно (почти на любом языке), но это не становится автоматически хттп серверов
>Они даже вкурили что не смогли всех заставить жрать говно и задумались о го 2.0 лол
И по высказыванию Кокса уже ясно что дженериков ждать не стоит.
Пока одна функция дрочит дробилку - весь поток, в котором существует эта горутина - стоит то есть вся очередь стоит.
Надо руками дергать из дробилки, если дробилка не твоя, то соси болт гоферам это норма.
Для примера в ос-потоках, операционка всегда переключает процесс/поток, даже если дробилка и делает это эффективно (хотя тяжелее чем зеленные потоки).
Простыми словами - зеленные потоки мощный инструмент, но специфичный и надо знать для чего использовать.
Круто иметь выбор, что и дают другие языки со всякими фьючерами, асинками, yield, корутинами (котлин) или с реактивным программированием.
Правильно говоришь, у C11 (а это самый последний стандарт) спецификация всего в 700 страниц.
Сколько там в го спека??
>В го спецификация 50-100 страниц
Как эти ублюдки умудрились обосраться так в дизайне языка?
https://habrahabr.ru/company/mailru/blog/314804/
И поверь это не все.
>В одном потоке? WAT
А няшные горутины на что нужны? Одни рутины пусть видео файлы скачивают, другие работают над конвертацией видео, следующие закачивают файлы на сервер, не?
>>1025187
А в го ооочень много недочётов. Например попробуй это:
int a[16] = {2};
написать в го не больше чем в одну строку.
Ладно, это нужно нечасто, простим. Но почему в туре по го они не описали свою систему указателей нормально? Вот как сделать это:
int a[16] = {2};
int ptr = a;
ptr++;
ptr = 'c';
putchar(ptr);
?
> Одни рутины пусть видео файлы скачивают, другие работают над конвертацией видео, следующие закачивают файлы на сервер, не?
Как ты горутины распределишь физически по ос-тредам? Го такое не дает, у тебя будет все вперемешку.
Есть
Я уж не говорю про _Generic из С11 или мощные Rust-макросы.
Эти пидорасы изначально положили болт на синтаксис и фичи ради легкой разработки компилятора.
Приятно нехуя не делать, а потом выехать за счет "ненужно"-маркетинга. Мол
- у нас лучшие строки.
На деле тупо сырой байтовый поток.
-у нас лучшая обработка ошибок.
Никакой обработки ошибок нет вообще, они просто показали практику как нужно делать.
Особенно классно когда ошибка одна - и ты можешь тупо заигнорить. Или как в SQL просто забыть вызвать row.Error() в конце.
Привет - магическому поведению программы.
Ты реально думаешь, что они запилят что-то годное? Скорее создадут видимость опроса и дисскусий, а потом протолкнут свои алиасы (от которого комьюнити прихуело и им пришлось откатиться) и впихнут пару сахаринок, может даже повезет и для if != err чего завезут
Надо быть откровенно долбаебом, чтобы не видеть этот развод и что язык никак не создавался для программистов.
Далбаёбами для далбаёбов.
Запомни.
Пиздец какой-то.
Гасите его пургеном!
В го есть gc
В го ланге можно запустить дохера процессов. С какого хера нельзя выделить для числодробилки отдельный процесс а пока она выполняется в других процессах делать другую работу(например скачивать видео)?
>>Надо быть откровенно долбаебом, чтобы не видеть этот развод
>>В чем развод то
Ну а все же.
Кого разводят?
И на что?
В пикчу вглядись, может поймешь. Хотя вообще весь пост говорит о разводе, что выезжают на макаках, но ты блядь, умнейший из сусликовых, конечно же не догоняешь
>В пикчу вглядись, может поймешь
Да, ты меня оскорбляешь.
Это понятно.
>выезжают на макаках
Что ты под этим имеешь ввиду?
И каким образом этот "развод" касается не макак, и не дебилов?
>но ты блядь, умнейший из сусликовых
Сорянчик, но ты меня с кем-то путаешь.
Зачем ты за других решаешь. Отвечай за себя. Не нравится, не используй. Твердишь, что го тебе безразличен, а сам сутками на ветках его обсуждаешь. Это скрытая любой наверное. Если тебе го так не нравится, зачем ты тратишь время на его обсуждения.
Я не пойму, гугол же серьезная компания, неужели они не могут запилить норм язык шоб прям всем вкатило. Какой им профит от всего этого цирка?
https://habrahabr.ru/post/333346/
го был запилен тк гугл не нашел на рынке достаточно джаба-макак и понял что легче плодить своих. для этого был разработан язык ориентированный на макак, чтобы можно было обучить макакить за неделю тренинга и потом макакер уже может макакить код и зарабатывать баксы гуглу.
Ну правильно, бизнесу нужен быстро написанные рабочие программы, которые как можно скорее будут приносить деньги. Нет времени, пока кто-то будет у себя в анале пальцем ковыряться и постигать ООП Жабы. По быренькому обучили, запелили и начали бабосики зарабатывать пока джава-господа запускают свою ide
А какие программы можно намакакить, если нельзя даже создать обычное оконное приложение?
Никто бы на этот очередной недоязычек необратил внимание, если бы не комьюнити, которые просто подталкивает и провоцирует на грубость.
Вот это говно которое на скриншоте, просто невыносимо, вот что с ними делать? Мне кажется в газенваген посадить разве что.
>выбирал между нод и ерланг
>остановился на го
у него было шанс остаться натуралом, но мух так и тянет на goвно
Пожалуй. Насколько я понимаю, почти никто не начинает учится лабать код с го. А те кто уже умеют писать код не имеют проблем с изучением.
Ладно, чем плох го, напомните?
>They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.
http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/
Миша, скажи, чё ты такой умный? Ты пиши на том, шо тебе дали! Токо с выражением, и всё, блядь! Твоя задача здесь — извини
Ну и в чем проблема языка то? Ну дженериков нет, да. Что еще?
>>1025826
>А какие программы можно намакакить, если нельзя даже создать обычное оконное приложение?
В 2к17, когда идет век веба и мобильников , вылез какой-то чего и говорит про оконные приложения. Возвращайся в 2008, Там тебя ждет десктопный софт на дельфях.
Если нужны гуи, то есть там какие-то порты к gtl,Qt5
>>1025876
В том то и дело, что эти самые пидоры приходят в Golang тред и начинают хейтить язык и гоферов. Нет чтобы порадоваться за то что Golang всего за за 3а 5 лет вошел в топ рейтинг самых популярных языков, скоро выйдет версия 2.0, которая исправит некоторые косяки и будет с каждым разом улучшаться, за то, что у Golang разработчиков самая большая оплата и многие другие вещи.
>скоро выйдет версия 2.0
Фантазер дохуя. Три года назад, когда я начал юзать го в проде я был уверен на 99% что он взлетит.
Сейчас меня интересует, взлетит ли раст. Пока что мне кажется что скоро хайп закончится.
Самый простой дедовский способ это тупо использовать браузер за место гуя, просто запускаешь бинарник и открываешь на localhost.
То, что у тебя не работает Go, gtk, Qt5,это не проблемы этих библиотек а твои проблемы. Чтобы все заработало, нужно установить необходимые Сишные библиотеки В систему. . Если этого не в состоянии сделать, то пердоль в язык С#, там будешь без геморроя формочки клепать
Комьюнити играют весьма важную роль для инструмента и Go оно, реально маргинальное на данный момент.
кроме гугла и двух мамкиных борщей, которые повелись, нигде и никем не используется
>>1025918
раст это больше политическое заявление же, типа что быть пидором и куколдом и всем рассказывать об этом - нормально. когда у мозилы закончатся бабки (а фаерфокс сдохнет скоро, даже продажа данных пользователей гуглу не поможет https://github.com/mozilla/addons-frontend/issues/2785 ), за бесплатно никто не будет его шилить
Раст в жизни никогда не взлетит, к тому же позарился на святое С/С++, типо убийца. Что было с Dlang, наверное сможешь нагуглить. И назови хоть один проект на Rust в гитхабе, который собрал Хотя бы 15.000 звезд, я уже не говорю про такие проекты, на Go, у которых по 30000 - 50.000 звезд
>не проблемы этих библиотек а твои проблемы
Среднестатистическая макака тоже не сможет эти проблемы решить, а значит это проблемы языка, а не макак. Если делают язык, который себя позиционирует как более простой, чем С++, то и окружение надо сделать, чтобы всё устанавливалось 1 кнопкой.
Звезды на гитхабе — показатель накрутки и хипстеровости коммунити.
Открой любой 10-строчник на жс — и у него 300 звезд.
В том то и соль, что в Golang достаточно всего лишь прописать 2 пути path. Если собрался в своем проекте использовать гемморойные С/С++ библиотеки типо Qt5, то придется повозиться. Нехуй использовать Зачем долбачи пытаются использовать язык для Гуя, если он предназначен для сервера? Идите еще на PHP пишите гуй и кукарекайте, почему все хуева
Для какого к черту дома, кто тебе за дом этот деньги платить будет. Раст , ни для чего не пригоден. Может на нем можно начать писать ААА игры, как это делают последнии 20 лет на на UE, или драйвера , которые всю жизнь будут на си писать или может на расте лучше программировать для веб, чем на том же Golang? Я так не думаю. Кажись раст так и останется домашним языком
Го в своё время так же начинался. Сначала изучали для себя, а потом несли в прод.
Вот и приходи через 5 лет, когда раст созреет и не будет с каждой минорной версией ломать совместимость. Golang к тому времени еще сильнее укрепиться на высоконагруженных серверах а Раст так и останется убийцей С/С++
Допустим я сделал make(chan int, 100)
Отправил его в 10 горутин.
Внутри горутин читаю с помощью for
Теперь вопрос, где взять вилку чтобы чистить пул. Потому что при таком раскладе я могу обработать максимум 110 строк. Дальше пул забивается.
Или нужно обязательно с запасом создавать ? но это же не имеет смысла
>Сейчас меня интересует, взлетит ли раст. Пока что мне кажется что скоро хайп закончится.
То-же интересует раст.
Вроде годные идеи заложены, но выглядит перехайпованным.
И некоторые вещи через попу реализованы.
И корутины так и не осилили.
Стандартная библиотека - бедна.
Промисы асинки и те через юзерские либы реализуются, что как бы не есть хорошо.
И сообщество какое-то странное, весь хайп выглядит как тралленг.
>весь хайп выглядит как тралленг.
Всюду делают ударение на безопасный код.
Мол наши программы безопасны.
Безопасность.
Безопасно.
Безопасный.
Это все6 заебись, но должно же быть еще что-то.
Ну если асинки через либы выглядят так, как будто они встроеные в язык, почему бы и нет? Хотя хз как там в расте.
Вот то что в го всегда четко разделяются примитивные и пользовательсие типы, это зашквар.
> make vs shit.New()
сам разобрался, случайно внутри for оставил канал по котором проверяю что все строки обработаны
>Ну если асинки через либы выглядят так, как будто они встроеные в язык, почему бы и нет?
Дело не в том, что они через либы.
А в том, что эти либы от васянов.
>>1026063
Псих, плиз, что ты несешь.
Там речь идет о формальной верифицируемости и прочих плюшках из функциональных ЯП.
Идеи заложенные в раст оче годные, но синтаксис иногда выглядит как брейнфак.
Ой ладно. Многие либы от васянов лучше стандартных.
С одной стороны наличие выбора это хорошо, с другой стороны иногда блять так не хочется опять ковырятся в говне; хочется чтобы было дефолтное решение и хуй с ним.
>Идеи заложенные в раст оче годные
и че делать с этими идеями. Дохулеон ЯП которые не выстрелили с еще более годными идеями.
Мне вот например nim мне доставлял куда больше go, но его не тянула большая корпорация, он и сдулся очень быстро. Почему-то все забыли про всякие эликсиры и прочие.
Вообще ИМХО самым многообещающим в плане денег и прочего выглядит Котлин. Выпилить из джавы говносинтаксис, добавить сахару которого там не хватало, убрать тот которого было много и паразитировать на тонне библиотек уже сделанных для джавки идите, подключите этот ваш Раст или Го к IBM MQ
Но там менеджеры тоже пизданулись. Решили еще и нативную компиляцию без JVM сделать. Если сравнительно маленькая копрорация могла пилить просто еще один синтаксис для JVM и Далвика, то еще и стандартную библиотеку с нуля писать я чет сомневаюсь
>Ой ладно. Многие либы от васянов лучше стандартных.
Все может быть.
Но одно дело, когда есть стандартные либы, лучше которых васянские.
А другое, когда есть только васянские.
>хочется чтобы было дефолтное решение и хуй с ним
this
>
>Вообще ИМХО самым многообещающим в плане денег и прочего выглядит Котлин
Это замечательный пример того, как вложить огромную кучу денег в получение 100 граммов кошачьего дерьма.
Ладно если бы килограмм.
Котлин убог сам по себе, плюс страдает всеми теми же проблема которыми страдает джава платформа как таковая, с jar файлами и прочим сладким хлебушком.
Полный контрпример GO, вложив почти нихуя гугл сделала нишевое реально рабоче решение помогающее решать реальные проблемы и уже сэкономившее гуглу денег много больше чем было потрачено на его создание.
А котлин, как я понимаю, это хитрый план по продаже очередного IDE.
Именно на этом жетбрейнс делает деньги.
Поддвачну. Уже есть кложура и миллиард прочих жаба-перделок. Как жаву не фикси.
корпорации не будут платить тебе денег, чтобы ты готовый проект на джаве перевелосипедил на го потратив время и деньги на дописывания либ которых нет. Зато можно выучить какой-нибудь котлин, скалу и тд и вкорячить это в готовую инфроструктуру
Я скалу не упоминал, потому что ее с аму считаю говном и местами она очень огребает от косяков легаси джавы, но от правды не уйдешь.
Мне нравится ГО, ортличный ЯП чтобы выучить за неделю и дрочить пет-прожекты. Может для стартапов зайдет т.к изначальных расход на железо меньше и переобучиться проще, ради денег изучать Го я бы точно не стал
у тебя ссылка отклеилась
>корпорации не будут платить тебе денег, чтобы ты готовый проект на джаве перевелосипедил на го потратив время и деньги на дописывания либ которых нет.
У всех своя кухня.
Корпоративный энтерпрайз джава кодинг лично меня в принципе не интересует.
Да и го это не касается, как ты верно заметил.
>Зато можно выучить какой-нибудь котлин, скалу и тд и вкорячить это в готовую инфроструктуру
Но зачем?
Это абсолютно бесполезная и бездарная трата времени и денег.
Котлин так еще хочет тебе IDE продать. Нафиг надо.
Вот ты копрорация, у тебя вбуханны десятки миллионов в одну только инфраструктуру, все эти иде контроли версий багтрекеры рефактогры и прочая поебень, персонал все это разрабатывавший собиравший настраивавший и все еще обслуживающий.
И тут тебе предлагают ради нескучного синтаксиса строить новую инфраструктуру, встраивать ее в старую, заиметь проблемы с дебагом, совместимостью.
Ну вот окажется что баг в прожекте на java но в модуле на kotlin.
Это теперь блядь тестировщикам нужно оба яп знать.
почитаем
По Го на самом деле инфы вообще 0. Есть одна книжка и лекции от мейлру и всё.
Если с языками программирования у меня проблем нет, то с языками других народов - большие проблемы.
Да, хочу буряточку. А как ты догадался?
>ВНИМАНИЕ: ТУТ ВАЖНЫЙ ВОПРОС
Друзья поясните , получается если на сервере всего 1 ядро, то Go программа сможет только работать в 1 процессе, в котором будет много потоков(горутин) и которые будут друг друга постоянно менять?
Да. Го в рантайме использует планировщик, который выполняет горутины на имеющемся количестве ядер. В общем случае это может быть и одно ядро. Не рекомендую, кстати на этапе разработки; можно профукать краши связынные с дата рейсами
>Друзья поясните , получается если на сервере всего 1 ядро, то Go программа сможет только работать в 1 процессе, в котором будет много потоков(горутин) и которые будут друг друга постоянно менять?
Ты можешь задать любое количество процессов.
Баян.
А пояснения?
Да, хотя столько разговоров про поддержку UTF.
Разговоры про удобство программиста приводят к Питону, где все апишечки такие миленькие на РТФД, а на практике - тормозное говно с абстракциями, которые текут, как школьнца по Армину Ронахеру. Толку от твоего try...except, если ты не знаешь - да хуй с тобой, сам автор интерфейса в душе не ебал - какие исключения могут вылезти из недр данного куска говна?
ПРОИЗВОДИТЕЛЬНОСТЬ РАЗРАБОТЧИКА мою жопу. Человечеству не нужен очередной миллион производящих макак. Человечеству нужны инженеры, ответственно подходящие к своему делу. Именно поэтому в приличных языках, таких как Го или Хаскель, нормой для программистишки является всячески ублажать транслятор, а не наоборот.
Тебе кто позволил ставить Го-парашу и богоподобный Хаскель рядом? Сейчас тебя монадами в жопу выебут.
Всему своё место, коллега. Вечером можно позволить себе выдохнуть и насладиться переливающейся мелодией свободных теорем (но под чутким присмотром тайпчекера, конечно же). А утром - снова за станок распределённых отказоустойчивых сервисов. А в продакшене на Хаскеле пишут только банкиры и мудаки.
Но ведь говноу медленнее джабы.
Плачьте гоферы. Вы ждали-хотели этого.
Голанг стал наконец-то распространённым общепризнанным языком праммирования в Рашке.
Таки стал.
Добро пожаловать!
Это потому что его используют в НИИ и платят меньше ЖС-джуна?
Чё-т дофига требований. Ещё тестовое задание им сделай бесплатно.
На го хорошо писать сетевые приложения. Он как и эрланг изначально проектировались только для сети. Хотя в эрланге апи довольно скудное.
Ты сравнил говно с пулей
Вот к чему приводит маркетинг.Если бы эту парашу не продвигал гугол, то она бы нахуй никому не нужна была.Создатели языка откровенно крутят на хую всех, кто его использует, а те рады обмазываться всем этим дерьмом.
a = append(a[:i], a[i+1:]...) если бы мне сказали, что мне придется использовать язык, в котором так удаляется элемент из слайса, то я плюнул бы ему в лицо. Почему вы продолжаете это делать, идиоты, почему откровенные минусы это го языка вы воспринимаете как особое видение создателей?Язык должен вам помогать, а не слать вас нахуй. Вы прям как яблопидоры, которым суют кусок кирпича, в котором технологии 5ти летней давности, и которые готовы продать собственную мать лишь бы получить этот кирпич
А что можем сделать мы, маленькие люди-программисты? Мне допустим, захотелось писать на чём-то быстром и с типизацией, в Жаве/Шарпе/Крестах пиздец какие требования на вакансии. А здесь вроде как и модно-молодёжно и вроде не скриптота. Для меня Го сладкий хлеб ещё тот, но если предложат достойную оплату, я буду на нём писать.
Ну а Айфон - это атрибут богатого успешного человека, система на вид не сделана из говна и палок, субъективно быстрее работает. Сам я андроидом пользуюсь, потому что меня устраивает и жаба душит айфон покупать. Почему до сих пор у кого-то баттхёрт, я не понимаю.
Не довёл мысль до конца: принимающим решения людям в уши нассали, рыночек и подтягивается потом, все должны помнить, хотя бы хайпы последних нескольких лет: Руби -> Нода -> Го вот теперь. Первые два уже полуживые, а когда-то ещё на Перле писали. Так что если не хочешь поддерживать легаси, быть в струе мочи, выбирать не приходиться.
Штаа??? Как ты собрался этот Dlang в интернетах запускать?? Только не говори про vibe.d, этот быдло фреймворк , который весит 30mb и который компилируется хрен знает сколько времени. Был бы у D возможность создания web из каробки, было бы норм
Хоть у Golang есть минусы у него также присутствуют плюсы. 1) многопоточность (php, python, ruby курят в сторонке)
2) компиляция в бинарник , очень хорошо если делаешь массовый продукт для продажи(php, ryby, python код не защитить и будет легко передавать из рук в руки)
>По моему D - это самый недооцененный язык.В нем есть все, что нужно и сделано это красиво и понятно
нет в нем многопоточности. Многопоточность - это erlang, haskell и.т.д.А очередь горутин, которой хуй пойми как управлять - это баловство
Он +- полторы минуты собирается (с libasync и тд, т.е. в самом полном составе), ты о чём вообще, сумасшедший?
D создавался как альтернатива плюсам, никто не требует от плюсов запуска в интернетах.Еще радует что во главе D стоит Александреску, а он, как по мне, хуйни не сделает
Ебашу серверный API на Node.js использую bluebird coroutine. Есть смысл в 2017 качать go как замену node.js?
Посмотрел на синтаксис, какой-то он странный. Но IDE от jetbrains на подходе.
Говорят, go охуенно быстрый и козырный в плане многозадачности/поточности. Мне как раз дохрена запросов надо обрабатывать. Есть ли на go фреймворки вроде express?
>он полтыры минуты...,полторы!
Golang компилируется 6 секунд, почувствуй разницу и бинарник всего 6mb максимум
А еще в го ты будешь рвать себе по пол часа анус об кодогенераторы, лул.
Хотя чего я от местных пхп-макакенов требую...
> Хоть у Golang есть минусы у него также присутствуют плюсы. 1) многопоточность (php, python, ruby курят в сторонке)
Но говно не может в настоящие потоки, а джява может.
> 2) компиляция в бинарник , очень хорошо если делаешь массовый продукт для продажи
Нинужно. Десктоп умер, а в сириос тырпрайзах не принято возиться с пиратскими костылями. И вообще проприетарщина не нужна, все соснули у опенсорс богов.
Я не про ынтерплайз а про создание небольших веб прожек типо парсера или постера ценою 1000 -3000р на брата.
Это тоже нинужная в 2017 параша. К тому же в го нет господского селениума, снова соснули у жава тырпрайз богов.
Ну это круто. Все равно говно, что нет нормальных потоков как у С#, было бы круто если бы были все виды многопоточности, как в haskell
Нахуя тебе нормальные потоки? Горутины мультиплексируются на процессоры/потоки. Если очень присралось лол зачем, возьми pthreads
И есть у меня допустим 10 аккаунтов форума Х, и как будут рассылаться мессаджи с этих 10 аккаунтов , используя горутины, одновременно или по очереди?
Запускаешь 10 горутин, рассылается одновременно. Запускаешь 2 горутины и распихиваешь через канал запросы, будет по две штуке одновременно.
Это хорошо, но ведь без возможности создавать ос потоки, будет какие-то дерьмо а не программирование, нет?
Поясни?
А библиотеки уже какие нибудь нормальные уже завезли для Линукс или все только для яблока?
Так аналогия с го, как я понял, библиотеки предоставляются в виде исходников, которые ты уже собираешь под свою платформу.
Только если это "что угодно" базируется на вм BEAM.
Рантайм го сам создает потоки.
>Ну это круто. Все равно говно, что нет нормальных потоков как у С#
Вы заебали уже.
Можно запускать конкретный код в отдельном потоке.
>>1031683
> есть у меня допустим 10 аккаунтов форума Х, и как будут рассылаться мессаджи с этих 10 аккаунтов , используя горутины, одновременно или по очереди?
Как ты сделаешь, так и будут.
И вообще, ты получаешь самый дебильный вопрос года авард.
Иди про параллельность\многопоточность почитай.
Ссорян.
На го потоки создаются равном числу ядер процессора или же можно руками прописать.
Насколько мне известно, го не создает динамически потоков, как тут пишут фанбои, более того если бы он это делал так просто без пулов потоков, это было технически тормознутая штука.
Да, го не дает никакого контроля над реал потоками, горутины рандомная игрушка. Что для реал приложения проблема.
>Что для реал приложения проблема.
Ну то есть нормальное желание, чтобы запросы юзеров с твоего форума, не попадали в поток рендеринга ватермарки картинки или же конвертирования видео.
На го все будет смешано и будут очень трудно уловимые проблемы (на которой в операционке с реал потоками не будет никогда, даже если у тебя один проц с одним ядром)
Грозит появлению неуловимых ошибок, если для веба - это иногда случайное зависание у клиента (отказ). Если он попал в очередь с дробилкой.
Решается очень просто, разбиением любых специфичных задач (дробилок) на сторонние микросервисы.
У тебя есть демон го для веба, для ватермарок и есть го для рендеринга видео и все это общается через REST или может сокеты, чтобы было быстрее.
Надо просто понимать все плюсы и минусы зеленных потоков. Решение как у го подходит только для микросервисных архитектур (если мы затрагиваем веб).
Но го сам по себе ужасен в дизайне, добровольно его юзают только долбаебы, купившиеся на маркетинге, веря что их пет-проект с го даст им какой-то выигрыш (местами то даст конечно, если сравнивать со скриптовыми языками и если ты менеджер проекта, потому что программист нормальный никогда не станет в ущерб удобства разработки идти)
>>1032123
Что такое дробилка и часто ли нужно ее использовать в веб проекте.?? Немного погуглил, это какая-то херня, которая занимает дохера ресурсов. Допустим есть в наличии 2 ядерный сервер, что мешает программе на Go, для той же дробилки взять отдельное ядро и делать на нем свою работу а основная программа будет работать на другом ядре?
Дробилка - любое вычисление, которые не дает го переключить горутину за вменяемое время (нарушая концепцию псевдо-мультипоточности). В нормальном мире ОС выдает определенное время для потока/процесса и потом независимо переключает его, в го же переключение происходит только по вызову внешней функции или вызова (дерганья) специально функции рантайма (она там в пакете рантайма и лежит).
>>1032130
>Допустим есть в наличии 2 ядерный сервер, что мешает программе на Go, для той же дробилки взять отдельное ядро и делать на нем свою работу а основная программа будет работать на другом ядре?
Го тупо раскидывает твои горутины между двумя ядрами (то есть создает два ОС потока), в этом и проблема, нельзя никак задать приоритет раскидывания горутин или контролить нормально поток какой-то
>Насколько мне известно, го не создает динамически потоков
Не создает.
>как тут пишут фанбои
Ничего такого тут НИКТО не пишет.
>Да, го не дает никакого контроля над реал потоками, горутины рандомная игрушка.
Не рандомная.
Ты можешь выделять горутине экслюзивно конкретный поток.
Единственное ограниче в том, что количестао нужных тебе потоков нужно знать зарание.
>Что для реал приложения проблема.
Не проблема.
Проблема если дерьмокодер спамит сотнями динамически создаваемых потоков.
>>1032107
>На го все будет смешано
Не будет.
>>1032142
>Го тупо раскидывает твои горутины между двумя ядрами
Не тупо.
>нельзя никак задать приоритет раскидывания горутин
Можно.
>Насколько мне известно, го не создает динамически потоков
Не создает.
>как тут пишут фанбои
Ничего такого тут НИКТО не пишет.
>Да, го не дает никакого контроля над реал потоками, горутины рандомная игрушка.
Не рандомная.
Ты можешь выделять горутине экслюзивно конкретный поток.
Единственное ограниче в том, что количестао нужных тебе потоков нужно знать зарание.
>Что для реал приложения проблема.
Не проблема.
Проблема если дерьмокодер спамит сотнями динамически создаваемых потоков.
>>1032107
>На го все будет смешано
Не будет.
>>1032142
>Го тупо раскидывает твои горутины между двумя ядрами
Не тупо.
>нельзя никак задать приоритет раскидывания горутин
Можно.
>Ты можешь выделять горутине экслюзивно конкретный поток.
пруф, надеюсь это не про тот костыль, где для main можно один раз поток использовать?
>>1032264
>Не проблема.
Пхп макака, даже в вендроиде юзают отдельный резервированный поток для гуи.
>>1032264
>Не будет.
пруф, пиздаболина.
В общем тащи пруфы пиздабол.
Нехуя, несколько месяцев наблюдаю какой пиздец этот го, тут его поливают просто без остановок, а у этого чудика все "врети"
го язык для менеджеров, или отбитых программистов, которые сами себя не уважают
Это он так рвётся потому, что годами учил какую-то хуйню,а в го можно вкатиться за несколько месяцев с нуля?
Уровень заработной платы же.
> For example, I've been examining generics recently, but I don't have in my mind a clear picture of the detailed, concrete problems that Go users need generics to solve.
Russ Cox @ https://blog.golang.org/toward-go2
спасибо анон , ну тут в голове встаёт вопрос если демон будет собирать данные через n промежуток времени чес он будет отличаться от того же запуска работы по крону ?
Тем что все остальное время он будет жрать ресурсы почем зря.
Сделай тулзу и дергай её через крон.
>Это он так рвётся потому, что годами учил какую-то хуйню,а в го можно вкатиться за несколько месяцев с нуля?
Может конечно.
Но чел реально поехавший.
Он сам себе на посты даже отвечает.
Пишет тип "вопрос" от имени Семена, а потом в ответе на этот вопрос "мастерски разоблачает ГО"
Никогда так просто нельзя было отсеять говномесов в живую.
Шизик тоже оказывается шизиком, клепает контент против шизика и оказывается, что это он сам, лол!
То есть ты признаешь, что нагло семенишь в треде и несешь всякую хуйню?
и записать всё назад в файл , я так понимаю мне файл нужно перевести в байты , а дальше то как ? как найти то заведомый адрес ?
> 1: Компиляция в монолитный статический бинарник, со всеми зависимостями и библиотеками( в отличии от других языков не нужно возиться с установкой различных виртуальных машин, интерпритаторов, жит компиляторов, библиотек, менеджеров зависимостей)
Хачкель так тоже может.
> 2: Постой в изучении: Подробная документация всего на 100 страницах. Язык может быстро оседлать буквально за 7 дней, если уже программировал на любом другом языке
Следующие семь дней ты будешь писать обработку ошибок, как у людей (особенно если ты уже знаешь хоть какой-нибудь язык программирования). Да, через panic() и его отлов. Потому что пошёл ты нахуй, вот почему.
> 3. Многопоточность и без всякого GIL (привет аутсайдерам Питону, Руби, Пеашпи)
В хачкелле есть STM, которое block-free и все изменения транзакционны. Твой go так не сможет.
---
А теперь по недостаткам:
> No generics
А значит все ORM и все энкодеры-декодеры будут либо работать через рефлекшон слегка уступая по скорости node.js, либо существовать в виде 20+ функций foo.Encode{$Type}.
А значит, ты не сможешь описать свою структуру данных (какой-нибудь ropeArray) так, чтобы она хранила что-то кроме interface {}...
... а это значит, что всё будет лежать по ссылкам, и cache locality будет не оч.
> if err != nil
Ёбаный в рот, ТЗ на язык составляли сишники за 50? Это что за обработка ошибок, блядь? Я понимаю, это шаг вперёд по сравнению с `if errno !=`, но это всё равно параша.
> GOPATH
Отлично, бля. Когда я писал сервис на го в составе большого проекта, мне пришлось класть в GOPATH __симлинк__ на кусок проекта.
> go get X
... вытягивает свежий мастер. Version lock? Не, не слышали. Что, кроме чести, удерживает писателя на go кода руками от выкладывания изменений, ломающих апи?
> for i, x := range arr {
array.Map? array.Filter? array.Fold/Reduce? Почему у меня ощущение, что нам подсунули С, только чутка переодетое?
> сотни тысяч готовых решений
Количество, как метрика, ничего не говорит о качестве. А качество оставляет желать лучшего. Всё сделано в виде black box, нигде нельзя внедриться и реализовать что-то по человечески.
> 1: Компиляция в монолитный статический бинарник, со всеми зависимостями и библиотеками( в отличии от других языков не нужно возиться с установкой различных виртуальных машин, интерпритаторов, жит компиляторов, библиотек, менеджеров зависимостей)
Хачкель так тоже может.
> 2: Постой в изучении: Подробная документация всего на 100 страницах. Язык может быстро оседлать буквально за 7 дней, если уже программировал на любом другом языке
Следующие семь дней ты будешь писать обработку ошибок, как у людей (особенно если ты уже знаешь хоть какой-нибудь язык программирования). Да, через panic() и его отлов. Потому что пошёл ты нахуй, вот почему.
> 3. Многопоточность и без всякого GIL (привет аутсайдерам Питону, Руби, Пеашпи)
В хачкелле есть STM, которое block-free и все изменения транзакционны. Твой go так не сможет.
---
А теперь по недостаткам:
> No generics
А значит все ORM и все энкодеры-декодеры будут либо работать через рефлекшон слегка уступая по скорости node.js, либо существовать в виде 20+ функций foo.Encode{$Type}.
А значит, ты не сможешь описать свою структуру данных (какой-нибудь ropeArray) так, чтобы она хранила что-то кроме interface {}...
... а это значит, что всё будет лежать по ссылкам, и cache locality будет не оч.
> if err != nil
Ёбаный в рот, ТЗ на язык составляли сишники за 50? Это что за обработка ошибок, блядь? Я понимаю, это шаг вперёд по сравнению с `if errno !=`, но это всё равно параша.
> GOPATH
Отлично, бля. Когда я писал сервис на го в составе большого проекта, мне пришлось класть в GOPATH __симлинк__ на кусок проекта.
> go get X
... вытягивает свежий мастер. Version lock? Не, не слышали. Что, кроме чести, удерживает писателя на go кода руками от выкладывания изменений, ломающих апи?
> for i, x := range arr {
array.Map? array.Filter? array.Fold/Reduce? Почему у меня ощущение, что нам подсунули С, только чутка переодетое?
> сотни тысяч готовых решений
Количество, как метрика, ничего не говорит о качестве. А качество оставляет желать лучшего. Всё сделано в виде black box, нигде нельзя внедриться и реализовать что-то по человечески.
> Всё сделано в виде black box, нигде нельзя внедриться и реализовать что-то по человечески.
Можешь развернуть мысль пожалуйста.
>А значит все ORM и все энкодеры-декодеры будут либо работать через рефлекшон слегка уступая по скорости node.js, либо существовать в виде 20+ функций foo.Encode{$Type}.
На самом деле, когда тебе нужно больше 1 функции вида foo.Encode{$Type}? В конкретном проекте?
Я вот сейчас, в том числе в связи с GO и Растом, пересматриваю свой предыдущий опыт программирования.
И не вижу особого применения дженерикам вне стандартной библиотеки.
ORM никогда не считал чем-то кроме чистого зла.
>Ёбаный в рот, ТЗ на язык составляли сишники за 50? Это что за обработка ошибок, блядь? Я понимаю, это шаг вперёд по сравнению с `if errno !=`, но это всё равно параша.
Обработка ошибок действительно сделана очень уж странно.
Лучше бы просто статус код уже возвращали.
>У Go самая быстрая компиляция в бинарник(ц++, хачкиль, раст, д, просто курят в сторонке)
Компиляция состоит из 5 этапов.
1. Лексический анализ.
2. Синтаксический анализ.
3. Семантический анализ.
4. Оптимизация.
5. Генерация кода.
Всё кроме 3 и 4 проходит очень быстро. То что компиляция идет быстро это либо слишком хорошо, либо слишком плохо. Как в Го?
Кто-то сравнивал по скорости с крестами?
>Всё кроме 3 и 4 проходит очень быстро.
ХА!
>Кто-то сравнивал по скорости с крестами?
В крестах все утыкается как раз в 4тый этап.
Генерация и линковка.
У питухона pip c pypi, где установка представляет собой ввод одной строки, причем оно само качает зависимости. Pip поставляется с cpython и это действительно удобно, в отличии от goвяхи
Изучи теорию категорий хаскель. И ты поймешь что все крестоподобные языки с их дженериками это полный пиздос. Уровень выразительности системы типов очень слабый, от этого любой код сложнее вектора с шаблонами/дженериками выглядит как говно.
>Всё кроме 3 и 4 проходит очень быстро.
>>1033593
>В крестах все утыкается как раз в 4тый этап.
>Генерация и линковка.
Ору с этих разбирающихся в компиляторах людей.
Язык, в котором каждый утилити хидер вроде iostream нужно парсить по N раз (где N — количество объектных файлов) + как минимум по 2 раза парсить каждый заголовок самого проекта (в бизнес логике + в реализации), и это при условии что в твоем хэловорде нет включений в хидерах для объявлений зависимостей (а они будут, это сразу до 5-6+ раз парсинга в самом простом случае).
И это не учитывая что там ебанутейшие требования к парсеру, который кроме того что должен иметь лукап на неограниченное кол-во токенов, так ещё и контекстно-зависимый по самые гланды (читай — синтаксический анализ там не отделим от семантического, т.е. пункт 3 от первого долбоеба повторяется как минимум 2 раза). Вместо рассказа про лексический анализ просто сравните лексер го и шланга — 700 строк разреженного кода, треть их которых комментарии против 4к строк плотного кода со скупыми однострочиками.
Так же там есть прекрасный текстовый препроцессор, который заставляет сначала переписать файл в памяти а потом парсить (а это нужно перевыделить память, скопировать туда код до, сгенерировать, вставить код после), а так же прекрасные шаблоны, которые на каждую инстантинацию генерируют хуй пойми сколько AST нод и их все нужно заново анализировать.
В общем, тормозит генерация и шинковка, она же не делается у всех языков +- одинаково. Парсинг не может тормозить!
> Ёбаный в рот, ТЗ на язык составляли сишники за 50?
Ты не поверишь. https://en.wikipedia.org/wiki/Ken_Thompson
> мне пришлось класть в GOPATH __симлинк__ на кусок проекта.
С каких пор симлинки - это что-то ненормальное?
> Version lock? Не, не слышали.
Уже завезли полуофициальный https://github.com/golang/dep для вендоринга по локу, в планах влить его в официальный тулчейн.
> Почему у меня ощущение, что нам подсунули С, только чутка переодетое?
Пацаны, он начинает догадываться...
Я не за ради срача, просто мне видится, что создатели просто старались выбрать из ряда стульев где и пик поменьше и хуёв.
>Но сущесвует ли вообще какое-то заведомо, более качественное решение
Нет.
>Я не за ради срача, просто мне видится, что создатели просто старались выбрать из ряда стульев где и пик поменьше и хуёв.
Годная модель многопоточности(ООП на самом деле), не отменяет дерьмовости синтаксиса и системы типов.
А невозможность выбрать сборщик мусора удручает.
И ты щас в серьезном тоне заявляешь, что модель многопоточности в Golang самая лучшая?
У нас тут не забег на 100 метров, чтобы можно было так вот безоговорочно выбрать.
Во первых, речь идет о методике работы с IO.
Техническая реализация не самая удачная.
Возможности ограниченны.
Но сама идея верная. Тем более, что это то самое каноничное ООП.
В общем, если взять async из C# например, и довести его до логического конца (убрать ключевое слово async из всех функций, и вынести его только в самую верхнюю), то получится нечто очень похожее.
А раз async убрали, так и от тасков можно избавится.
В общем, все остальные языки стремятся к тому-же, но кривой дорогой и в обход.
> Но сущесвует ли вообще какое-то заведомо, более качественное решение, поясните.
https://monix.io/docs/2x/
Еще бы конечный автомат предложил руками собирать на колбеках.
А на нескучной надстройкой над жавой, ппц.
Не толсти так больше.
>А как ты объяснишь, невозможно нормально создать ОС поток в Golang?
Сознательное ограничение во имя простоты, чтобы хомячков не запутывать.(Не как что-то хорошее.)
К модели то.
Это отношения не имеет.
Хомячки, они и в том что есть путаются. Причем как "критики" так и фантики.
Параллельность\многопоточность это все-таки сложно.
Я бы предпочел корутины видеть в расте.
В го-же, это единственное что есть хорошего.
Хоть один человек в треде видит суть.
Я только не догоняю, каким боком тут ООП. Ты про мессадж-пассинг между замыканиями?
Всё ясно с го-вномартышкой.
Между тем го-вно по прежнему сосёт у явы по скорости https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=json
>Я только не догоняю, каким боком тут ООП. Ты про мессадж-пассинг между замыканиями?
Ну каноничное ООП - несвязанные объекты общающиеся через сообщения.
Понятно.
Ява умирает и превращается в кобол, даже уже не могут зарелизить 9 версию, ораклу джава не нужна, они ее и не развивают.
Итак , няша намба ван:
Елена Граховац. Сеньор Golang инжынер. Одна из самых няшных пропагандистов языка Go. Ведущая единственного в РФ подкаста golangshow. Обучает в Новосибирске женщин IT ремеслу, через язык Go.
> смотрите, я не просто какой-то программистик, я ТЯНОЧКА!!!!111
> Обучает в Новосибирске женщин IT ремеслу, через язык Go.
Шовинистка.
Белых в голанге нет.
Она молодая, успешная, умная, красивая.
Профессионал своего дела, да еще и занимается общественно полезной деятельностью, учит женщин работать.
А ты мелкий никчемный зашоренный мелочный дегенерат в нестираных трусах с черчакачами.
>Посмотрел бы я на нее, если бы не у меня, а у нее отключили воду.
У меня недавно отключали на день.
Пришлось номер снять в гостинице.
Пока у тебя в члене не закончится последняя капля мочи , ты просто не имеешь права говорить об отсутствии воды. Все эти отговорки не прокатят!
>Она молодая, успешная, умная, красивая.
>умная
в голос
>красивая
голос x2
алсо пиздолизы покиньте тред , и вернитесь в /b
Чем больше смотрю на тян в ОЙти тем больше понимаю что тут может быть только 1 из двух , либо няшная тян либо тян кодер и то не лучшего качества
Почему у этого языка такое огромное количество евангелистов?
Было подобное у Крестов или Жавы, да даже у любого другого языка? Нет, здесь же армия прихвостней, обманом заставляющие людей писать на говне.
Не пиши, тебя никто не заставляет.
Люди пробуют, им нравится, они делятся мыслями с другими. Кресты точно так же стали популярны в своё время.
А почему тогда вокруг го какие-то клоуны тусуются типа илюши и дивана, шлюхи, как выше, маскоты какие-то даунские? Охуеть вообще. Даже в ближайших по возрасту языках такого нет: Свифт, Котлин, уже даже не говорю про всякий сириус щит типа Крестов, Ады.
Язык бы допиливали вместо тусовок шушеры маркетинговой.
Кто все эти люди? Тебе не похуй на них? Маскота рисовала жена Пайка, и это не самое пизданутое что она делала. Язык решает поставленную задачу, поэтому он набирает популярность.
Пофиксил.
>Уже завезли полуофициальный https://github.com/golang/dep для вендоринга по локу, в планах влить его в официальный тулчейн.
Языку 8 лет:
>Уже!
>Завезли!
>Полуофициальный (ЛОЛ!)
>В планах!
И я больше чем уверен, что тулза очередная обгрызанная хуета, где все баги и отсуствия тулинга будет ввиде НЕНУЖНО!
Не пизди, какая сложность с реал потоками. Парни тупо неосилили, ибо оверхед на рантайм, на юзера бы нагрузки не было. Даже в андроидах (куда проще) есть отдельный поток для гуи и ниче, не теряются звери.
Джава уже готовый продукт, для потехи есть скалы и котлины. А вот го действительно не развивается воообще. Я серьезно, этому языку нужно развитие, но он засох.
>Да ты, блять, герой войны просто.
Ну тащемто да.
Как-то из за препезденного председателя не было пару дней воды.
Как я выжил - не знаю.
Один хуй тут больше никого нет.
>Не пизди
В ебычь прописать?
>какая сложность с реал потоками
Видимо никакой, поэтому проблема конкурентности\многопоточности стоит ребром в современном программировании, а технологии хоть как-то ее решающие находятся на переднем крае разработки.
А оно все просто оказывается.
>Парни тупо неосилили, ибо оверхед на рантайм
Гнилой базар.
>Даже в андроидах (куда проще) есть отдельный поток для гуи и ниче
Хочешь сказать, что любое приложение под андроид, должно иметь минимум 2 потока?
Уже овер 30 штук
https://github.com/dariubs/GoBooks
Еще недавно вышли
Golang cookbook 2017
Concurrency in Go 2017
Любое не хелоуворлд приложение будет иметь больше одного потока, иначе тупо не будет работать. В мейн потоке нельзя дергать сеть, диск, и вообще что либо долгое, так как ФПС упадет.
>Любое не хелоуворлд приложение будет иметь больше одного потока, иначе тупо не будет работать.
>В мейн потоке нельзя дергать сеть, диск, и вообще что либо долгое, так как ФПС упадет.
Ты незнаком с асинхронным программированием?
>Любое не хелоуворлд приложение будет иметь больше одного поток
Ты говорил
>Даже в андроидах (куда проще) есть отдельный поток для гуи и ниче
так, как будто это какое-то обязательное требование для андроид приложений, или особенность архитектуры ОС.
Ты же сумасшедший.
>Я только хотел сказать что больше двух потоков это насущная необходимостл.
И к чему ты это сказал?
Никто же не спорит, что потоки эт насущная необходимость.
http://sleepy-drago.livejournal.com/70944.html
не спрашиваю за дженерики, но блядж что за аутизм по 8 пробелов на там использовать???
табуляцию*
>ГОНЕЦ (gonec): Интерпретатор и платформа создания микросервисов на 1С-подобном языке
На волне импортозамещения и потребности в высокоэффективных современных кросплатформенных инструментах для программистов 1С, я выпустил первую версию интерпретатора 1С-подобного языка, и назвал его «Гонец». Платформа написана на Го, ибо я нашел его идеальным языком для таких целей.
Когда говно смешалось с мочой.
Потыкал палочкой жалкого шизика.
Говнец
Никто же не заставляет тебя выставлять табам ширину в 8 пробелов, это чисто рекомендации от авторов языка, которым это кажется удобным.
Никто же не заставляет тебя выставлять табам ширину в 8 пробелов, это чисто рекомендации от авторов языка, которым это кажется удобным.
Однако, и не догадывался, что там такие радости. Язык специальны был создан примитивным.
Rob Pike: "The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school... They’re not capable of understanding a brilliant language but we want to use them to build good software."
Усё понятно, шеф!
Алсо каким ЯП go составляет основную конкуренцию?
1) жс выполняется в браузере, го не умеет так это компилируемый язык, какое нахуй исполнение в браузере?
2) Типа язык под веб, поэтому конкуренцию будет составлять пхп и чуть чуть питону когда выйдет го 2.0, конечно
Есть gopherjs но это наркомания. Альтенативы жс в порядке моих предпочтений: purescript, typescript, clojurescript
Разве шарп постепенно не занимает место жабы? Я думал, что он ее основной убийца
Гомеопатия какая-то. Как можно убить подобное подобным?
Ну вот тут ты не прав. Если ты найдешь работу на хаскеле, платить буду явно больше чем за пых или пездон. За го пока что платят дохуя (необоснованно, ящетаю). Плюс хаскель он как матан, позволяет на других языках делать пиздатые штуки, а не в байты ебстить.
О, уже что-то. Спасибо.
Блядь, а я думаю, че меня на работу go кодером без опыта взяли. Я ж ЦА языка.
свежевкатившийся в ойти
Дс, крупный инет магазин
Запускай из терминала
пидоры суки ублюдки
Как же я смеялся.
spisok = ("test", "test2", "test3")
if "test2" in spisok:
буду вкидывать туда полезные материалы и уроки
вообще веду больше для себя, но может кому пригодится
Нет.
1) https://golang.org/pkg/sort/#Search
2) если массив не отсортирован, то тогда линейный перебор в цикле, ну или напиши функцию хелпер для нужного типа.
См. >>1051909
А если найду?
Проект на go - мертвый проект.
Спасибо за совет. Может ещё кто что посоветует.
тогда append начинает жаловаться, что [200]int не является слайсом: first argument to append must be slice; have [200]int64
смотри че творю:
var container map[int64][]int64
container = make(map[int64][]int64)
тут цикол:
container[n] = append(container[n], m)
а я ключа не знаю, мне надо чтобы в конец массива добавлялся элемент. У меня container - это map, который хранит массивы(слайсы), которые я и заполняю.
какие используете дебагеры и профайлеры ? Чем кишки ковыряете ?
Ну я сделал так и в итоге ничего не выиграл по сравнению с вариантом с неограниченным слайсом. Спасибо энивей
но вообще-то на 1.5кк ключей в мапе сэкономил 500 метров в памяти, так что спасибо еще раз.
tmpl, err := template.New("test").Parse("{{.Count}} items are made of {{.Material}}")
if err != nil { panic(err) }
err = tmpl.Execute(os.Stdout, sweaters)
if err != nil { panic(err) }
Это присваивание 2 переменным одного значения или что? Зачем?
Да.
Ну метод Parse
возвращает два значения. Собственно шаблон и ошибку. Это стандартная идиома го.
Пошел бы ты почитал https://tour.golang.org а потом https://blog.golang.org/error-handling-and-go
Всё в порядке. Я помню что функции могут возвращать несколько значений, просто моск пукнул.
А я пошел почитал и не понял куда мне его прикручивать.
Суть моей задачи коротко:
Есть файл (4гб), я его читаю, заполняю данными из него map свой, потом из готового map'а раздаю данные по запросам ключей через http-запросы.
Раз в сколько-то времени мне нужно перезагружать данные из файла, чтобы поддерживать их актуальными.
У меня есть функция, она возвращает готовый map с потрохами, ее результат я присваиваю глобальной переменной, http запросы дергают данные из глобальной переменной.
На третью перезагрузку файла памяти отожрано больше чем весят 2 map'а (тот, который создан цикл назад, и тот, который делается сейчас и будет присвоен глобальной переменной)
Как мне с этим бороться?
Борда
С того, чтобы писать этот лог куда-то. Либо в памяти держать, тогда есть вариант для нищих: https://golang.org/pkg/expvar/
Либо в файлик/базу и просто выплевывать их по запросу.
func Open(name string) (file *File | err error) и что бы разбирать констуркцией switch выхлоп, могли бы запилить не? Обидно же.
Я не говорил про полноценную поддержку АТД, я про некоторое, пусть и костыльное расширение синтаксиса функции, один ведь чёрт кортеж возвращается, так что бы альтернативную часть к нему не прилатать?
И да, почему бы тот же Result не ввести было как втроенный тип, есть же встроенные массивы, словари, каналы? Сплошные плюсы же.
Говноед as is, ошибки он блять свитчем обрабатывает, пиздец. Тебе дали почти функциональный подход, отделили данные от исключений, нет, блять, хочу жрать говно, хочу как в похапэ, чтобы все в одном, а потом хуярить в ручную всякими хитрыми функциями. Ты ещё про трай кэтч бы поныл, хуесос.
Чем тебе не угодил try-catch?
Чем оно принципиально отличается от бездумных
if err != nil { return err }
по всей кодовой базе?
вот этого плюсую
>В чем проблема то?
>if shit, err := fuck();
В том, что возвращаются и данные и и ошибка, т.е. данные доступны вызывающему в любом случае. И в твоём случае, хоть shit и инициализируется по-умолчанию всё равно никакой смысловой нагрузки не несёт. Ты знаки равенства/неравенства не попутал?
Попутал, да.
Это операция осмысленна и удобна, потому что в го у всего есть логичное и интуитивно понятное дефолтное значение. Опасно ли это? Да. Сталкивался ли я проблемой от этого за больше чем 3 года постоянной ебли с го? Нет.
Да раст в этом смысле гораздо лучше. Да он почти во всех смыслах лучше, хуле тут спорить. Проблема только в том, что количество людей способных осилить раст на порядок меньше тех, кто может осилить го. Так и живем.
Я и не спорю, я глубоко огорчаюсь.
Вот решили создать полностью новый язык. Не нужно поддерживать горы накопившегося за годы кода, вот прям как душа лежит, как нравится - так и делай, бери всё лучшее и сделай яык-конфетку. И всё заебись ведь, каналы там, горутины. Но вот нулевой указатель по-умолчанию и подобный возврат ошибки - совсем же отвратительные вещи. Причём некоторые языки которым приходится придерживаться обратной совместимости, Eiffel, Ada 2005 всё же изъёбываются и вводят конструкции позволяющие избежать разыменование нулевого указателя, а тут с чистого листа вроде делают и != nil вам вместо системы типов.
>Да он почти во всех смыслах лучше, хуле тут спорить.
Не гарантирует вызов деструкторов, отсутствие взаимоблокировок, отсутсвие утече памяти, выглядит как тора с комментариями на китайском. Хуй поспоришь, да.
Ну а какую обработку ошибок бы сделал ты?
> Не гарантирует вызов деструкторов, отсутствие взаимоблокировок, отсутсвие утече памяти, выглядит как тора с комментариями на китайском. Хуй поспоришь, да.
Маняфантазии и вкусовщина. Либо сразу пруфы давай.
>Маняфантазии и вкусовщина.
Rust considers it "safe" to:
Deadlock
Have a race condition
Leak memory
Fail to call destructors
Overflow integers
Abort the program
Delete the production database
https://doc.rust-lang.org/beta/nomicon/what-unsafe-does.html
>Ну а какую обработку ошибок бы сделал ты?
Ну вот по-чесноку, чем плоха была бы идея прошить в язык тот же Result и/или Option? Один ведь пёс язык без шаблонов и прочих макросов, дополнительный встроенный тип вряд ли бы сильно повредил ортогональности. Есть же каналы, массивы, хотя в функциональщине всякой обычно подобные типы живут на тех же правах, что и пользовательские.
Не так страшен черт как его малюют. Половина пунктов связана с тем что ты можешь сделать abort() и стек не будет размотан, а потом не будет вызван и деструктор.
Есть мьютексы = есть дедлоки. В хаскеле вот тоже есть, и что?
Система типов подразумевает что ты знаешь что делаешь, и тебе не нужно это доказывать компилятору. го ближе к жс дристне, чем раст, что тут такого. Индусам так удобней.
Тут за пруфы интересовались, я и приволок. До кучи можно вспомнить про Rc/Arc, для которых доказать ацикличность хоть и можно, но достаточно неудобно.
>Не так страшен черт как его малюют.
Мне-то всё равно, я тут про Го побеседовать заглянул. Вы лучше это потом заказчику расскажите. Про дедлоки, мьютексы, Хаскель и систему типов которая знает что ты делаешь и доказывать не надо.
Заказчику вообще насрать на чем ты сделаешь в большинстве случаев. Он обычно исходит из того, сможет ли он нанять макаку, которая потом это будет поддерживать.
Посмотри go-survey последний, сильно ли жаловались на обработку ошибок?
>Маняфантазии и вкусовщина ==> Не так страшен черт как его малюют ==> Заказчику вообще насрать
Я тебя услышал.
Раст был упомянут как некоторый предел совершенства, мне показалось, что не такой-то уж и предел. Его возможности вполне можно обсудить в соответствующем трэде. Изначальный вопрос/сожеление был всё же о том почему не сделали пездатую обработку ошибок в go.
>Изначальный вопрос/сожеление был всё же о том почему не сделали пездатую обработку ошибок в go.
И шаблоны, блджад. Реально какой-то хайповый тупак этот ваш го.
>И шаблоны, блджад
Или я не понял чего-то. Может кто-то для примера набросать функцию, складывающую два целых или флоата, но точные типы которых не указаны?
Ты правильно понял. Дженериков нет. По словам Расса "да я чет хуй его знает, не помню чтобы мне были нужны дженерики". Видимо он настолько привык ебашить копипасту, что ему похуй.
Дженерики это фича номер 1, которую сообщество ждет от го 2.0
Это настолько плохо, что просто пиздец кровь кишки распидорасило. Уж лучше нагенерить кода, чем это.
Ну с шаблонами-то вопрос всё же неоднозначный, на мой взгляд. Их полноценная поддержка потребовала бы серьёзной допереработки системы типов, что явно не упростило бы язык. А чем делать срань подобную ранним версиям цпп, уж лучше воспользоваться внешним макропроцессором.
Ну и встроенные параметризированные типы вполне соответствуют доброй половине STL, той что без деревьев. Могли бы только добавить магические прошитые функции типа sort, search и пр.. Или они есть я не копался просто?
А вообще обобщённое программирование во многом переоценено. Для совсем критичных ко времени алгоритмов не грех и реализовать свою фунцию, под каждый тип оптимизируя руками. Для некритичных же вполне хватило бы стандартных средств интроспекции. Я понимаю, что кто правой привык, тому тяжело учиться левой, но всё же никакой фундаментальной разницы тут не просматривается.
https://play.rust-lang.org/?gist=98f122b8f94c7498d5b058fb48ae0ca3&version=stable
Для сравнение язык здорового человека.
А что не так-то по-хорошему? У тебя имеется некоторая задача, в её рамках определяются типы и операции над ними, потом всё это реализуется. Для необходимой обобщённости можно использовать интерфейсы. Хотя да, могли бы добавить сортировку/поиск для произвольного массива.
Пожалуй моя аналогия с руками не совсем верна, лучше уж: если привык двумя, то тяжело потом одной.
>>1064626
>язык здорового человека
>rust
Ещё брайнфак бы приволок.
Ну покажи как этом будет выглядеть пример из поста выше.
Вчера такой открыл книжку по Go, начал читать, на 30 странице такой сижу и думаю, прикольно дает обьявить x := huyakhuyak() но типизация статическая, думаю а что если захуячить бигинт, овер 64 бита, и тут пришло понимание о том что овер 64 бита нельзя юзать и даже __int128_t нету - современный язык программирования :D привет гмп, нафига нужен го если есть С?
Import "math/big"
Свои заморочки с пакетом, но он используется чуть менее, чем во всех вычислениях.
Там есть 128 битный float и даже больше
разве что в таком виде type Float128 [2]float64 :D
Это копия, сохраненная 12 октября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.