GO — Лучший язык программирования

GO — Лучший язык программирования после  PYTHON

Пламенный привет посетителям этой страницы, пришедшим из социальных сетей, да и всем остальным тоже!

В апреле 2021-го года наблюдал удивительное явление: обильный поток посетителей из 4-х социальных сетей. В связи с этим настоятельно рекомендую всем неоднократно и регулярно посещать сайт rtbsm.ru — там в общих чертах изложена Российская Теннисная Балльная Система Марии (Шараповой).

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

Главная проблема — известить Марию, чтобы она лично как можно скорее заявила на весь мир о РТБСМ.

GO — Лучший язык программирования, так как это высокоуровневый компилируемый язык программирования, создающий двоичные исполняемые файлы.

Привожу информацию со страницы https://dzen.ru/a/ZkqFwyof4BJV8ohT :

GO — Лучший язык программирования

Код Матрицы
33 подписчика
20 мая 2024 г.
605 прочитали

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

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

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

Один из создателей Go разработчик Роб Пайк говорил, что новый язык программирования должен быть похож на С, C++ или Java — чтобы разработчикам не пришлось сильно переучиваться. Но при этом он должен быть проще, быстрее и эффективнее — потому что сотрудники Google в первую очередь инженеры, а не учёные, которые могут тратить сотни часов на изучение технологии.

Go разрабатывался как Опен-сорс проект и публично вышел в 2012 году. За 10 лет он стал одним из самых популярных языков программирования: в 2022 году он находится на шестом месте по популярности среди языков программирования, которые используются на GitHub, обогнав PHP, C, C#, Ruby и Swift.

Для чего используется Go

Изначально Go создавался для программ, связанных с сетями и инфраструктурой, в качестве замены популярных высокопроизводительных серверных языков, таких как Java и C++. Сегодня же Go используется как бэкенд-язык для огромного количества различных направлений разработки:

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

Однако лучше всего Go раскрывается как язык программирования для работы с инфраструктурой. Самые популярные инструменты в этой области написаны именно на Go — Kubernetes, Docker и Prometheus.

Почему разработчики любят Go

Простота языка

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

package main
import «fmt»
func main() { fmt.Println(«Hello, World!») }

Высокопроизводительные приложения

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

Кроме того, Go отлично работает с инфраструктурой и облачными платформами. Его используют в качестве основного языка Amazon Web Services, Microsoft Azure и Google Cloud Platform (GCP).

Комьюнити и зарплаты

У Go очень живое и активное сообщество разработчиков, так как это Опен-сорс проект. Они самостоятельно контрибьютят его, создают новые модули и библиотеки, а также помогают новичкам осваивать язык. Несмотря на Опен-сорс историю, Go активно поддерживается Google, поэтому язык быстро развивается и активно меняется.

Про зарплаты: у Go-разработчиков вторая на IT-рынке зарплата в США, она превышает $140 тыс. в год. Однако стоит отметить, что такой перекос в зарплатах у Go-разработчиках на американском рынке может быть связан с тем, что большинство из них работают в Google, где традиционно программисты получали большую зарплату.

По результатам опроса сервиса Stack Overflow за 2021 год, Go разработчики зарабатывают за год в среднем в мире $75 тыс. в год — это делает язык восьмым по прибыльности из всех существующих. Это больше, чем Python-разработчики ($59 тыс. в год), JS-разработчики ($54 тыс. в год), Java-разработчики ($51 тыс. в год) и PHP-разработчикам ($38 тыс. в год). Вероятно, такая зарплата связана с опытом Go-разработчиков, в него редко идут джуниорами и практически не учат в качестве первого языка программирования.

На сайте HeadHunter на конец лета 2022 года было 2641 вакансия с упоминанием языка программирования Go. Зарплаты начинаются от 80 тыс. рублей, при этом есть 40 вакансий, по которым платят более 600 тыс. рублей в месяц.

В вакансиях в связке с Go часто требуются технологии:

  1. Docker
  2. Postgres
  3. Kubernetes
  4. gRPC
  5. Git
  6. Rest API
  7. Python
  8. PHP

«Go — идеальное карьерное развитие для PHP-разработчиков»: преподаватель Хекслета Влад Гукасов — про Go-разработчиков

Преподаватель Хекслета Go Влад Гукасов рассказывает, зачем PHP-разработчики переходят на Go, почему языку практически не нужны фреймворки и какие у Go есть уникальные IT-концепции.

Меня зовут Влад Гукасов, я работаю бэкендером в международной финтех-компании Space307. Основной язык на бэкенде в нашей компании — Go.

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

Вообще, Go — идеальное карьерное продолжение для PHP-разработчика. Многие программисты используют эти два языка в синергии, потому что все большие старые проекты в России написаны на PHP — «ВКонтакте», «Авито», у VK много проектов на нем. Но нагрузка постепенно растет, спектр задач расширяется, поэтому компании переходят на более эффективные и современные технологии.

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

Плюсы Go

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

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

Третий плюс:  весь проект и вся кодовая база собирается в один бинарный файл. Это значит, что можно писать один код, который потом легко компилировать под любую платформу и архитектуру процессора — под Windows или Linux. Этим часто пользуются в DevOps, когда надо написать скрипты и скомпилировать их под каждое железо. И делается это просто одной строкой.

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

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

Go как второй язык

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

Чаще всего Go используют в качестве второго языка разработки. Поэтому люди, которые с ним работают, сразу видят его простоту и логичность. Например, по сравнению с Node.JS в Go весь код по умолчанию синхронен, пока ты сам не скажешь, что нужно делать по-другому. Ещё в Go сложно выстрелить себе в ногу и наделать ошибок, связанных с типами данных: потому что язык не динамический, а компилируемый со статической типизацией.

Почему в Go не нужны фреймворки

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

Допустим, разработчику нужно сделать обычный бэкенд веб-сервер, который будет обрабатывать какие-то самые простые запросы. На Ruby on Rails или PHP мы для этого работаем через фреймворк (в PHP сначала надо поднять Nginx — прокси, потому что PHP не может самостоятельно обрабатывать запрос).

На Go это выглядит так: программист просто пишет код, в котором использует стандартную и встроенную в язык библиотеку HTTP. Говорит — подними мне сервер на такой-то порт и обрабатывай каждый запрос так и так. Потом Go автоматически компилирует бинарник, который запускается на сервере, где обрабатывает запросы. То есть никакого дополнительного фреймворка не надо: язык сам как большой фреймворк — очень просто собрать все, что нужно.

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

Что в итоге

Go — мощный, изящный и современный язык программирования, по скорости сравнимый с C и C++, а по простоте создания кода — с Python. Освоить его может даже новичок. У Golang простая, лаконичная документация и дружелюбное сообщество, где всегда можно задать вопрос, — опытный программист быстро выучит его как второй язык. Перспективы вполне серьёзные, на долгое время: язык поддерживается Google, но живёт как самостоятельный свободный проект с открытыми исходниками.

Подпишитесь на канал, чтобы не пропустить новые публикации

Комментарии 16

Войти, чтобы комментировать
Resident 1337
По производительности Rust лучше, так как не использует сборщик мусора, при этом остаётся безопаснее C и C++
Код Матрицы
Resident 1337, Вы абсолютно правы! Rust действительно превосходит Go по производительности, так как не использует сборщик мусора. Это делает его сравнимым с C и C++, но при этом Rust обеспечивает безопасность памяти, что является большим преимуществом.
Go, с другой стороны, упрощает разработку и позволяет создавать приложения быстрее, но платит за это некоторой потерей производительности. Выбор между Go и Rust зависит от конкретной задачи и приоритетов проекта.
super.davagin
Resident 1337, Rust — язык интересный. Концепция оригинальная. Единственное что меня смутило, к примеру простой контейнер — линкованный список, нельзя написать используя только безопасные методы. Приходится всякие unsafe секции втыкать, что на мой взгляд ломает всю эту самую концепцию.
Код Матрицы
super.davagin, Вы абсолютно правы, сравнивать производительность Go с C++ — это как сравнивать яблоки с апельсинами. C++ — это язык низкого уровня, который дает разработчику полный контроль над памятью и ресурсами. Go — это язык более высокого уровня, который использует сборщик мусора и предоставляет абстракции для упрощения разработки.
В задачах, где требуется максимальная оптимизация, особенно в ресурсоемких вычислениях или работе с низкоуровневыми API, C++ всегда будет иметь преимущество.
Однако, Go имеет свои сильные стороны: Go значительно проще в использовании, чем C++, что ускоряет разработку и делает код более читаемым и поддерживаемым.
Встроенная конкурентность: Go предоставляет встроенные механизмы для параллельной обработки задач, что делает его идеальным для создания высокопроизводительных веб-серверов и микро-сервисов.
Высокая эффективность: Несмотря на сборщик мусора, Go обеспечивает достаточно высокую эффективность, особенно при обработке больших объемов данных.
В итоге, Go и C++ — это инструменты для разных задач. Если вам нужна максимальная производительность и вы готовы пожертвовать простотой разработки, то C++ — ваш выбор. Если же вам нужен быстрый и простой язык для разработки веб-приложений и микро-сервисов, то Go — прекрасный вариант.

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

Не удержался и попробовал язык GO на слабом ноутбуке. Долго провозился с переписыванием PYTHON программы в программу GO — теперь убеждён, что язык PYTHON проще и чётче, чем язык GO!

Для отладки GO программ можно использовать IDE GEANY и  https://w3schoolsua.github.io/gotryit/demo_helloworld.html

!…

Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В особо хороших комментариях сохраняю ссылку на сайт автора!

И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
GO - Лучший язык программированияПродолжение тут…

Deviz_11

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.