Итак, добро пожаловать в свежий тред о самом хайповом языке программировании последних лет - Go aka Golang. Данный тред создался неспроста, во-вторых в предыдущем треде уже много постов и в первых , у языка Go значимое событие.
Пока все хейтят и поливают говном Голанг, за его дизайн(отсутствие джинериков, обработка ошибок трай/кейч), но несмотря на это , В 2к17 Golang официально вошел в 10 самых популярных языков по версии известного всем сайта TEOBE:
Итак, какими же феромонами манит 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, что имеем на данный момент:
ЧТО-ТО Я ОЧКУЮ ПЕРЕХОДИТЬ НА ГОЛАНГ,? говорят он отстойный, подскажи, как вылечить фобию и начать наконец-то изучать Go, соит ли его мне начинать тыкать палочкой?
Чтобы выбить из своей головы подобные страхи , убеждения , достаточно всего лишь прочитать 2 статьи от самого популярного подкастера Юмпутуна из http://radio-t.com
Бенчмаркинг скорость могущенского Go, немного быстрее Джавы, в 3 раза быстрее Питона, руби, в 2 раза быстрее PHP, Go потребляет самое маленькое количество памяти
>>1021015 Если до этого уже программировал на других языках, то можно с книги Кернигана занырнуть в Go, если программирование с нуля, то скорее всего сложна будет и местами не понятно
>>1021038 Ну он же не преподаватель а топовый разработчик маил.ру. Если нужны понятные объяснения , то это нужно идти в университет,там профессор умеет нормально объяснять
>>1020995 (OP) ОП, очень хорошо описал. Мне вот только интересно, как вообще люди переходят с одного ЯП на другой? Вот к примеру я пишу на плюсах, для скриптов юзаю питон или баш. А зачем мне го?
>>1021444 Я вообще пишу в notepad'е, а компилирую через командную строку. Хотя можно как на видео через Visual Studio Code, но меня бесит их корявые настройки, когда указал не ту папку и ничего не работает, т.к. типа крутые программисты, а сделать, чтобы всё работало нажатием 1 кнопки не могут.
Ваше goвно анально огорожено гугловскими мэлварами. Нод32 ловит вирус-рекламщик при компиляции хелоу ворда. Хорошо что мой компьютер защищён от всякого сомнительного говна. Не советую в общем сюда лезть, брат еле выжил.
>>1021615 Нет, за своим кодом надо следить самому. Если код кривой, то ни какой fmt это не исправит. Любой Goмик тебе скажет: "фу, какой противный у тебя код!".
>>1021601 Мы таких врунишек как ты за версту чуем. Чем в 2к17 не судьба удалить Швиндувс и установить нормальную ОС типо Ubuntu или MacOS??? И не нужно будет тратить время, чтобы каждый месяц искать ключ лицензии от антивируса.
>>1021782 >Автокомплита почти нет, подсветки нет. Хуй знает, у меня на маке практически идеально работает. Автокомплит по всем скачанным библиотекам, переход к исходникам, автоформатирование, даже глобальный рефакторинг работал - идеальное ide.
>>1021826 Ебанат! Вы откуда, нахуй, прилетели сюда?! Я сколько жил, никак не думал, что в такое ебанатство попаду! Вы откуда все прилетели, вы же, я не знаю, в тех же школах учились, у тех же учителей, у тебя же, блядь, родители – почти мои ровесники, нахуй! Как ты-то получился, из чего?!
>>1021832 >Как ты-то получился, из чего?! Из говна и палок, очевидно же. Тут больше половины зекача таких. python/js/php треды забиты вопросами один тупее другого.
Пацаны, пишу на го уже около 2 месяцев. Кто-то может пояснить за type assertion. Ресурсоемкая ли процедура, и если да, то на сколько? Часто вижу либы которые принимают interface{} в качестве аргумента функции.
>>1022314 Нужно сравнивать не скорость языков а фреймворки на этих языка. Потому что в семье равно узким местом будет запросы в базу данных. К тому же по любому будет на фронте мощный сервер nginx с которым любой яп будет нормально летать. Так же нужно учитывать скорость разработки на питоне и руби это будет мега быстро. Также удовольствие от разработки, на PHP вонючке не всем приятно прожить
Я вообще не понял, на Go кроме всяких серваков ничего написать нельзя?! Кроме консоли и всяких крутых сетевых возможностей в нём ничего нет. Тут даже нельзя создать окно и что-нибудь в нём нарисовать, типа кружков, квадратиков, текста определенного шрифта, всякие менюшки там и т.п.
>>1022192 >Ресурсоемкая ли процедура, и если да, то на сколько? Не особо, оно оптимизируется компилером вроде как >>1024000 >как вызвать WinAPI функции напрямую в Go ffi к сишным либам можно делать, никто не запрещает, написать биндинг не сложно, мб даже кто-то это сделал за тебя
>>1024060 Поставил этот gcc. Снова пытаюсь установить библиотеку, а это говно мне выдаёт 100500 ошибок компиляции. Это чё? Я должен ещё ошибки выискать этих криворуких создателей библиотеки?
>>1024076 Сколько работал с C/C++, ни разу такой фигни не испытывал, что готовая библиотека не хочет компилироваться. Видимо, там разрабы вообще рукожопые и не проверяют что выкладывают. Какое вообще может быть к ним доверие после этого? Может там вирусы или майнеры встроены в эти библиотеки.
>>1024096 >>1024109 Да у меня просто бомбит: почему я должен докачивать ещё 100500 программ, чтобы написать простецкую программу на Go? Нельзя было сразу это всё запихнуть в один пакет, который ставится вместе с компилятором!? Откуда я вообще должен знать какая срань ещё понадобится!?
>>1024096 Собственно у них вся страничка забита комментами с моей проблемой и походу они её так и не решили, потому что не может так быть, что у всех людей ничего не работает: https://github.com/andlabs/ui/issues/229
>>1024109 Разработчики языка сами предложили инструмент для установки сторонних библиотек: go get [адрес_библиотеки] А по факту этот механизм не работает, т.к. требуется установка каких-то сторонних программ. Причём даже после их установки всё равно ничего не работает, т.к. видите ли я скачал какую-то не такую версию, да и винда у меня не такой версии как у разработчиков, да и вообще надо поработать напильником, чтобы что-то заработало. Вот откуда я должен всё это знать?
>>1024135 Помню как-то на РНР срочно нужно было работать с Excel файлами. За 5 минут нашёл библиотеку в виде одного простого файла, скачал его и вставил к себе. Прописал include и всё, блин, заработало с первого раза. А ещё кто-то гонит на РНР.
>>1024128 Тебе дали 5 ссылок на разные библиотеки. Есть qt под go. Не можешь осилить, не лезь в программирование.
>>1024135 Тебе сказали, либо описывай проблему пошагаво, и тебе помогут, либо молчи. Гадать что там у тебя, и жалеть тебя, никто не будет.
go get у всех работает кроме тебя. разные версии ставятся специальными инструментами, гугли. На винде там никто не сидит. Винда не предназначена для программирования. Работать напильником, искать информацию, - все это ежедневная жизнь программиста. Ты попал не туда где все легко. Своими капризами ты ничего не добьешься. Скорее всего тебе никто отвечать не будет, слишком крикливо себя ведешь. Задавай вопросы адекватно, никто не обязан подтирать за тобой сопли.
>>1024148 >Ты попал не туда где все легко Противоречие. На первой лекции от мэйлру, говорили, что тут всё легче, чем в С++, а по факту всё наоборот. В С++ не испытывал таких проблем.
>>1020995 (OP) >в отличии от других языков не нужно возиться с установкой различных виртуальных машин, интерпритаторов, жит компиляторов, библиотек, менеджеров зависимостей А вот нихуя, CRT все равно должна быть, потому что практически все, что написано в наши дни требует сишного рантайма
>>1024197 >Там не нужно было думать Там не нужно было ебстись в жопу из-за такой простой хуиты. Тут размышлизмы уровня генту-червя нужны, если ты из тех кому нравится руками собирать ядро и ебистись с анимешной вайфу, вместо решения задач - ты сверхразум, забей на смердов.
>>1024359 Как же я проигрываю с этих довнов из Гугла. Опыт ангуляра их ни чему не научил, лишь бы скорее хуяк хуяк в продакшен и занять рыночек. Необучаемые блять. И ведь хипстота будет жрать из очередное говно, а через два года ещё одно, лол.
>>1024458 >Иди заучивай спецификацию c++ на 1500 страниц Ничего не заучивал. Понимание языка приходит со временем. Какие-то синтаксические мелочи всегда можно посмотреть тогда, когда они будут нужны.
>>1024343 Полностью согласен. Даже в начале 2000-х, я с трудом на дискетах доставал компиляторы и они работали без допиливания. Просто пишешь нужный include и вот тебе и графика, и файловый ввод/вывод.
Мне просто интересно: как вы сами будете программировать с этими кривыми библиотеками, которые зависят от версии сторонних программ (даже не компилятора Go)? Это просто тупо, что сегодня у тебя программа компилируется, а завтра выдаст тебе лог на 100500 ошибок.
>>1024510 Ещё забыл пример привести. У нас в универе был Visual C++ 6.0, а дома у меня был Borland C++ (не помню уже какой версии). Я переносил исходники, чтобы сдать лабы и они компилировались без доработок на обеих платформах. Боюсь представить сколько будет боли и слёз для студентов, которые будут изучать Go.
>>1024522 Если используешь библиотеки написанные на языке Go, то компиляция идет очень быстро и как по маслу. Если хочешь использовать библиотеки с , где есть Си код и библиотеки(например тот же порт к Gtk GUI, то придется немного повозиться. Нужно будет установить эти самые сишные библиотеки в систему. И программа будет достаточно долго собираться, потому что Си библиотеки шибко гемморойные. Ну это нормально, потому что тот же Qt5 фреймворк на С++, может собираться в программу хоть 2 часа
>>1024527 Не будет боли. Используй код и библиотеки, которые написаны чисто на языке Go. Если будешь пытаться вызывать Си библиотеки , то нужно будет повозиться, так как Ц/Ц++ слишком геморройные языки, тем более если их использовать вместе с другими языками
>>1024532 Зато попробуй Джавку скомпилировать в бинарник, чтобы не нужно было использовать всякие жвм, посмотри сколько памяти кушает го и джава, нахуя в веб приплетать джаву, которая предназначена для разработки большой группы людей в кровавом ынтерплайзе. Не легче ли лежать в гомаке попивая сокэ и безболезненно делая микросервисы. На джаве будешь читать 500 мегабайтные исходники от очередных индусов
>>1024544 > Зато попробуй Джавку скомпилировать в бинарник, чтобы не нужно было использовать всякие жвм Можно. Но он будет хуже работать, чем божественная хотспот жвм. Жвм также даёт кучу преимуществ разработчику, помимо джита и сборщика. Совместимость с кодом и бинарниками десятилетней давности, одинаковая работа на любой ОС, триллиарды библиотек в мавене доступных всегда и на любой платформе, профайлинг из коробки, миллион настроек производительности, загрузка классов на лету и всё в таком роде.
> посмотри сколько памяти кушает го и джава, Не всё ли равно? Памяти в каждой микроволновке по 30 гигабайт сейчас. Такая модель памяти увеличивает производительность джявы в разы без ручных оптимизаций, поэтому у неё сосут не разгибаясь все кроме C/C++.
> нахуя в веб приплетать джаву, которая предназначена для разработки большой группы людей в кровавом ынтерплайзе. Не легче ли лежать в гомаке попивая сокэ и безболезненно делая микросервисы. На джаве будешь читать 500 мегабайтные исходники от очередных индусов А что ты хотел от языка 1990 года? Для хипсторов есть скала, кложура, котлин. И они лучше го.
Друзья, подскажите , хочу с нуля написать для Go библиотеку с помощью которой можно будет рисовать GUI на html/js. Что для этого потребуется, что нужно поизучать?? Всякие готовые либы типо Qt5/qml не будут использоваться.
>>1024741 >с нуля написать для Go библиотеку с помощью которой можно будет рисовать GUI на html/js Ты серьёзно сейчас? Это тысячи на полторы часов, если браться сейчас писать js интерпретатор на go.
Ну что суслики, готовы портировать свое говно на го2 (в котором еще даже не факт что будут генерики, кекич) и продолжать поддерживать легаси говницо на работе на го1 в свете последних событий?
>>1024861 % возвращает деление по модулю - число && возвращает и сравнивает бул Как ты собрался сравнивать число и бул? Либо в свитч суй бул, тогда первый кейс скомпилится, либо в первом кейсе возвращай число. В goвно треде большинство, как я посмотрю, особо одарены интеллектом
>>1024981 В динамичных языках есть coercion. Вот у меня бабах после джваскрипта. 10х Бабах от массивов. А указатели так и не понял. Очень всё "просто" однако.
>>1023952 Нехуя, прозревший через лучи буллшита здравый смысл! Скриньте! Да анон, если не считать хуевые порты, кроме голого хттп говнища там ничего нет!
Ребят , помогите Пользуюсь виртуальной машиной вмваре и проблема заключается в том , что буквы начинают сами печататься , точнее одна Я только ставлю курсор на сорочку и он сразу же начинает писать одну букву ( dddddd ) и так постоянно Объясните что это ? И как убрать Уже перестанавливал
Ну и финал долбаебизма для веба, что го толком нельзя заюзать свой ос-поток (можно, но через реальный костыль неполноценный и перезаюзать неполучится). Но за то дебилам впаривают про миллионы горутин, которые мало того что не имеют смысла на vps серваках анона с одним ядром (может двумя), так еще и дробилка в горутине может к хуям повесить всю очередь горутин (когда как ос-поток всегда сможет переключить такую шляпу равномерно).
То есть, чтобы скинуть дробилку (парсинг видео или картинки) вам реально понадобиться хуячить новые микросервис (хотя го мог бы просто позволить заюзать отдельный поток)
Пока у тебя не будет кластера в 500.000 ядер (процев), ты со своими горутинами можешь идти нахуй (так как асинхронронное программирование с юзанием реальным потоков когда надо, в других языках уже завезли).
>>1025035 Я уже видел ублюдков, которые хуячат на каждый чих горутину. Можно только представить все прелести параллельной отладки, когда одна из сотен говно горутин начнет магически сыпаться.
Например потому, что слайсы забагованы и могут поменять состояние оставив старое в других переменных (и это просто охуенно!).
>>1025025 >То есть, чтобы скинуть дробилку (парсинг видео или картинки) вам реально понадобиться хуячить новые микросервис (хотя го мог бы просто позволить заюзать отдельный поток)
И шо ты думаешь, Python что ли будет лучше для этого?
>>1025048 Го сэкономит норм озу и чуток проца, но все это не будет иметь значения даже если у тебя нагрузка на 2 сервака. А вот в плане комфорта и быстроты разработки, что питон, что другой скрипт язык даст фору, особенно если там тяжелые либы на сях написаны.
Но если у тебя 100 серваков, то реально перепись на го даст сэкономить (хотя я бы оставил все на питоне, а путем замеров тяжелое переписал на си)
>>1025090 fasthttp - автор отрицает необходимость поддержки полностью http протокола, так что это говнокостыль только для школьных тестов (там вообще ад, если разобраться в истории).
>>1025103 Иди покопайся в реддите. И там где-то есть ссылка на гугл группу. И весь ад не в том, что он не посчитал нужным что-то поддерживать, а то как он ставит свои позиции в стиле гошного НЕНУЖНО, я умнее и мне виднее. И как он вообще реагирует на замечания по коду. Его сервак не очень даже встречали в гофер чате. В общем, типичных фанатик, я бы в продакшен такой код не потащил.
Ну а так, если надо бенчмарки подрочить - сделай пул потоков на чистый асинхронных сокетах с минимум обработки хттп и там все бенчмарки ты в труху порвешь (ума много не надо, но все же там тестят сервера, а не переделки-на-коленке).
Чаще просадка именно из-за обработки хттп протокола и абстракций кода (особенно в жабе) для последующего модульного расширения обработки этого хттп (яркий пример нетти с его хендлерами и то как надо 3-4 хендлера в пайлане прогнать для поддержки всего и вся в хттп)
>>1025114 >Чаще просадка именно из-за обработки хттп протокола и абстракций кода (особенно в жабе) для последующего модульного расширения обработки этого хттп (яркий пример нетти с его хендлерами и то как надо 3-4 хендлера в пайлане прогнать для поддержки всего и вся в хттп)
Надо отдать должное, несмотря то что жабисты любят упарываться оверхедными абстракциями, код на ней продолжает летать хотя я не фанат жабы
>>1025117 Хотя это больше заслуга JIT которого научили выбрасывать и инлайнить все говно что лепят индусы да, те тесты после прогрева гоняют, я смотрел.
В любом случае, надо быть долбаебом чтобы отдавать статику через язык с GC. А если прикручивать nginx к go серваку, получается уродский гибрид и разницы между ngixn + питон/пхп.... уже никакой
>>1025123 >отдавать статику >через язык Что? Тебе когда надо картинку отдать или css файл ты в скрипте открываешь файл, читаешь его и пишешь клиенту, так что-ли?
>>1025114 Так я и думал. Никто даже объяснить не сможет что там не поддерживается. И на заметку, протоколы никогда не используются полностью. Никто сейчас не использует все коды ответов, это ни к чему. Если он не дописал коды ответов, то это не страшно.
Хейтерам Го лишь зацепиться за что-то. И ведь лезут же на ветки чтобы хейтить. Лучше бы свои дела делали.
Кто-нибудь поясните, почему зеленые потоки говно(даже в небольшом количестве 30шт.) хочу написать программу на Go, которая будет одновременно скачивать несколько видео из интернета в одной горутине и с помощью установленной в системе библиотеки ffmpeg разрезать эти видео , в других горутинах заливать нарезанные видео на сайты
>>1025119 Джава очень быстрая, этого не отнять. Но какой ценой, горы шаблонного кода и абстракций. И память жрет будь здоров. Я удивился, что го смог обогнать нетти, ведь эта штука очень быстрая.
>>1025136 Перечитай мое сообщение, даунито, чтобы понять, что я говорю об обратном.
>>1025142 Уже лет 8 как взлетает, да все никак не взлетит. К сожалению язык не выстрелил, а вендроида гугл обмазал готовым говнищем - котлином.
Го сейчас как дарт, без поддержки в хроме. Язык свободного плавания. Только отголоски маркетинга, затрагивают глупые молодые умы недо-программистов. Они даже вкурили что не смогли всех заставить жрать говно и задумались о го 2.0 лол
>>1025153 Запусти голый нетти и он порвет даже пример с си, тебе уже сказали, еблоид пучеглазый, перделки-на-коленках на а-сокетах рвет все что можно (почти на любом языке), но это не становится автоматически хттп серверов
>>1025160 >Они даже вкурили что не смогли всех заставить жрать говно и задумались о го 2.0 лол И по высказыванию Кокса уже ясно что дженериков ждать не стоит.
>>1025152 Пока одна функция дрочит дробилку - весь поток, в котором существует эта горутина - стоит то есть вся очередь стоит. Надо руками дергать из дробилки, если дробилка не твоя, то соси болт гоферам это норма. Для примера в ос-потоках, операционка всегда переключает процесс/поток, даже если дробилка и делает это эффективно (хотя тяжелее чем зеленные потоки).
>>1025165 Простыми словами - зеленные потоки мощный инструмент, но специфичный и надо знать для чего использовать. Круто иметь выбор, что и дают другие языки со всякими фьючерами, асинками, yield, корутинами (котлин) или с реактивным программированием.
А няшные горутины на что нужны? Одни рутины пусть видео файлы скачивают, другие работают над конвертацией видео, следующие закачивают файлы на сервер, не?
Зашёл в этот тред. Блять, к таким даунам лучше бы не заходил. >>1025187 А в го ооочень много недочётов. Например попробуй это: int a[16] = {2}; написать в го не больше чем в одну строку.
Ладно, это нужно нечасто, простим. Но почему в туре по го они не описали свою систему указателей нормально? Вот как сделать это: int a[16] = {2}; int ptr = a; ptr++; ptr = 'c'; putchar(ptr); ?
>>1025189 > Одни рутины пусть видео файлы скачивают, другие работают над конвертацией видео, следующие закачивают файлы на сервер, не? Как ты горутины распределишь физически по ос-тредам? Го такое не дает, у тебя будет все вперемешку.
Пайк там что-то говорил по поводу, почему нинужны макросы. Сишка бойлерплейт этим решает, что как раз есть одна из больших проблем goвна. Почему нельзя было так же сделать? Я уж не говорю про _Generic из С11 или мощные Rust-макросы.
>>1025240 Эти пидорасы изначально положили болт на синтаксис и фичи ради легкой разработки компилятора. Приятно нехуя не делать, а потом выехать за счет "ненужно"-маркетинга. Мол - у нас лучшие строки. На деле тупо сырой байтовый поток.
-у нас лучшая обработка ошибок. Никакой обработки ошибок нет вообще, они просто показали практику как нужно делать. Особенно классно когда ошибка одна - и ты можешь тупо заигнорить. Или как в SQL просто забыть вызвать row.Error() в конце. Привет - магическому поведению программы.
Ты реально думаешь, что они запилят что-то годное? Скорее создадут видимость опроса и дисскусий, а потом протолкнут свои алиасы (от которого комьюнити прихуело и им пришлось откатиться) и впихнут пару сахаринок, может даже повезет и для if != err чего завезут
Надо быть откровенно долбаебом, чтобы не видеть этот развод и что язык никак не создавался для программистов.
>>1025165 В го ланге можно запустить дохера процессов. С какого хера нельзя выделить для числодробилки отдельный процесс а пока она выполняется в других процессах делать другую работу(например скачивать видео)?
>>1025271 В пикчу вглядись, может поймешь. Хотя вообще весь пост говорит о разводе, что выезжают на макаках, но ты блядь, умнейший из сусликовых, конечно же не догоняешь
>>1025275 Зачем ты за других решаешь. Отвечай за себя. Не нравится, не используй. Твердишь, что го тебе безразличен, а сам сутками на ветках его обсуждаешь. Это скрытая любой наверное. Если тебе го так не нравится, зачем ты тратишь время на его обсуждения.
>>1025251 Я не пойму, гугол же серьезная компания, неужели они не могут запилить норм язык шоб прям всем вкатило. Какой им профит от всего этого цирка?
>>1025328 го был запилен тк гугл не нашел на рынке достаточно джаба-макак и понял что легче плодить своих. для этого был разработан язык ориентированный на макак, чтобы можно было обучить макакить за неделю тренинга и потом макакер уже может макакить код и зарабатывать баксы гуглу.
>>1025776 Ну правильно, бизнесу нужен быстро написанные рабочие программы, которые как можно скорее будут приносить деньги. Нет времени, пока кто-то будет у себя в анале пальцем ковыряться и постигать ООП Жабы. По быренькому обучили, запелили и начали бабосики зарабатывать пока джава-господа запускают свою ide
>>1025310 Никто бы на этот очередной недоязычек необратил внимание, если бы не комьюнити, которые просто подталкивает и провоцирует на грубость. Вот это говно которое на скриншоте, просто невыносимо, вот что с ними делать? Мне кажется в газенваген посадить разве что.
>>1025886 >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 >>1025826 >А какие программы можно намакакить, если нельзя даже создать обычное оконное приложение?
В 2к17, когда идет век веба и мобильников , вылез какой-то чего и говорит про оконные приложения. Возвращайся в 2008, Там тебя ждет десктопный софт на дельфях.
Если нужны гуи, то есть там какие-то порты к gtl,Qt5
>>1025876 >>1025876 В том то и дело, что эти самые пидоры приходят в Golang тред и начинают хейтить язык и гоферов. Нет чтобы порадоваться за то что Golang всего за за 3а 5 лет вошел в топ рейтинг самых популярных языков, скоро выйдет версия 2.0, которая исправит некоторые косяки и будет с каждым разом улучшаться, за то, что у Golang разработчиков самая большая оплата и многие другие вещи.
>>1025915 Самый простой дедовский способ это тупо использовать браузер за место гуя, просто запускаешь бинарник и открываешь на localhost.
То, что у тебя не работает Go, gtk, Qt5,это не проблемы этих библиотек а твои проблемы. Чтобы все заработало, нужно установить необходимые Сишные библиотеки В систему. . Если этого не в состоянии сделать, то пердоль в язык С#, там будешь без геморроя формочки клепать
>>1025915 кроме гугла и двух мамкиных борщей, которые повелись, нигде и никем не используется >>1025918 раст это больше политическое заявление же, типа что быть пидором и куколдом и всем рассказывать об этом - нормально. когда у мозилы закончатся бабки (а фаерфокс сдохнет скоро, даже продажа данных пользователей гуглу не поможет https://github.com/mozilla/addons-frontend/issues/2785 ), за бесплатно никто не будет его шилить
>>1025918 Раст в жизни никогда не взлетит, к тому же позарился на святое С/С++, типо убийца. Что было с Dlang, наверное сможешь нагуглить. И назови хоть один проект на Rust в гитхабе, который собрал Хотя бы 15.000 звезд, я уже не говорю про такие проекты, на Go, у которых по 30000 - 50.000 звезд
>>1025919 >не проблемы этих библиотек а твои проблемы Среднестатистическая макака тоже не сможет эти проблемы решить, а значит это проблемы языка, а не макак. Если делают язык, который себя позиционирует как более простой, чем С++, то и окружение надо сделать, чтобы всё устанавливалось 1 кнопкой.
>>1025920 Не похуй ли на рашкобыдло? >>1025925 Пол ляма активных разработчиков. Ок. Раст сейчас язык номер 1 для "домашних" проектов. На мой взгляд пока они не сделаю нормальный инструментарий для разработки, могут идти нахуй.
>>1025927 В том то и соль, что в Golang достаточно всего лишь прописать 2 пути path. Если собрался в своем проекте использовать гемморойные С/С++ библиотеки типо Qt5, то придется повозиться. Нехуй использовать Зачем долбачи пытаются использовать язык для Гуя, если он предназначен для сервера? Идите еще на PHP пишите гуй и кукарекайте, почему все хуева
>>1025932 Для какого к черту дома, кто тебе за дом этот деньги платить будет. Раст , ни для чего не пригоден. Может на нем можно начать писать ААА игры, как это делают последнии 20 лет на на UE, или драйвера , которые всю жизнь будут на си писать или может на расте лучше программировать для веб, чем на том же Golang? Я так не думаю. Кажись раст так и останется домашним языком
>>1025946 Вот и приходи через 5 лет, когда раст созреет и не будет с каждой минорной версией ломать совместимость. Golang к тому времени еще сильнее укрепиться на высоконагруженных серверах а Раст так и останется убийцей С/С++
>>1026056 Ну если асинки через либы выглядят так, как будто они встроеные в язык, почему бы и нет? Хотя хз как там в расте. Вот то что в го всегда четко разделяются примитивные и пользовательсие типы, это зашквар. > make vs shit.New()
>>1026072 Ой ладно. Многие либы от васянов лучше стандартных. С одной стороны наличие выбора это хорошо, с другой стороны иногда блять так не хочется опять ковырятся в говне; хочется чтобы было дефолтное решение и хуй с ним.
>>1026072 >Идеи заложенные в раст оче годные и че делать с этими идеями. Дохулеон ЯП которые не выстрелили с еще более годными идеями. Мне вот например nim мне доставлял куда больше go, но его не тянула большая корпорация, он и сдулся очень быстро. Почему-то все забыли про всякие эликсиры и прочие.
Вообще ИМХО самым многообещающим в плане денег и прочего выглядит Котлин. Выпилить из джавы говносинтаксис, добавить сахару которого там не хватало, убрать тот которого было много и паразитировать на тонне библиотек уже сделанных для джавки идите, подключите этот ваш Раст или Го к IBM MQ Но там менеджеры тоже пизданулись. Решили еще и нативную компиляцию без JVM сделать. Если сравнительно маленькая копрорация могла пилить просто еще один синтаксис для JVM и Далвика, то еще и стандартную библиотеку с нуля писать я чет сомневаюсь
>>1026074 >Ой ладно. Многие либы от васянов лучше стандартных. Все может быть. Но одно дело, когда есть стандартные либы, лучше которых васянские. А другое, когда есть только васянские.
>хочется чтобы было дефолтное решение и хуй с ним this
>>1026083 > >Вообще ИМХО самым многообещающим в плане денег и прочего выглядит Котлин
Это замечательный пример того, как вложить огромную кучу денег в получение 100 граммов кошачьего дерьма. Ладно если бы килограмм. Котлин убог сам по себе, плюс страдает всеми теми же проблема которыми страдает джава платформа как таковая, с jar файлами и прочим сладким хлебушком.
Полный контрпример GO, вложив почти нихуя гугл сделала нишевое реально рабоче решение помогающее решать реальные проблемы и уже сэкономившее гуглу денег много больше чем было потрачено на его создание.
А котлин, как я понимаю, это хитрый план по продаже очередного IDE. Именно на этом жетбрейнс делает деньги.
>>1026087 корпорации не будут платить тебе денег, чтобы ты готовый проект на джаве перевелосипедил на го потратив время и деньги на дописывания либ которых нет. Зато можно выучить какой-нибудь котлин, скалу и тд и вкорячить это в готовую инфроструктуру
Я скалу не упоминал, потому что ее с аму считаю говном и местами она очень огребает от косяков легаси джавы, но от правды не уйдешь.
Мне нравится ГО, ортличный ЯП чтобы выучить за неделю и дрочить пет-прожекты. Может для стартапов зайдет т.к изначальных расход на железо меньше и переобучиться проще, ради денег изучать Го я бы точно не стал
>>1026091 >корпорации не будут платить тебе денег, чтобы ты готовый проект на джаве перевелосипедил на го потратив время и деньги на дописывания либ которых нет. У всех своя кухня. Корпоративный энтерпрайз джава кодинг лично меня в принципе не интересует. Да и го это не касается, как ты верно заметил.
>Зато можно выучить какой-нибудь котлин, скалу и тд и вкорячить это в готовую инфроструктуру Но зачем? Это абсолютно бесполезная и бездарная трата времени и денег. Котлин так еще хочет тебе IDE продать. Нафиг надо. Вот ты копрорация, у тебя вбуханны десятки миллионов в одну только инфраструктуру, все эти иде контроли версий багтрекеры рефактогры и прочая поебень, персонал все это разрабатывавший собиравший настраивавший и все еще обслуживающий. И тут тебе предлагают ради нескучного синтаксиса строить новую инфраструктуру, встраивать ее в старую, заиметь проблемы с дебагом, совместимостью. Ну вот окажется что баг в прожекте на java но в модуле на kotlin. Это теперь блядь тестировщикам нужно оба яп знать.
Друзья поясните , получается если на сервере всего 1 ядро, то Go программа сможет только работать в 1 процессе, в котором будет много потоков(горутин) и которые будут друг друга постоянно менять?
>>1027679 Да. Го в рантайме использует планировщик, который выполняет горутины на имеющемся количестве ядер. В общем случае это может быть и одно ядро. Не рекомендую, кстати на этапе разработки; можно профукать краши связынные с дата рейсами
>>1027679 >Друзья поясните , получается если на сервере всего 1 ядро, то Go программа сможет только работать в 1 процессе, в котором будет много потоков(горутин) и которые будут друг друга постоянно менять? Ты можешь задать любое количество процессов.
Охуеваю с этих доводов про НЕУДОБНО ПРОГРАММИСТУ. С какого хера тебе должно быть удобненько и красивенько? Ты в цех пришёл или в Третьяковку?
Разговоры про удобство программиста приводят к Питону, где все апишечки такие миленькие на РТФД, а на практике - тормозное говно с абстракциями, которые текут, как школьнца по Армину Ронахеру. Толку от твоего try...except, если ты не знаешь - да хуй с тобой, сам автор интерфейса в душе не ебал - какие исключения могут вылезти из недр данного куска говна?
ПРОИЗВОДИТЕЛЬНОСТЬ РАЗРАБОТЧИКА мою жопу. Человечеству не нужен очередной миллион производящих макак. Человечеству нужны инженеры, ответственно подходящие к своему делу. Именно поэтому в приличных языках, таких как Го или Хаскель, нормой для программистишки является всячески ублажать транслятор, а не наоборот.
>>1028947 Всему своё место, коллега. Вечером можно позволить себе выдохнуть и насладиться переливающейся мелодией свободных теорем (но под чутким присмотром тайпчекера, конечно же). А утром - снова за станок распределённых отказоустойчивых сервисов. А в продакшене на Хаскеле пишут только банкиры и мудаки.
>>1020995 (OP) Плачьте гоферы. Вы ждали-хотели этого. Голанг стал наконец-то распространённым общепризнанным языком праммирования в Рашке. Таки стал. Добро пожаловать!
>>1028931 Вот к чему приводит маркетинг.Если бы эту парашу не продвигал гугол, то она бы нахуй никому не нужна была.Создатели языка откровенно крутят на хую всех, кто его использует, а те рады обмазываться всем этим дерьмом. a = append(a[:i], a[i+1:]...) если бы мне сказали, что мне придется использовать язык, в котором так удаляется элемент из слайса, то я плюнул бы ему в лицо. Почему вы продолжаете это делать, идиоты, почему откровенные минусы это го языка вы воспринимаете как особое видение создателей?Язык должен вам помогать, а не слать вас нахуй. Вы прям как яблопидоры, которым суют кусок кирпича, в котором технологии 5ти летней давности, и которые готовы продать собственную мать лишь бы получить этот кирпич
>>1031260 А что можем сделать мы, маленькие люди-программисты? Мне допустим, захотелось писать на чём-то быстром и с типизацией, в Жаве/Шарпе/Крестах пиздец какие требования на вакансии. А здесь вроде как и модно-молодёжно и вроде не скриптота. Для меня Го сладкий хлеб ещё тот, но если предложат достойную оплату, я буду на нём писать.
Ну а Айфон - это атрибут богатого успешного человека, система на вид не сделана из говна и палок, субъективно быстрее работает. Сам я андроидом пользуюсь, потому что меня устраивает и жаба душит айфон покупать. Почему до сих пор у кого-то баттхёрт, я не понимаю.
>>1031300 Не довёл мысль до конца: принимающим решения людям в уши нассали, рыночек и подтягивается потом, все должны помнить, хотя бы хайпы последних нескольких лет: Руби -> Нода -> Го вот теперь. Первые два уже полуживые, а когда-то ещё на Перле писали. Так что если не хочешь поддерживать легаси, быть в струе мочи, выбирать не приходиться.
Лучше бы гугл взялся за D и помог ему в популяризации . По моему D - это самый недооцененный язык.В нем есть все, что нужно и сделано это красиво и понятно
>>1031385 Штаа??? Как ты собрался этот Dlang в интернетах запускать?? Только не говори про vibe.d, этот быдло фреймворк , который весит 30mb и который компилируется хрен знает сколько времени. Был бы у D возможность создания web из каробки, было бы норм
>>1031316 Хоть у Golang есть минусы у него также присутствуют плюсы. 1) многопоточность (php, python, ruby курят в сторонке) 2) компиляция в бинарник , очень хорошо если делаешь массовый продукт для продажи(php, ryby, python код не защитить и будет легко передавать из рук в руки)
>>1031415 D создавался как альтернатива плюсам, никто не требует от плюсов запуска в интернетах.Еще радует что во главе D стоит Александреску, а он, как по мне, хуйни не сделает
>>1020995 (OP) Ебашу серверный API на Node.js использую bluebird coroutine. Есть смысл в 2017 качать go как замену node.js? Посмотрел на синтаксис, какой-то он странный. Но IDE от jetbrains на подходе. Говорят, go охуенно быстрый и козырный в плане многозадачности/поточности. Мне как раз дохрена запросов надо обрабатывать. Есть ли на go фреймворки вроде express?
>>1031423 > Хоть у Golang есть минусы у него также присутствуют плюсы. 1) многопоточность (php, python, ruby курят в сторонке) Но говно не может в настоящие потоки, а джява может.
> 2) компиляция в бинарник , очень хорошо если делаешь массовый продукт для продажи Нинужно. Десктоп умер, а в сириос тырпрайзах не принято возиться с пиратскими костылями. И вообще проприетарщина не нужна, все соснули у опенсорс богов.
>>1031645 И есть у меня допустим 10 аккаунтов форума Х, и как будут рассылаться мессаджи с этих 10 аккаунтов , используя горутины, одновременно или по очереди?
>>1031641 >Ну это круто. Все равно говно, что нет нормальных потоков как у С# Вы заебали уже. Можно запускать конкретный код в отдельном потоке.
>>1031683 > есть у меня допустим 10 аккаунтов форума Х, и как будут рассылаться мессаджи с этих 10 аккаунтов , используя горутины, одновременно или по очереди? Как ты сделаешь, так и будут. И вообще, ты получаешь самый дебильный вопрос года авард. Иди про параллельность\многопоточность почитай.
>>1032098 Ссорян. На го потоки создаются равном числу ядер процессора или же можно руками прописать. Насколько мне известно, го не создает динамически потоков, как тут пишут фанбои, более того если бы он это делал так просто без пулов потоков, это было технически тормознутая штука.
Да, го не дает никакого контроля над реал потоками, горутины рандомная игрушка. Что для реал приложения проблема.
>>1032105 >Что для реал приложения проблема. Ну то есть нормальное желание, чтобы запросы юзеров с твоего форума, не попадали в поток рендеринга ватермарки картинки или же конвертирования видео.
На го все будет смешано и будут очень трудно уловимые проблемы (на которой в операционке с реал потоками не будет никогда, даже если у тебя один проц с одним ядром)
>>1032108 Грозит появлению неуловимых ошибок, если для веба - это иногда случайное зависание у клиента (отказ). Если он попал в очередь с дробилкой.
Решается очень просто, разбиением любых специфичных задач (дробилок) на сторонние микросервисы.
У тебя есть демон го для веба, для ватермарок и есть го для рендеринга видео и все это общается через REST или может сокеты, чтобы было быстрее.
Надо просто понимать все плюсы и минусы зеленных потоков. Решение как у го подходит только для микросервисных архитектур (если мы затрагиваем веб).
Но го сам по себе ужасен в дизайне, добровольно его юзают только долбаебы, купившиеся на маркетинге, веря что их пет-проект с го даст им какой-то выигрыш (местами то даст конечно, если сравнивать со скриптовыми языками и если ты менеджер проекта, потому что программист нормальный никогда не станет в ущерб удобства разработки идти)
>>1032123 >>1032123 Что такое дробилка и часто ли нужно ее использовать в веб проекте.?? Немного погуглил, это какая-то херня, которая занимает дохера ресурсов. Допустим есть в наличии 2 ядерный сервер, что мешает программе на Go, для той же дробилки взять отдельное ядро и делать на нем свою работу а основная программа будет работать на другом ядре?
>>1032130 Дробилка - любое вычисление, которые не дает го переключить горутину за вменяемое время (нарушая концепцию псевдо-мультипоточности). В нормальном мире ОС выдает определенное время для потока/процесса и потом независимо переключает его, в го же переключение происходит только по вызову внешней функции или вызова (дерганья) специально функции рантайма (она там в пакете рантайма и лежит).
>>1032130 >Допустим есть в наличии 2 ядерный сервер, что мешает программе на Go, для той же дробилки взять отдельное ядро и делать на нем свою работу а основная программа будет работать на другом ядре?
Го тупо раскидывает твои горутины между двумя ядрами (то есть создает два ОС потока), в этом и проблема, нельзя никак задать приоритет раскидывания горутин или контролить нормально поток какой-то
>>1032105 >Насколько мне известно, го не создает динамически потоков Не создает.
>как тут пишут фанбои Ничего такого тут НИКТО не пишет.
>Да, го не дает никакого контроля над реал потоками, горутины рандомная игрушка. Не рандомная. Ты можешь выделять горутине экслюзивно конкретный поток.
Единственное ограниче в том, что количестао нужных тебе потоков нужно знать зарание.
>Что для реал приложения проблема. Не проблема. Проблема если дерьмокодер спамит сотнями динамически создаваемых потоков.
>>1032770 > 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
Sup , хочу вкатиться в го и написать демона для системы который будет вытягивать с БД данные о файлах , делать работу с этими файлами , записывать результат в БД , где можно найти годной инфы по этому поводу ?
>>1032809 спасибо анон , ну тут в голове встаёт вопрос если демон будет собирать данные через n промежуток времени чес он будет отличаться от того же запуска работы по крону ?
>>1032712 >Это он так рвётся потому, что годами учил какую-то хуйню,а в го можно вкатиться за несколько месяцев с нуля? Может конечно. Но чел реально поехавший. Он сам себе на посты даже отвечает.
Пишет тип "вопрос" от имени Семена, а потом в ответе на этот вопрос "мастерски разоблачает ГО"
Не понимаю хейтеров, го это отличный эксперимент отсечения низкоуровневого говна от программистов. Никогда так просто нельзя было отсеять говномесов в живую.
Такс товарищи поясните веб макаке основы байтоёбства , есть спецификация webm , мне нужно обнулить значение которое я так понимаю находиться по адресу [EC] (https://matroska.org/technical/specs/index.html) и записать всё назад в файл , я так понимаю мне файл нужно перевести в байты , а дальше то как ? как найти то заведомый адрес ?
> 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, нигде нельзя внедриться и реализовать что-то по человечески.
>>1033543 >А значит все 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 проходит очень быстро. То что компиляция идет быстро это либо слишком хорошо, либо слишком плохо. Как в Го? Кто-то сравнивал по скорости с крестами?
>>1024194 У питухона pip c pypi, где установка представляет собой ввод одной строки, причем оно само качает зависимости. Pip поставляется с cpython и это действительно удобно, в отличии от goвяхи
>>1033562 Изучи теорию категорий хаскель. И ты поймешь что все крестоподобные языки с их дженериками это полный пиздос. Уровень выразительности системы типов очень слабый, от этого любой код сложнее вектора с шаблонами/дженериками выглядит как говно.
>>1033588 >Всё кроме 3 и 4 проходит очень быстро. >>1033593 >В крестах все утыкается как раз в 4тый этап. >Генерация и линковка. Ору с этих разбирающихся в компиляторах людей.
Язык, в котором каждый утилити хидер вроде iostream нужно парсить по N раз (где N — количество объектных файлов) + как минимум по 2 раза парсить каждый заголовок самого проекта (в бизнес логике + в реализации), и это при условии что в твоем хэловорде нет включений в хидерах для объявлений зависимостей (а они будут, это сразу до 5-6+ раз парсинга в самом простом случае).
И это не учитывая что там ебанутейшие требования к парсеру, который кроме того что должен иметь лукап на неограниченное кол-во токенов, так ещё и контекстно-зависимый по самые гланды (читай — синтаксический анализ там не отделим от семантического, т.е. пункт 3 от первого долбоеба повторяется как минимум 2 раза). Вместо рассказа про лексический анализ просто сравните лексер го и шланга — 700 строк разреженного кода, треть их которых комментарии против 4к строк плотного кода со скупыми однострочиками.
Так же там есть прекрасный текстовый препроцессор, который заставляет сначала переписать файл в памяти а потом парсить (а это нужно перевыделить память, скопировать туда код до, сгенерировать, вставить код после), а так же прекрасные шаблоны, которые на каждую инстантинацию генерируют хуй пойми сколько AST нод и их все нужно заново анализировать.
В общем, тормозит генерация и шинковка, она же не делается у всех языков +- одинаково. Парсинг не может тормозить!
> мне пришлось класть в GOPATH __симлинк__ на кусок проекта. С каких пор симлинки - это что-то ненормальное?
> Version lock? Не, не слышали. Уже завезли полуофициальный https://github.com/golang/dep для вендоринга по локу, в планах влить его в официальный тулчейн.
> Почему у меня ощущение, что нам подсунули С, только чутка переодетое? Пацаны, он начинает догадываться...
Вот тут, да и вообще частенько критикуется модель многопоточности в го, каналы там, горутины. Но сущесвует ли вообще какое-то заведомо, более качественное решение, поясните. Ну родные потоки среды - дорогие переключения, плюс их количество вообще ограничено. Своя виртуальная машина, при всех плюсах, низкой латентности и прочих прелестях - ещё большее снижение производительности. А частная реализация под каждую задачу - неортогональный сложный пиздец, где все силы будут тратиться на сшивание, когда понадобится заставить работать это вместе.
Я не за ради срача, просто мне видится, что создатели просто старались выбрать из ряда стульев где и пик поменьше и хуёв.
>>1034283 >Но сущесвует ли вообще какое-то заведомо, более качественное решение Нет.
>Я не за ради срача, просто мне видится, что создатели просто старались выбрать из ряда стульев где и пик поменьше и хуёв. Годная модель многопоточности(ООП на самом деле), не отменяет дерьмовости синтаксиса и системы типов. А невозможность выбрать сборщик мусора удручает.
>>1034401 У нас тут не забег на 100 метров, чтобы можно было так вот безоговорочно выбрать.
Во первых, речь идет о методике работы с IO.
Техническая реализация не самая удачная. Возможности ограниченны.
Но сама идея верная. Тем более, что это то самое каноничное ООП.
В общем, если взять async из C# например, и довести его до логического конца (убрать ключевое слово async из всех функций, и вынести его только в самую верхнюю), то получится нечто очень похожее. А раз async убрали, так и от тасков можно избавится. В общем, все остальные языки стремятся к тому-же, но кривой дорогой и в обход.
>>1034490 >Я только не догоняю, каким боком тут ООП. Ты про мессадж-пассинг между замыканиями? Ну каноничное ООП - несвязанные объекты общающиеся через сообщения.
Дабы поддерживать дееспособность Golang треда , буду бампать его , самыми лучшими няшами из мира Go.
Итак , няша намба ван: Елена Граховац. Сеньор Golang инжынер. Одна из самых няшных пропагандистов языка Go. Ведущая единственного в РФ подкаста golangshow. Обучает в Новосибирске женщин IT ремеслу, через язык Go.
>>1036340 Она молодая, успешная, умная, красивая. Профессионал своего дела, да еще и занимается общественно полезной деятельностью, учит женщин работать.
А ты мелкий никчемный зашоренный мелочный дегенерат в нестираных трусах с черчакачами.
>>1036470 Пока у тебя в члене не закончится последняя капля мочи , ты просто не имеешь права говорить об отсутствии воды. Все эти отговорки не прокатят!
>>1036179 Почему у этого языка такое огромное количество евангелистов? Было подобное у Крестов или Жавы, да даже у любого другого языка? Нет, здесь же армия прихвостней, обманом заставляющие людей писать на говне.
>>1036612 Не пиши, тебя никто не заставляет. Люди пробуют, им нравится, они делятся мыслями с другими. Кресты точно так же стали популярны в своё время.
>>1036613 А почему тогда вокруг го какие-то клоуны тусуются типа илюши и дивана, шлюхи, как выше, маскоты какие-то даунские? Охуеть вообще. Даже в ближайших по возрасту языках такого нет: Свифт, Котлин, уже даже не говорю про всякий сириус щит типа Крестов, Ады. Язык бы допиливали вместо тусовок шушеры маркетинговой.
>>1036664 Кто все эти люди? Тебе не похуй на них? Маскота рисовала жена Пайка, и это не самое пизданутое что она делала. Язык решает поставленную задачу, поэтому он набирает популярность.
>>1034485 Не пизди, какая сложность с реал потоками. Парни тупо неосилили, ибо оверхед на рантайм, на юзера бы нагрузки не было. Даже в андроидах (куда проще) есть отдельный поток для гуи и ниче, не теряются звери.
>>1034517 Джава уже готовый продукт, для потехи есть скалы и котлины. А вот го действительно не развивается воообще. Я серьезно, этому языку нужно развитие, но он засох.
>какая сложность с реал потоками Видимо никакой, поэтому проблема конкурентности\многопоточности стоит ребром в современном программировании, а технологии хоть как-то ее решающие находятся на переднем крае разработки. А оно все просто оказывается.
>Парни тупо неосилили, ибо оверхед на рантайм Гнилой базар.
>Даже в андроидах (куда проще) есть отдельный поток для гуи и ниче Хочешь сказать, что любое приложение под андроид, должно иметь минимум 2 потока?
>>1036838 Любое не хелоуворлд приложение будет иметь больше одного потока, иначе тупо не будет работать. В мейн потоке нельзя дергать сеть, диск, и вообще что либо долгое, так как ФПС упадет.
>>1038896 >Любое не хелоуворлд приложение будет иметь больше одного потока, иначе тупо не будет работать. >В мейн потоке нельзя дергать сеть, диск, и вообще что либо долгое, так как ФПС упадет.
>>1038896 >Любое не хелоуворлд приложение будет иметь больше одного поток
Ты говорил >Даже в андроидах (куда проще) есть отдельный поток для гуи и ниче так, как будто это какое-то обязательное требование для андроид приложений, или особенность архитектуры ОС. Ты же сумасшедший.
>>1039176 >Я только хотел сказать что больше двух потоков это насущная необходимостл. И к чему ты это сказал? Никто же не спорит, что потоки эт насущная необходимость.
>ГОНЕЦ (gonec): Интерпретатор и платформа создания микросервисов на 1С-подобном языке На волне импортозамещения и потребности в высокоэффективных современных кросплатформенных инструментах для программистов 1С, я выпустил первую версию интерпретатора 1С-подобного языка, и назвал его «Гонец». Платформа написана на Го, ибо я нашел его идеальным языком для таких целей.
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 ньфагу сможет ли он составить конкуренцию классическому JS? То есть смогу я на go писать всякие скрипты для своего сайтика? Алсо каким ЯП go составляет основную конкуренцию?
>>1045827 1) жс выполняется в браузере, го не умеет так это компилируемый язык, какое нахуй исполнение в браузере? 2) Типа язык под веб, поэтому конкуренцию будет составлять пхп и чуть чуть питону когда выйдет го 2.0, конечно
>>1045850 Ну вот тут ты не прав. Если ты найдешь работу на хаскеле, платить буду явно больше чем за пых или пездон. За го пока что платят дохуя (необоснованно, ящетаю). Плюс хаскель он как матан, позволяет на других языках делать пиздатые штуки, а не в байты ебстить.
Есть какой-то менеджер пакетов/зависимостей, который пихает всё необходимое в поддиректорию текущего проекта, чтобы не писать эти "github.com/vasyan/go-yoba"?
При запуске Приветсвтия миру окно сразу же закрывается. Помню в паскале это фиксилось при помощи ReadlnОкно не закрывается до тех пор, пока не будет нажат enter Как фиксить в go?
На питоне программирую с 2009. Очень хорошо знаю этот язык. Несколько раз пытался перекатиться на гоу. Сегодня предпринял очередную попытку. Походу удачная. Гоу далеко ушел и вижу, что дофига программистов его активно развивают. Библиотеки допиливаются с сумасшедшей скоростью. Я конечно буду скучать по синтаксису питона, это очень красивый язык. Но все же его развитие немного затормозилось.
Вечер в хату, господа Goшники. В программировании я новичек, что не помешало мне разобраться в синтаксисе golang'a. Стоит вопрос какой бы проект сделать, что бы потренироваться на реальных задачах и что бы было, что показать будущему работадателю. Может кто, что подскажет?
Анон, нужно создать map[int][]int так, чтобы слайс был настроен сразу на 200 элементов, дабы не реаллоцировать память постоянно. Не хватает фантазии сделать это, помоги пожалуйста.
>>1060833 а я ключа не знаю, мне надо чтобы в конец массива добавлялся элемент. У меня container - это map, который хранит массивы(слайсы), которые я и заполняю.
Не понимаю это 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 переменным одного значения или что? Зачем?
Анон, помнится несколько тредов назад была критика по поводу каких-то контекстов в Го. Дескать, в Жаве-то вон как малаца сделали, стандартный срач в общем. Напомни, про что там в итоге шла речь? Про пакет net/context?
>>1060910 А я пошел почитал и не понял куда мне его прикручивать.
Суть моей задачи коротко: Есть файл (4гб), я его читаю, заполняю данными из него map свой, потом из готового map'а раздаю данные по запросам ключей через http-запросы. Раз в сколько-то времени мне нужно перезагружать данные из файла, чтобы поддерживать их актуальными.
У меня есть функция, она возвращает готовый map с потрохами, ее результат я присваиваю глобальной переменной, http запросы дергают данные из глобальной переменной. На третью перезагрузку файла памяти отожрано больше чем весят 2 map'а (тот, который создан цикл назад, и тот, который делается сейчас и будет присвоен глобальной переменной) Как мне с этим бороться?
Делаю кое какую тулзу для себя с вебмордой. Хочу, что бы был только бинарник. Взял https://github.com/labstack/echo для веб-сервера и https://github.com/jteeuwen/go-bindata для упаковки ресурсов в бинарник. Как отдать я разобрался, но не могу придумать, можно ли как-то оптимизировать, что бы не ебашить под каждый файл отдельную функцию.
>>1063786 С того, чтобы писать этот лог куда-то. Либо в памяти держать, тогда есть вариант для нищих: https://golang.org/pkg/expvar/ Либо в файлик/базу и просто выплевывать их по запросу.
Всё, бля, хорошо, но передача и ошибки и результата это не пиздец ли? Им самим не страшно хуету вместо данных возвращать? Я не говорю про полноценный Result-тип, но какой-нибудь костыль типа: func Open(name string) (file *File | err error) и что бы разбирать констуркцией switch выхлоп, могли бы запилить не? Обидно же.
>>1064068 Я не говорил про полноценную поддержку АТД, я про некоторое, пусть и костыльное расширение синтаксиса функции, один ведь чёрт кортеж возвращается, так что бы альтернативную часть к нему не прилатать?
И да, почему бы тот же Result не ввести было как втроенный тип, есть же встроенные массивы, словари, каналы? Сплошные плюсы же.
>>1064051 Говноед as is, ошибки он блять свитчем обрабатывает, пиздец. Тебе дали почти функциональный подход, отделили данные от исключений, нет, блять, хочу жрать говно, хочу как в похапэ, чтобы все в одном, а потом хуярить в ручную всякими хитрыми функциями. Ты ещё про трай кэтч бы поныл, хуесос.
>>1064159 >В чем проблема то? >if shit, err := fuck(); В том, что возвращаются и данные и и ошибка, т.е. данные доступны вызывающему в любом случае. И в твоём случае, хоть shit и инициализируется по-умолчанию всё равно никакой смысловой нагрузки не несёт. Ты знаки равенства/неравенства не попутал?
>>1064228 Попутал, да. Это операция осмысленна и удобна, потому что в го у всего есть логичное и интуитивно понятное дефолтное значение. Опасно ли это? Да. Сталкивался ли я проблемой от этого за больше чем 3 года постоянной ебли с го? Нет. Да раст в этом смысле гораздо лучше. Да он почти во всех смыслах лучше, хуле тут спорить. Проблема только в том, что количество людей способных осилить раст на порядок меньше тех, кто может осилить го. Так и живем.
>>1064231 Я и не спорю, я глубоко огорчаюсь. Вот решили создать полностью новый язык. Не нужно поддерживать горы накопившегося за годы кода, вот прям как душа лежит, как нравится - так и делай, бери всё лучшее и сделай яык-конфетку. И всё заебись ведь, каналы там, горутины. Но вот нулевой указатель по-умолчанию и подобный возврат ошибки - совсем же отвратительные вещи. Причём некоторые языки которым приходится придерживаться обратной совместимости, Eiffel, Ada 2005 всё же изъёбываются и вводят конструкции позволяющие избежать разыменование нулевого указателя, а тут с чистого листа вроде делают и != nil вам вместо системы типов.
>Да он почти во всех смыслах лучше, хуле тут спорить. Не гарантирует вызов деструкторов, отсутствие взаимоблокировок, отсутсвие утече памяти, выглядит как тора с комментариями на китайском. Хуй поспоришь, да.
>>1064237 Ну а какую обработку ошибок бы сделал ты?
> Не гарантирует вызов деструкторов, отсутствие взаимоблокировок, отсутсвие утече памяти, выглядит как тора с комментариями на китайском. Хуй поспоришь, да. Маняфантазии и вкусовщина. Либо сразу пруфы давай.
>Ну а какую обработку ошибок бы сделал ты? Ну вот по-чесноку, чем плоха была бы идея прошить в язык тот же Result и/или Option? Один ведь пёс язык без шаблонов и прочих макросов, дополнительный встроенный тип вряд ли бы сильно повредил ортогональности. Есть же каналы, массивы, хотя в функциональщине всякой обычно подобные типы живут на тех же правах, что и пользовательские.
>>1064246 Не так страшен черт как его малюют. Половина пунктов связана с тем что ты можешь сделать abort() и стек не будет размотан, а потом не будет вызван и деструктор. Есть мьютексы = есть дедлоки. В хаскеле вот тоже есть, и что?
Система типов подразумевает что ты знаешь что делаешь, и тебе не нужно это доказывать компилятору. го ближе к жс дристне, чем раст, что тут такого. Индусам так удобней.
>>1064250 Тут за пруфы интересовались, я и приволок. До кучи можно вспомнить про Rc/Arc, для которых доказать ацикличность хоть и можно, но достаточно неудобно.
>Не так страшен черт как его малюют. Мне-то всё равно, я тут про Го побеседовать заглянул. Вы лучше это потом заказчику расскажите. Про дедлоки, мьютексы, Хаскель и систему типов которая знает что ты делаешь и доказывать не надо.
>>1064254 Заказчику вообще насрать на чем ты сделаешь в большинстве случаев. Он обычно исходит из того, сможет ли он нанять макаку, которая потом это будет поддерживать.
Посмотри go-survey последний, сильно ли жаловались на обработку ошибок?
>>1064263 >Маняфантазии и вкусовщина ==> Не так страшен черт как его малюют ==> Заказчику вообще насрать Я тебя услышал. Раст был упомянут как некоторый предел совершенства, мне показалось, что не такой-то уж и предел. Его возможности вполне можно обсудить в соответствующем трэде. Изначальный вопрос/сожеление был всё же о том почему не сделали пездатую обработку ошибок в go.
>>1064490 Ты правильно понял. Дженериков нет. По словам Расса "да я чет хуй его знает, не помню чтобы мне были нужны дженерики". Видимо он настолько привык ебашить копипасту, что ему похуй.
Дженерики это фича номер 1, которую сообщество ждет от го 2.0
>>1064489 Ну с шаблонами-то вопрос всё же неоднозначный, на мой взгляд. Их полноценная поддержка потребовала бы серьёзной допереработки системы типов, что явно не упростило бы язык. А чем делать срань подобную ранним версиям цпп, уж лучше воспользоваться внешним макропроцессором.
Ну и встроенные параметризированные типы вполне соответствуют доброй половине STL, той что без деревьев. Могли бы только добавить магические прошитые функции типа sort, search и пр.. Или они есть я не копался просто?
А вообще обобщённое программирование во многом переоценено. Для совсем критичных ко времени алгоритмов не грех и реализовать свою фунцию, под каждый тип оптимизируя руками. Для некритичных же вполне хватило бы стандартных средств интроспекции. Я понимаю, что кто правой привык, тому тяжело учиться левой, но всё же никакой фундаментальной разницы тут не просматривается.
>>1064624 А что не так-то по-хорошему? У тебя имеется некоторая задача, в её рамках определяются типы и операции над ними, потом всё это реализуется. Для необходимой обобщённости можно использовать интерфейсы. Хотя да, могли бы добавить сортировку/поиск для произвольного массива.
Пожалуй моя аналогия с руками не совсем верна, лучше уж: если привык двумя, то тяжело потом одной.
>>1064626 >язык здорового человека >rust Ещё брайнфак бы приволок.
>>1064642 Ну покажи как этом будет выглядеть пример из поста выше.
realy big numsАноним22/09/17 Птн 18:07:39#520№1065040
некоторый бекграунд, сис.админ (C,python)
Вчера такой открыл книжку по Go, начал читать, на 30 странице такой сижу и думаю, прикольно дает обьявить x := huyakhuyak() но типизация статическая, думаю а что если захуячить бигинт, овер 64 бита, и тут пришло понимание о том что овер 64 бита нельзя юзать и даже __int128_t нету - современный язык программирования :D привет гмп, нафига нужен го если есть С?
Пока все хейтят и поливают говном Голанг, за его дизайн(отсутствие джинериков, обработка ошибок трай/кейч), но несмотря на это , В 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, которые вам понравились!