Ах, Go, язык программирования. Вы, наверное, слышали об этом, возможно, от одного чрезмерного энтузиазма разработчика в офисе, который никогда не перестает говорить о том, насколько «невероятно быстры» их API сейчас. Конечно, вы пробовали другие языки и, возможно, подумали: «Действительно ли мне нужен еще один язык в моей тарелке?» Спойлер: да, да, так и есть. И Go — это язык. Позвольте мне изложить это вам максимально саркастически и искренне.
Синтаксис Go настолько прост, что это почти оскорбительно. Если вы потратили годы на освоение сложностей JavaScript-фреймворков, борьбу с декораторами Python или танцы вокруг управления памятью C, как будто это живая граната, у Go возникнет ощущение, будто кто-то вручил вам книжку-раскраску. Нет, серьезно. Go намеренно минималистичен, его философия кричит: «Нам не нужны все эти причудливые функции, давайте просто сделаем все».
В то время как другие языки предоставляют вам все инструменты для превращения вашего кода в сложное, нечитаемое произведение искусства, дизайнеры Go подумали: «Нет, давайте просто заставим его работать». Никаких сложных иерархий наследования, никаких запутанных перегрузок функций, никаких шаблонов, похожих на алгебру из страшного сна. Просто прямой и точный код. Они как будто говорят: «Вот, перестань так усердно думать».
Если вы когда-либо пытались справиться с параллелизмом в традиционных языках, вы знаете, насколько это может повредить. Пулы потоков, мьютексы, взаимоблокировки — от одной этой мысли хочется свернуться клубочком и плакать. Но Го? О нет, Го говорит: «Потоки? Пфф. Вот горутины». Это почти неуважительно, насколько легко создавать легкие потоки в Go. Вы просто добавляете ключевое слово go перед вызовом функции, и БАМ, она выполняется одновременно.
И даже не рассказывайте мне о каналах Go. Это как если бы Go взглянул на попытки всех других языков обеспечить параллелизм и сказал: «Ребята, вы слишком усложняете это, посмотрите это». Каналы позволяют горутинам общаться, как воспитанные дети, передающие конспекты в классе — без криков и суеты. Вы можете даже почувствовать себя оскорбленным тем, насколько гладко это работает.
Вы знаете это чувство, когда вам приходится установить 47 пакетов только для того, чтобы сделать простой HTTP-запрос? Не в Го. Стандартная библиотека Go похожа на швейцарский армейский нож, о необходимости которого вы даже не подозревали, но теперь не можете жить без него. Хотите раскрутить веб-сервер? Сделанный. Вам нужно обработать JSON? Легкий. Хотите написать параллельную программу, которая взаимодействует по сети? Он уже есть в наборе инструментов.
Стандартная библиотека Go обладает такой спокойной уверенностью, как будто говоря: «О, вы хотите создать веб-сервис? Можно, не затягивая 200 сторонних зависимостей и не жертвуя своей душой». Это похоже на получение всех премиальных функций языка без раздутой стоимости подписки. И, честно говоря, это просто грубо.
Помните, сколько раз вы сидели, постукивая ногой и ожидая запуска кода Python или JavaScript? У Go нет времени на эту ерунду. Он скомпилируется, и это быстро. Мол, моргнул, и дело сделано быстро. Конечно, другие языки стараются изо всех сил, но Go просто бросает вам свои молниеносные двоичные файлы и говорит: «Что? Ты все еще здесь? Это уже закончено.»
Лучшая часть? Вам не нужно понимать всю скрытую магию, которая происходит. Вы просто знаете, что Go производит исполняемые файлы, которые работают как Усэйн Болт на эспрессо. В то время как другие языки тратят время на то, чтобы размяться и надеть кроссовки, Го уже пересек финишную черту, принял душ и наслаждается коктейлем после гонки.
Вы когда-нибудь пытались заставить скрипт Python работать как в Windows, так и в Linux? Да, это похоже на попытку организовать групповой проект в колледже — полная путаницы, странных ошибок и множества тыканий пальцем. Но Го? Go не имеет значения, на какой платформе вы находитесь. Скомпилируйте его один раз, и он будет работать практически где угодно. Это позиция мира программирования «Конечно, как угодно».
И если вы любите писать контейнеры Docker (и давайте будем честными, кто не любит хороший контейнер?), двоичные файлы Go — это сбывшаяся мечта. Одиночный, статически связанный двоичный файл, который не зависит от «правильной» среды выполнения, эквивалентен соседу по комнате, который действительно моет посуду без просьбы. Это слишком хорошо, чтобы быть правдой, но мы здесь.
Теперь я знаю, о чем вы думаете: «Но что, если я просто хочу создавать небольшие побочные проекты?» Конечно, ты мог бы. Но давайте будем реальными. В тот момент, когда вы услышите, что Google, компания, контролирующая большую часть Интернета, создала Go, вы почувствуете, что владеете электроинструментом, предназначенным для мирового господства. Конечно, вы, вероятно, начнете с небольшого веб-сервера или какого-нибудь API, но в глубине души вы знаете, что можете построить следующую систему масштаба Google с помощью этой штуки, если действительно захотите.
Правильно: Go рассчитан на масштабирование, но не волнуйтесь: никто не осудит вас, если ваш первый проект — приложение со списком дел. (На самом деле, возможно. Совсем немного.)
Мы все любим проекты с открытым исходным кодом, верно? Это дает нам теплое и нечеткое ощущение принадлежности к «сообществу». Что ж, Go — это открытый исходный код, и вы можете покопаться в коде, если захотите. Будете ли вы действительно способствовать этому? Вероятно, нет. Но просто знать, что вы могли бы, если бы вы чувствовали, что этого достаточно, верно?
Вы можете сказать людям на встречах: «Да, я работаю с Go — с полностью открытым исходным кодом, это здорово для сообщества». Затем просто расслабьтесь и наслаждайтесь уважительными кивками коллег. Никто не должен знать, что ваш реальный вклад состоит в основном из главных репозиториев на GitHub.
Послушайте, мы все были частью сообществ программистов, которые… ну, скажем так, могут быть «энтузиастами». Некоторые языковые сообщества (мы не называем имен, но вы знаете, кто вы) могут немного пугать своими «лучшими практиками» и постоянными придирками к правильному способу написания цикла for. Но сообщество Го? Это как глоток свежего воздуха. Они поддерживают, помогают и не заставят вас чувствовать себя идиотом, задав простой вопрос. Это почти тревожно, насколько они холодны.
Может быть, это потому, что сам язык не пытается быть слишком сложным, поэтому никто не чувствует необходимости действовать превосходно. Какой бы ни была причина, сообщество Go — это то место, где вы найдете настоящую поддержку, а не контролирование, замаскированное под «советы».
Итак, почему каждый должен изучать Го? Потому что он простой, но не глупый, быстрый, без суеты, и достаточно мощный, чтобы справиться с любым безумным проектом, который вы ему зададите. Это как тот друг, который всегда спокоен, собран и каким-то образом умудряется работать до смешного продуктивно, не выставляя это напоказ тяжелой работой.
Если вы устали от языков, которые либо балуют вас, либо требуют пожертвовать своим рассудком, Go — ваше любимое место. Попробуйте, и кто знает — возможно, вы станете тем самым чрезмерно увлеченным разработчиком в офисе. И, честно говоря, разве это не было бы весело?
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3