Язык golang преимущества и недостатки

Язык golang преимущества и недостатки

  • Ответы экспертов, 28 октября 2019 в 14:32
  • Никита Прияцелюк

Go сравнительно молодой язык, и многие программисты, как новички, так и опытные, могут сомневаться в целесообразности его изучения. Стоит ли его изучать и если да, то как? Узнаем у экспертов.

Евгений Потапов , генеральный директор ITSumma

В настоящее время, Go — один из самых популярных языков программирования, применяющийся как в web-разработке, так и в системном программировании. Его главные преимущества: строгая типизация, широкие возможности стандартной библиотеки языка (работа с HTTP, HTML, JSON…), а также высокая производительность.

Значительная часть ПО, связанная с современными web-архитектурами, написана на Go: Docker, Kubernetes, Prometheus… Также Go нашел своё применение в разработке микросервисных приложений как язык, который позволяет быстро и удобно писать отдельные компоненты распределённой системы.

Начать обучение этому языку мы, естественно, рекомендуем с самого известного туториала: a Tour of Go. Затем выбор огромный — существует множество литературы, интернет-порталов, сообществ… Но не забывайте: лучший учебник — это исходный код. 🙂

Артем Арефьев , ведущий разработчик компании MediaSoft

На данный момент Go является одним из тех языков, которые стремительно набирают популярность. Этот язык относительно молодой, но, несмотря на это, он очень хорош. Он прекрасно сочетает в себе лаконичность и хорошую производительность, что позволяет создавать высоконагруженные приложения в меньшие сроки.

Конечно, у него есть свои недостатки, но в своём большинстве они не очень критичные:

    Лично мне не очень нравится обработка ошибок. В отличие от привычного использования try/catch во многих языках, в Go постоянно приходится делать так:

А затем обрабатывать этот err во всех функциях, вызывающих openFile . Хотя наверняка найдутся и те, кому подобная обработка ошибок придётся по вкусу. 🙂

  • Более серьёзным недостатком, на мой взгляд, является далеко не самая удобная работа с зависимостями из-за отсутствия в Go централизованного репозитория с пакетами. Существуют инструменты, упрощающие работу с зависимостями, но всё же это менее удобно, чем работа с пакетными менеджерами других языков.
  • Можно вспомнить ещё некоторые недочёты Go, но все они перекрываются его достоинствами:

    • Исходный код компилируется в бинарный файл, что значительно повышает производительность вашего приложения. Также это ОЧЕНЬ удобно при деплое приложения — нет нужды предварительно устанавливать необходимые зависимости, достаточно просто перенести исполняемый файл на вашу площадку и запустить его.
    • Go довольно прост для изучения — он имеет понятный синтаксис и хорошую документацию, которая читается без большого труда и не оставляет после себя много вопросов.
    • Особенно хочется выделить многопоточность в Go — она великолепна! Горутины (goroutines) и каналы (channels), инструменты Go для работы с потоками несут в себе одновременно легкость и практичность, а разработчику они дарят, в основном, только положительные эмоции. 🙂

    Если вы хотите изучать Go, то для начала вам обязательно нужно ознакомиться с материалами на официальном сайте. Также существует много других ресурсов, где рассказывается об основах языка, но в большинстве случаев там вы обнаружите всё то же самое, что и на официальном сайте, разве что написано это будет другим языком. Будет не лишним прочесть книги по Go, в которых можно увидеть примеры построения приложений. Дальнейшее обучение происходит ровно так же, как и с любым другим языком — ставьте для себя сложные и интересные задачи, гуглите, можете попробовать переписать ваше приложение, скорость работы которого вас смущает, на Go.

    Я думаю, что стоит потратить своё время на изучение Go. Он востребован, о чём говорит большое количество вакансий для Go-разработчиков. Также я заметил, что многие компании частично переходят, например, с Python на Go в целях повышения производительности. Так что, если вы устроитесь разработчиком на Python, то не исключено, что вы столкнетесь с Go. 🙂 Плюс ко всему — разработкой Go занимается компания Google, что в каком-то смысле даёт веру в дальнейшее успешное развитие языка.

    Ильназ Гильязов , эксперт курса «Профессия веб-разработчик» университета digital-профессий Нетология

    Язык программирования Go имеет смысл изучать как начинающим специалистам, так и разработчикам с опытом работы.

    Если вы начинающий разработчик, то Go прекрасно подойдёт для старта:

    • в нём простой и немногословный синтаксис;
    • строгие и единообразные правила написания кода;
    • вам не нужно заучивать сотни хитроумных вариаций написания того же самого кода, но с более коротким синтаксисом.

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

    Если вы программист с опытом, то изучать Go можно как минимум по двум причинам:

    • Этот язык приносит некоторые концепции и подходы, позволяющие нам эффективнее строить и саму разработку, и работу с конкурентностью. Это связано с тем, что задача современного софта — большое количество сетевых операций, желательно в неблокирующем режиме (если мы говорим о бэкенде). Сами же концепции не новы, например идея легковесных потоков, которые в Go называются goroutines, существует достаточно давно. Эти идеи находят отражение и в других языках (корутины в Kotlin), поэтому к ним стоит присмотреться.
    • Всё больше компаний используют Go для миграции с так называемых традиционных языков для оптимизации своих сетевых приложений, поэтому вы можете перенять этот опыт и добиться снижения расходов, увеличения производительности и т. д.

    Как и где изучать Go

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

    Начать стоит с базовых вещей: основы синтаксиса и стандартной библиотеки, а затем уже решать практические задачи с использованием СУБД, веба и всего остального.

    При этом у Go есть свои преимущества и недостатки.

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

    Недостатки: иногда не хватает возможности написать что-то короче («продвинутых конструкций»), не хватает ряда возможностей в самом языке (generic’и), но их обещают добавить.

    Не стоит думать, что Go — это «убийца всех языков». Ни Java, ни C++, ни остальные языки никуда не исчезнут, но у Go своя ниша: системные приложения, утилиты автоматизации, сетевые сервисы и бэкенд.

    Читайте также:  Офисная программа обучения word

    На рынке труда в вакансиях на Go достаточно часто пишут «желание изучить и перейти на Go», т. е. специалистов не хватает и компании готовы доучивать их самостоятельно.

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

    Василий Ерешко , разработчик в компании «Примавера»

    Если вы планируете своё профессиональное будущее в бэкенд-разработке, то язык Go изучать стоит однозначно.

    Лучше всего начинать с книги «Язык программирования Go» от авторов языка, а также онлайн-туториала «A tour of go». Если опыта программирования нет вообще, неплохо ещё будет посмотреть курс от Mail.ru на Coursera.

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

    Недостатки в основном кроются в излишней простоте языка, но это обещают исправить в следующих версиях.

    На рынке труда Go является одним из самых востребованных языков для бэкенд-разработки и популярность его растёт год от года. В настоящее время даже IT-тяжеловесы, такие как Mail Group или Yandex, постепенно переводят свою инфраструктуру на Go.

    Александр Пантелеев , разработчик в Kodix Auto

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

    В настоящее время специалисты, знающие PHP и Go, востребованы на рынке.

    Привязываться к языку — дилетантство. Хороший программист знает несколько языков и легко учит новые. Если фундаментальные знания разработки у специалиста крепкие, он может писать хорошо на любом языке. Поэтому начинающим программистам следует скорее определяться с направлением деятельности: web, native, mobile, micro и т. д. Изучить однозначного лидера в направлении, а потом задумываться о других языках.

    Иван Новиков , преподаватель Московской школы программистов, программист-стажер в Google

    Три главных преимущества Go, которые объясняют его популярность: простота, стандартная библиотека и то, что он даёт возможность для параллельного, или конкурентного, программирования. Go был разработан в Google как альтернатива С и С++. Язык задумывался как компилируемый язык, не требующий интерпретатора (как, например, Python). Его можно собрать у себя на компьютере под практически любую архитектуру (MILS или ARM), отправить на сервер и запустить. У Go высокая скорость и простой синтаксис, который может выучить за один месяц даже начинающий.

    Язык Go достаточно читаем. В библиотеке есть некоторые «фишки», которые можно использовать в работе над разными проектами. Там есть всё, что связано с сетями, благодаря чему можно не использовать API LINUX. На Go написано много современных вещей: Docker, Project Mobi,система кластеризации Kubernetes, система мониторинга Prometheus, много консольных утилит. У языка хорошая поддержка параллельных вычислений.

    Ещё одно преимущество — пакетный менеджер. У Go есть система автодокументирования кода, внутренний профилировщик, внутренняя система написания тестов, то есть всё то, что в других языках программирования нужно было бы добавлять.
    Сейчас Go очень популярен: на нём мало кто умеет писать, а вакансий — много. Go является пятым официальным языком в Google после Python, Java, С++ и JavaScript.

    Go используют такие IT-корпорации, как Яндекс, ВКонтакте, Mail, Avito. Это красивый, быстрый и удобный язык, который позволяет писать сложные программы.

    Никита Меркулов , Lead Software Engineer в EPAM

    Go — очень дружественен к новичкам, но моё мнение — лучше иметь и другие технологии в запасе. И вот почему: Go — это, что называется, opinionated stuff — дизайн языка идёт на достаточно серьёзные ограничения, и зачастую выбор принимается не сообществом, а разработчиками самого языка. И понять причину, почему то или иное решение принято, может оказаться нелегко, если опыт не позволяет найти примеры из прошлого. Многие решения в дизайне языка приняты для того, чтобы максимально избежать двусмысленности и неопределённости, и по-настоящему это можно оценить только тогда, когда уже есть какой-то опыт.

    На мой взгляд, Golang — это, если позволите, новый Java. Это вполне себе зрелый язык программирования для написания enterprise-приложений. Многих коллег с ООП-бэкграундом смущает отсутствие классов как таковых, однако это не мешает пользоваться знакомыми практиками, SOLID например. Сейчас ситуация такова, что если вы видите в проекте Golang, то с вероятностью 99 % это значит, что Go взяли на борт ради микросервисов. В первую очередь потому, что «microservices is new black», хотя существуют и другие причины. Например, многие широко используемые инструменты уже написаны на Go: Docker, Kubernetes, HashiCorp projects (Consul, Vault и т. д.). Однако я знаю компании, которые вполне обоснованно выбрали Go в качестве языка программирования, и при этом разрабатывают решения с монолитной архитектурой.

    Начать изучение Go стоит с ресурсов «Tour of go» и «Go by example». Если вы не против прочитать книгу, то «Язык программирования Go» за авторством Алана Донована и Брайана Кернигана вам в помощь. После этого рекомендую зайти на официальный блог Go и блог Дейва Чейни. Многие вопросы отпадут, если вы начнете своё знакомство с этими ресурсами со статей «Errors are values» и «Functional options».

    Что стоит изучить помимо самого Go? Помимо самых стандартных вещей в духе реляционных баз данных, настоятельно рекомендую познакомиться с Docker, Swagger, gRPC. Docker вам понадобится почти 100 % (это утверждение в целом справедливо и не для Go-проектов). А вот со Swagger, gRPC и прочими подобными контрактами ситуация чуть интересней. В Go нет больших фреймворков в духе Spring/RoR, есть нишевые фреймворки, которые существенно облегчат ту или иную задачу, не более. Однако здесь на помощь приходит кодогенерация. Помимо генерации всяких enum-ов, вы можете сгенерировать как клиент, так и сервер, используя Swagger, protobuf или GraphQL, то есть генератор выступает в роли фреймворка. Вам останется только имплементировать сами хэндлеры (Handler), так называемые обработчки. Это позволяет уделять больше внимания коммуникации приложений, не фокусируясь на возможностях и недостатках языках. Это не серебряная пуля, конечно, но работает достаточно хорошо. Имплементировать свой суперклассный zero-allocation-роутер — это всегда весело, но куда веселей поднимать программы.

    Читайте также:  Лучший камерофон всех времен

    Что касается ситуации на рынке труда: пару лет назад 8 из 10 вакансий по Go были от криптостартапов, общее число вакансий не впечатляло. Сейчас Golang-вакансий гораздо больше, но почти всегда требуется опыт работы с другими языками программирования — как раз по причине переписывания с языка X на Go. Мой личный топ вспомогательных языков – PHP, Java, Ruby. Можно встретить и чисто Go-вакансии, их появляется всё больше, что не может не радовать.

    Golang относительно молодая технология, потому мир enterprise с опаской принимает её, но мне кажется, это неминуемо произойдёт.

    Артем Галонский , технический директор «БюроБюро»

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

    Одно из главных преимуществ Go — высокая скорость при умеренном потреблении ресурсов. Инструменты многопоточности — горутины — эффективно используют вычислительную мощность многоядерных архитектур, значительно повышая скорость выполнения процессов.

    Go хорошо подходит для командной разработки: у него минималистичный синтаксис, строгий подход к форматированию кода и множество удобных линтеров, помогающих стандартизировать и упорядочивать код, что упрощает взаимодействие разработчиков в проекте. А ещё Go достаточно лаконичный, и это повышает темпы работы, так как для создания приложения требуется банально меньше символов.

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

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

    Изучение Go стоит начать с его спецификации на официальном сайте (она, к слову, довольно компактная и содержит много примеров), после чего можно подобрать учебник в соответствии со своим уровнем. Книг по Go очень много, есть варианты как для начинающих, так и для продвинутых разработчиков. А для дальнейшего освоения языка на практике можно использовать связку «курсы по Go + параллельная разработка своего пет-проекта».

    Итак, стоит ли учить Go и если да, то как?

    Если вы не занимаетесь или не собираетесь заниматься бэкендом или системным программированием, то, наверное, лучше изучить что-нибудь другое. Кроме того, если вы только начинаете заниматься программированием, то Go, возможно, будет не лучшим выбором в качестве первого языка, так как во многих вакансиях требуется знание дополнительного языка, чтобы переписать проект с него на Go. А так, если вы занимаетесь бэкендом, вам нравятся лаконичные и производительные языки, то вы по адресу. К тому же, вакансий с Go становится всё больше, а хороших специалистов не так много.

    Разобраться с основами языка помогут такие ресурсы, как «Tour of go» и «Go by example». Книг по Go хватает как для начинающих, так и для продвинутых разработчиков; можете обратить внимание на «Язык программирования Go» от авторов языка. Также не будет лишним посетить официальный блог Go и блог Дейва Чейни. Ну и не забывайте про практику, само собой.

    Язык Go – серверный язык будущего. В этой статье мы не будем разбирать «Hello World!», но затронем важность Golang и его характеристики.

    Первый процессор Pentium 4 с тактовой частотой 3,0 ГГц был представлен еще в 2004 году корпорацией Intel. Сегодня Mackbook Pro 2016 имеет тактовую частоту 2,9 ГГц. Таким образом, почти за одно десятилетие мощности не слишком-то изменились. Вы можете увидеть сравнение мощностей на разных этапах на диаграмме ниже.

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

    Для решения этой задачи:

    1. Производители начали добавлять в процессоры все больше и больше ядер. В настоящее время мы имеем четырехъядерные и восьмиядерные процессоры.
    2. Они также ввели гиперпоточность.
    3. Для повышения производительности добавлено больше кэша.

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

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

    Если же нельзя положиться на усовершенствование оборудования, единственный выход – более эффективное ПО для повышения производительности. Но современные языки программирования малоэффективны в данном вопросе.

    «Современные процессоры похожи на нитрозаправленные смешные автомобили. К сожалению, языки программирования сегодня напоминают Монте-Карло: они полны изгибов и поворотов.» © D. Ungar

    Увеличение количества ядер ожидается и в дальнейшем. Более того, сегодняшние приложения используют несколько микросервисов для поддержки соединений с базами данных, MQ (Messages queues) и хранение кэша. Разрабатываемое нами ПО и языки программирования должны поддерживать параллелизм и быть расширяемыми в условиях постоянного увеличения количества ядер.

    Большинство современных языков программирования (таких как Java, Python etc.) поддерживают многопоточность. Но настоящая проблема связана с одновременным исполнением, блокировкой потоков, состоянием гонки и взаимоблокировками. Это затрудняет разработку многопоточного приложения.

    Возьмем, к примеру, Java. Каждый канал потребляет около 1 Мб объема памяти, и, в конце концов, если вы задействуете тысячи потоков, все может закончиться нехваткой памяти. Кроме того, взаимодействие между двумя или несколькими потоками – это тоже непросто.

    Язык Go (он же Golang) появился в 2009 году, когда уже были многоядерные процессоры. Вот почему этот ЯП построен с учетом параллелизма. У Go есть goroutine вместо потоков. Они потребляют только 2 Кб памяти. Таким образом, можно в любой момент активировать миллионы горутин.

    1. Горутины обладают сегментированными расширяемыми стеками. Другими словами, они используют больше памяти только тогда, когда это необходимо.
    2. Также они запускаются быстрее, чем потоки.
    3. Goroutines идут вместе со встроенными примитивами, чтобы безопасно обмениваться данными.
    4. В условиях одновременного использовании структур данных не придется прибегать к блокировке мьютексов.
    5. 1 горутина может свободно работать на нескольких потоках. Горутины мультиплексируются в небольшое количество потоков ОС.
    Читайте также:  При открытии 1с файл базы данных поврежден

    Вот одно из выступлений Роба Пайка, в котором раскрываются вопросы многозадачности и параллелизма.

    Все вышеперечисленные моменты делают язык Go мощным инструментом в обработке параллелизма, как в C-языках и Java, но с сохранением естественности и красоты кода, как в Erlang.

    Одним из наиболее значительных преимуществ языков C и C++ над другими современными языками, такими как Java/Python, является их производительность. Дело в том, что C и C++ вместо интерпретации компилируются.

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

    В то время как есть языки C/C++, не использующие VM, из-за чего удаляется один шаг из цикла выполнения, что и повышает производительность. Код напрямую компилируется из человечески читаемого кода в двоичный.

    Но освобождение и распределение переменной на таких ЯП – большая проблема. Хотя большинство языков обрабатывают распределение и удаление объектов с использованием сборки мусора или алгоритмов подсчета ссылок.

    Язык Go собрал в себе лучшее из всего. Как и языки нижнего уровня, Go является компилируемым. Это означает, что производительность почти такая же высокая, как и в низкоуровневых языках. А еще он использует сборщик мусора для выделения и удаления объекта. Больше free() и malloc(). То, что нужно!

    Язык Go лишен сумасшедшего синтаксиса. В отличие от других ЯП, в нем предусмотрен очень аккуратный и чистый синтаксис.

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

    Go специально не учитывает многие особенности современных языков ООП:

    1. Нет классов. Все разделяется на пакеты. Go работает со структурами, а не с классами.
    2. Не поддерживает наследование. Это упрощает изменение кода. В языках вроде Java и Python если класс A наследует класс B, и вы вносите изменения в последний, это может вызвать некоторые нежелательные изменения внутри других классов, которые наследуют B. Без наследования Go также становится легко читаемым: нет суперклассов, которые следует изучать особо тщательно.
    3. Нет дженериков.
    4. Нет аннотаций.
    5. Нет конструкторов.
    6. Нет исключений.

    Вышеизложенные изменения делают Golang отличным от других языком, а программирование на Go – предельно простым. Возможно, некоторые перечисленные пункты вам и не понравятся (особенно если вы привыкли работать с типичными языками ООП).

    Но это не значит, что вы не сможете написать свою программу на Go. Все, что нужно сделать, так это добавить дополнительные 2-3 строки кода. Зато на выходе код будет более красивым, чистым и понятным.

    На графике видно, что язык Go примерно так же эффективен, как C/C++, и при этом сохраняет синтаксис кода простым, как Ruby или Python. Это лучший вариант для людей и процессоров.

    В отличие от прочих новых языков, таких как Swift, синтаксис Go стабилен. Он остался прежним с первого выпуска версии 1.0, что состоялся в 2012 году. Это делает его обратно совместимым.

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

    Язык программирования Go создан разработчиками Google для решения своих нужд, касающихся поддержки эффективности и масштабируемости. Это те же проблемы, с которыми вы тоже столкнетесь при создании собственных серверов.

    Кроме того, язык программирования Go пользуется популярностью в компаниях IBM, Intel, Adobe, Medium и BBC.

    Несмотря на то, что язык Go сильно отличается от других объектно-ориентированных языков, это все тот же язык программирования. Go обеспечивает:

    • высокую производительность, подобно C и C++;
    • суперэффективную обработку параллелизма, такую ​​как в Java;
    • удовольствие от работы с максимально удобным для разработчика кодом, как и в случае с Python, Perl.

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

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

    1) Язык — проще некуда. Его собственно и стали разрабатывать как человеческую замену плюсам.
    2) Огромное количество библиотек, любую задачу можно решить на нём уже сейчас.
    3) Скорость и компилируемость.

    Вот поэтому лично я (и не только я, как выяснилось) считаю его лучшим "общим" языком программирования сегодня, именно Go нужно преподавать в школах вместо Pascal. Он прост для понимания и строг как Pascal, и в то же время прикладной, как Python. Вот пруф: Go как первый язык программирования для школьников

    p.s. ответ не топикстартеру, а всем программистам, кто прочитает. Топикстартер явно не программист и не собирается им быть.

    Я лично фриленсю успешно на Go.

    Заказов немного, но они на порядок интереснее и лучше оплачиваются того, с чем чаще всего приходится сталкиваться, типичному PHP-сту к примеру.

    Потому что они сложнее.

    Фразы "сегодня первый раз услышал о Go" и "сколько зарабатывают на Go" противоречивы и бессмысленны в паре.

    Go ныне широко распространен как язык создания backend в серьезных компаниях.
    Но backend в серьезных компаниях также с успехом создаются на Java, Python и пр.

    На Go крайне мало маленьких и дешевых заказов как на PHP.
    Формально, медиана по зарплате выше.

    Но это не значит, что на нем можно больше заработать, если вы ничего не знаете.
    А если хороший специалист, то и на JS и на PHP можете заработать хорошо.

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

    Дорогой заказ нужно еще суметь взять.
    И суметь сделать.

    Ссылка на основную публикацию
    Экран на телефоне мерцает полосками
    Доброго времени суток! Большое количество пользователей android устройств, сталкиваются с проблемой, мерцание экрана. Сегодня в этой теме мы опишем возможные...
    Что такое django python
    Django Тип каркас веб-приложений Автор РазработчикDjango Software FoundationНаписана наPython[2]Интерфейсвеб-интерфейсОперационная системакроссплатформенностьПервый выпуск2005[1]Последняя версия 3.0.4 ( 4 марта2020 ) [3] Лицензиямодифицированная лицензия...
    Что такое hangouts и для чего
    Хэкгаутс что это за программа на телефоне Добрый день, друзья. Для смартфонов на разных платформах существуют тысячи программ. Сейчас мы...
    Экранная камера без скачивания
    «Экранная Камера» — это компактная программа, позволяющая быстро и качественно захватывать любое видео с экрана монитора. Теперь вы можете без...
    Adblock detector