Реклама в Telegram-каналах DzikPic и dev.by теперь дешевле. Узнать подробности 👨🏻‍💻
Support us

Язык программирования Go от Google: что говорят те, кто с ним встречался?

Оставить комментарий
Язык программирования Go от Google: что говорят те, кто с ним встречался?
GoНужен ли человечеству еще один C-подобный язык программирования? В 2009 году компания Google утвердительно ответила на этот вопрос, представив общественности язык Go. А в этом году команда Go выпустила в свет первую стабильную версию Go 1 для «создания надежных продуктов, проектов и публикаций». Итак, какое место в мире предназначено этому языку? Что такое Go и почему в Google решили его создать? Как говорится в FAQ по Go, «в информатике уже более десяти лет не появлялось новых крупных языков для системного программирования», да и сама информатика за это время изменилась. Сотрудников Google не устраивали существующие языки, поскольку в работе им приходилось выбирать между «эффективной компиляцией, эффективным исполнением и легкостью программирования». Ни один из широко распространенных языков – С, С++, Java, Python и т.д. – не сумел предоставить одновременно всего того, что хотелось Google. Итак, программисты Google приступили к работе над Go в 2007 году. В FAQ сказано, что базовый синтаксис Go «больше всего напоминает языки из семейства C», но при этом «довольно похож» на языки из семейства Pascal, а также включает идеи из других языков. Но (по мнению Google) разработчикам следует воспринимать Go как совершенно новый язык, получившийся в результате размышлений о том, «что, собственно, делает программист и как сделать само программирование – как минимум, то программирование, которым занимаемся мы, – более эффективным, а значит, и более интересным».

Для чего хорош Go?

Так для чего же лучше всего подходит Go? По словам Роба Пайка, выдающегося программиста Google и одного из разработчиков Go, этот язык предназначен для «больших программ» (big software) (и это, кстати, перекликается с представлением о big data – «больших данных», которые в последнее время так модно обсуждать). В частности, Пайк говорит, что Go удобен для написания «крупномасштабных программ, которые создаются множеством разработчиков и со временем разрастаются для обеспечения поддержки сетевых служб в облаке: словом, для серверного программирования. На Go программа пишется быстро, а по мере роста она не менее легко поддерживается и адаптируется. В Go эффективность традиционных компилируемых языков сочетается с простотой использования и выразительностью скриптовых языков». (Следует отметить, что Пайк входил в состав первой команды, разрабатывавшей Unix в Bell Labs, поэтому он действительно кое-что знает о системных программах). А вот рядовой разработчик Дуглас Филс, которому доводилось работать с самыми разнообразными языками, говорит, что «уже не первый день» пишет веб-приложения, пользуясь в основном виртуальной машиной Java (JVM). «Конечно же, Java имеет в этом деле фундаментальное значение. Недавно я стал больше обращаться к языкам Scala и Groovy. Кстати, с Groovy я поработал уже немало, а недавно закончил большой проект на Groovy/Grails. Кроме того, я изучал и опробовал на практике кое-какой материал на Ruby on Rails и Python (а также работал с фреймворками Python)». И вот Филс рассказал, что начал писать веб-интерфейс для ресурсов данных на ранней версии Go. «К сожалению, на тот момент пакеты и синтаксис менялись настолько быстро, что работать было совершенно невозможно. В качестве альтернативы я попробовал node.js и в январе окончательно перенес весь проект на этот фреймворк». Филс считает, что Node.js действительно пользуется популярностью, «…но, хотя я и нахожу в нем определенные достоинства, мне не нравится его однопоточный цикл событий и проблемы, возникающие, когда приходится программировать в таком цикле, постоянно избегая блокировок. Кроме того, мне просто не нравится по любому поводу писать функции обратного вызова на JavaScript. Напротив, синтаксис и структура Go отличаются завидной ясностью». Когда синтаксис и набор пакетов Go стабилизировались, породив, наконец, версию Go 1, Филс решил вновь обратиться к Go и переписать приложение. Тогда он и вспомнил, почему начал проект именно на Go.

Аргументы в пользу Go

Филс отмечает, что уже сам шаблон для написания полезного кода на Java довольно громоздкий. На Scala и Groovy, по его мнению, ситуация проще, но все равно оставляет желать лучшего. Go воспринимается как язык с динамической типизацией, но, по свидетельству Филса, обеспечивает и статическую типизацию, «правда, не такую тяжелую, как в Java». «Сборка мусора» в Go организована гораздо лучше, чем в виртуальной машине Java. Филс говорит, что у него «и близко не было таких проблем с потреблением памяти в Go, как в JVM. Это становится особенно заметно по сравнению с динамическими языками, такими, как Groovy». Делясь впечатлениями о Go, Филс не раз упоминает о скорости. Действительно, язык быстр и не отказывает под высокой нагрузкой. Код компилируется очень быстро, и Филс считает, что компилировать и редактировать программу ему удается «так же быстро, как и на динамическом языке». Наконец, Филс признается, что сам процесс программирования на Go доставляет ему гораздо больше удовольствия, чем работа с Node.js, Java, языками, основанными на Java, или с Ruby on Rails. «Когда я корплю над приложениями, в основе которых – виртуальная машина Java, я начинаю чувствовать себя системным администратором, а не разработчиком. Мне постоянно приходится манипулировать пространствами динамической памяти, заниматься балансированием нагрузки и решать проблемы, возникающие с памятью или как-то еще управлять ресурсами. С Go все эти вопросы снимаются. Я разрабатываю, компилирую, тестирую, запускаю, развертываю и наслаждаюсь». Но не всем так нравится Go. Почитайте, например, комментарии Шанила Манека о «сборке мусора» в Go и о попытках состязаться с компилируемыми и скриптовыми языками.

Полюбят ли Go?

Как правильно отмечает Стивен О’Грейди из RedMonk, сейчас «Go еще очень юн. Создается впечатление, что разработчики склоняются к одной из двух крайностей. Для кого-то Go – приятное сочетание низкоуровневых языков и их интерпретируемых альтернатив, применяющих сборку мусора. Для оппонентов этой точки зрения Go – какое-то кощунство. Неудивительно, что во второй группе немало апологетов языка C». Нет ничего удивительного, что Go вызывает такие радикальные суждения. В конце концов, такова ситуация с любым языком программирования. Удивительно скорее то, как много внимания привлек к себе Go за такое короткое время. В февральском рейтинге языков программирования от компании RedMonk О’Грейди отнес Go к языкам второго уровня. По его словам, «учитывая, насколько нов этот язык, даже такой уровень интереса немного удивителен и впечатляет». Теперь, когда Google выпустил стабильную версию этого языка и занялся развертыванием поддержки для движка Google App, интерес к языку Go, пожалуй, только возрастет. Создается впечатление, что Go вызывает неподдельный интерес и вне Google, в частности, в Engine Yard и в других компаниях. Возможно, те программисты, которые не слишком довольны имеющимися в наличии языками, решат освоить Go. Если вам уже приходилось работать с Go или хотя бы забавляться с ним – учтите, что в версии Go 1 язык претерпел некоторые изменения. Тем не менее, на данном этапе программы, написанные в соответствии со спецификацией Go 1, должны исправно работать до окончания срока действия этой спецификации. По сообщению разработчиков Go, «...когда-нибудь, в неопределенном будущем, может появиться спецификация Go 2, но до тех пор программы на Go, работающие сегодня, должны работать и в следующих доработанных версиях Go 1 (Go 1.1, Go 1.2 и т.д.)». Источник: Google's Go Programming Language Grows Up: Now What? by Joe Brockmeier
Новый рекламный формат в наших телеграм-каналах.

Купить 500 символов за $150

Читайте также
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
Собрали 10 платных и бесплатных онлайн-курсов для изучения SQL. Программы рассчитаны на слушателей, которые только начинают или продолжают знакомство с языком.
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
Хотите научиться кодить и освоить алгоритмы? Собрали десять советов с чего начать изучение программирования для тех, кто только начинает своё путешествие в мир программирования и снабдили все это полезными ссылками на курсы для начинающих программистов.
10+ сертификаций Coursera, которые могут изменить вашу карьеру
10+ сертификаций Coursera, которые могут изменить вашу карьеру
10+ сертификаций Coursera, которые могут изменить вашу карьеру
Бюджетный способ прокачать навыки и повысить зарплату — это профессиональный сертификат от Google, IBM или крупного зарубежного университета. На Coursera как раз можно найти десятки полезных обучающих программ по машинному обучению, проджект-менеджменту и не только. Собрали 10+ сертификаций, которые будут выигрышно смотреться в резюме как новичка, так и опытного специалиста.
Дизайн, VR и интернет вещей: 10 доступных онлайн-курсов от Google, Amazon и других гигантов
Дизайн, VR и интернет вещей: 10 доступных онлайн-курсов от Google, Amazon и других гигантов
Дизайн, VR и интернет вещей: 10 доступных онлайн-курсов от Google, Amazon и других гигантов
На платформе Coursera можно найти сотни курсов от крупных корпораций, включая Google, Amazon и HubSpot. Это отличная возможность начать новую карьеру, повысить квалификацию и просто получить плюс в профессиональную карму. Мы собрали 10 программ от ИТ-компаний, которые помогут освоить машинное обучение, UX-дизайн, продакт-менеджмент, кибербезопасность и многое другое.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.