html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites
Просмотров: 6136

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


Давайте попробуем дать ответ, нужен ли человечеству еще один Cи-подобный язык программирования? В 2009 году компания Google утвердительно ответила на этот вопрос, представив общественности язык Go. А в этом году команда Go выпустила в свет первую стабильную версию Go 1 для «создания надежных продуктов, проектов и публикаций». Итак, какое место в мире предназначено этому языку?

Что такое Go и почему в Google решили его создать? Почему этот язык за столько короткое время своего существования уже успел привлечь к себе столько внимания среди специалистов? Как говорится в FAQ по Go:

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

Ни один из широко распространенных языков — С, С++, Java, Python и т.д. — не сумел предоставить одновременно всего того, что хотелось Google. Поэтому Google решил действовать самостоятельно, чтобы создать язык своей мечты.

Google Go Пщ zpsr язык программирование введение преймущества диаграмма примеры кода параллельность современный перспективный go

Итак, программисты Google приступили к работе над Go в 2007 году. В FAQ сказано, что базовый синтаксис Go «больше всего напоминает языки из семейства C», но при этом «довольно похож» на языки из семейства Pascal, а также включает идеи из других языков.

Google Go Пщ zpsr язык программирование введение преймущества диаграмма примеры кода параллельность современный перспективный go

Но (по мнению 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».

Google Go Пщ zpsr язык программирование введение преймущества диаграмма примеры кода параллельность современный перспективный go

Компиляция, линковка и исполнение программы из исходников Go

Делясь впечатлениями о 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.

Google Go Пщ zpsr язык программирование введение преймущества диаграмма примеры кода параллельность современный перспективный go

Пример реализации UNIX-команды echo на языке Go

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

«...когда-нибудь, в неопределенном будущем, может появиться спецификация Go 2, но до тех пор программы на Go, работающие сегодня, должны работать и в следующих доработанных версиях Go 1 (Go 1.1, Go 1.2 и т.д.)».
Читать дальше
Twitter
Одноклассники
Мой Мир

материал с blogerator.ru

134
    +116 surfers

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • pleshner
          • домен blogerator.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции