Давайте попробуем дать ответ, нужен ли человечеству еще один Cи-подобный язык программирования? В 2009 году компания Google утвердительно ответила на этот вопрос, представив общественности язык Go. А в этом году команда Go выпустила в свет первую стабильную версию Go 1 для «создания надежных продуктов, проектов и публикаций». Итак, какое место в мире предназначено этому языку?
Что такое Go и почему в Google решили его создать? Почему этот язык за столько короткое время своего существования уже успел привлечь к себе столько внимания среди специалистов? Как говорится в FAQ по Go:
«в информатике уже более десяти лет не появлялось новых крупных языков для системного программирования», да и сама информатика за это время изменилась. Сотрудников Google не устраивали существующие языки, поскольку в работе им приходилось выбирать между «эффективной компиляцией, эффективным исполнением и легкостью программирования».
Ни один из широко распространенных языков — С, С++, Java, Python и т.д. — не сумел предоставить одновременно всего того, что хотелось Google. Поэтому Google решил действовать самостоятельно, чтобы создать язык своей мечты.
Итак, программисты Google приступили к работе над Go в 2007 году. В FAQ сказано, что базовый синтаксис Go «больше всего напоминает языки из семейства C», но при этом «довольно похож» на языки из семейства Pascal, а также включает идеи из других языков.
Но (по мнению Google) разработчикам следует воспринимать Go как совершенно новый язык, получившийся в результате размышлений о том, «что, собственно, делает программист и как сделать само программирование — как минимум, то программирование, которым занимаемся мы, — более эффективным, а значит, и более интересным».
Так для чего же лучше всего подходит Go? По словам Роба Пайка, выдающегося программиста Google и одного из разработчиков Go, этот язык предназначен для «больших программ» (big software) (и это, кстати, перекликается с представлением о big data — «больших данных», которые в последнее время так модно обсуждать).
А вот рядовой разработчик Дуглас Филс, которому доводилось работать с самыми разнообразными языками, говорит, что «уже не первый день» пишет веб-приложения, пользуясь в основном виртуальной машиной 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.
Филс отмечает, что уже сам шаблон для написания полезного кода на Java довольно громоздкий. На Scala и Groovy, по его мнению, ситуация проще, но все равно оставляет желать лучшего.
Go воспринимается как язык с динамической типизацией, но, по свидетельству Филса, обеспечивает и статическую типизацию, «правда, не такую тяжелую, как в Java».
«Сборка мусора» в Go организована гораздо лучше, чем в виртуальной машине Java. Филс говорит, что у него «и близко не было таких проблем с потреблением памяти в Go, как в JVM. Это становится особенно заметно по сравнению с динамическими языками, такими, как Groovy».
Компиляция, линковка и исполнение программы из исходников Go
Делясь впечатлениями о Go, Филс не раз упоминает о скорости. Действительно, язык быстр и не отказывает под высокой нагрузкой. Код компилируется очень быстро, и Филс считает, что компилировать и редактировать программу ему удается «так же быстро, как и на динамическом языке».
«Когда я корплю над приложениями, в основе которых — виртуальная машина Java, я начинаю чувствовать себя системным администратором, а не разработчиком. Мне постоянно приходится манипулировать пространствами динамической памяти, заниматься балансированием нагрузки и решать проблемы, возникающие с памятью или как-то еще управлять ресурсами. С Go все эти вопросы снимаются. Я разрабатываю, компилирую, тестирую, запускаю, развертываю и наслаждаюсь».
Но не всем так нравится Go. Почитайте, например, комментарии Шанила Манека о «сборке мусора» в Go и о попытках этого языка состязаться с компилируемыми и скриптовыми языками.
Как правильно отмечает Стивен О’Грейди из RedMonk, сейчас
«Go еще очень юн. Создается впечатление, что разработчики склоняются к одной из двух крайностей. Для кого-то Go — приятное сочетание низкоуровневых языков и их интерпретируемых альтернатив, применяющих сборку мусора. Для оппонентов этой точки зрения Go — какое-то кощунство. Неудивительно, что во второй группе немало апологетов языка C».
Нет ничего удивительного, что Go вызывает такие радикальные суждения. В конце концов, такова ситуация с любым языком программирования. Удивительно скорее то, как много внимания привлек к себе Go за такое короткое время. В февральском рейтинге языков программирования от компании RedMonk О’Грейди отнес Go к языкам второго уровня.
По его словам, «учитывая, насколько нов этот язык, даже такой уровень интереса немного удивителен и впечатляет»
Теперь, когда Google выпустил стабильную версию этого языка и занялся развертыванием поддержки для движка Google App, интерес к языку Go, пожалуй, только возрастет. Создается впечатление, что Go вызывает неподдельный интерес и вне Google, в частности, в Engine Yard и в других компаниях. Возможно, те программисты, которые не слишком довольны имеющимися в наличии языками, решат освоить Go.
Пример реализации UNIX-команды echo на языке Go
Если вам уже приходилось работать с Go или хотя бы забавляться с ним — учтите, что в версии Go 1 язык претерпел некоторые изменения. Тем не менее, на данном этапе программы, написанные в соответствии со спецификацией Go 1, должны исправно работать до окончания срока действия этой спецификации. По сообщению разработчиков Go:
«...когда-нибудь, в неопределенном будущем, может появиться спецификация Go 2, но до тех пор программы на Go, работающие сегодня, должны работать и в следующих доработанных версиях Go 1 (Go 1.1, Go 1.2 и т.д.)».
3 комментария
Язык ужасен. Ввести на уровень error-сообщений то, на какой строке надо расставлять скобки - это ну полный взрыв мозга. Библиотеки сами отнюдь не удобны, избыточно даже в большей степени, чем в Qt.
А ещё - не ушли, а скопировали пакеты из Java (блин, зачем?!, есть прекрасная способ работы с модулями в Python).
А ещё ужасный (безскобковый) for, где надо указать 3 параметра. Фу да и только.
В общем, язык (я именно про язык, а не реализацию) понравится Java-истам, любителям писать код в Ритчи-стиле, и сильно создалось впечатление что создавали что-то, что будет компилируемым, но Java-ой.
На счет "Фу", точнее цикла for - зря вы так. Разве плохо иметь такие возможности как (одним только for !):
// equals ’while (true)’ in C:
for {
....
}
// equals ’while (i < n)’ in C:
for i < n {
....
}
// equals ’for(int i=0; i < n; i++) ’ in C:
for i:=0; i < n; i++ {
....
}
// Loop throug a sequence of objects :
for i, object := range ( slice_type ) {
....
}
А switch? В Go он продуманнее и удобнее, чем в дельфи-сишарп-джава-си вместе взятых. Это же просто то, что доктор прописал (с)
А "пакеты"? Также все продуманно просто и гибко. И даже не надо по дирректориям разбивать файлы. Полная свобода. Неговоря уже о простых соглашениях для экспорта.
Пацаны, приложившиеся к Unix и С, порожняк гнать не будут (с) Поверьте, они достаточно разбираются в колбасных обрезках :) Так что слухи об "ужасности" языка в вашем комментарии слишком преувеличены.
ИМХО, также язык скорее Python разработчикам по душе больше будет, чем Java ЫнтерпрайзникамЪ. Хотя хрен с ними вместе взятыми - Go одназначно имеет смысл. Хотя бы только из-за того, что будет стоять на страже границ от наабегов маразматиков от ООП. Ничего против ООП не имею, только против маразматиков от ООП.
Приобрести можно на веб-сайте http://mang.bestseller-super.ru
Худеем по умному - уникальный сироп мангустина!
<p>В связи с нынешними реалиями жизни, когда между интенсивной работой и домом почти не остается времени, чтобы позаботиться о себе, остро в обществе стоит проблема лишнего веса. Многочисленные люди, а особенно девушки, которые желают похудеть, пьют порошки и таблетки, которые теоретически помогут. Однако, реально это, к сожалению, не подтверждается. Ничего необычного в этом деле нет – каждая девушка неповторима, обобщенные приемы похудения могут не работать.</p>
<p>Однако, новый мангустин для похудения серьезно выделяется от других популярных продуктов на рынке. И сейчас вы сможете узнать почему.</p>
Поправиться не страшно, страшно с этим жить!
<p>Избыточный вес – это проблема, которая отравляет жизнь большинству женщин. Наши исследования показали, что больше 90% полных людей очень страдают от низкой самооценки и недовольны своим телом, что невероятно сильно сказывается на их общественной и личной жизни.</p>
<p>Это не голословные заявления, а реальный факт: полнота появляется не просто так, а с физическими и психологическими проблемами:</p>
Проблемы с сердцем, которые ведут к сердечным катастрофам.
Рискованное последствие ожирения - диабет. Это заболевание опасно тем, что часто становится предвестником инсульта.
Довольно часто полнота может привести к варикозу и остеохондрозу.
Женщины с излишним весом больше подвержены головным болям и перепадам давления, что значительно усложняет жизнь и сможет пошатнуть нервную систему. Особенно это ощущается в жаркое время года.
За лишним весом следуют гормональные изменения. Особенно они опасны тем, что смогут помешать завести ребенка.
И, конечно же, избыточный вес влияет на дыхание.
<p>Избыточный вес визуально прибавляет человеку от 7 до 10 лет, это делает его менее привлекательным.</p>
Уникальное средство для похудения
<p>Предпосылки полноты бывают разными: остаточные последствия родов, неактивный образ жизни, медленный метаболизм, невозможность правильно питаться из-за тяжелого графика работы, гормональные сбои, любовь к сладкому. Также, как и разными являются характеристики худеющих людей – начиная от роста и возраста, заканчивая количеством часов сна. Все это редко будет зависеть от воли человека – ведь не он определяет установки собственного организма. Но разбираться с лишним весом в итоге приходится.</p>
<p>Практически все современные средства для похудения обобщают подобные показатели, пытаясь создать препарат, который подходит всем. Мы идем другим путем.</p>
<p>Мангустин, сироп для успешного похудения новейшего поколения – это продукт, который проектируется персонально под покупателя учитывая все особенности организма. Четыре года мы осуществляли медицинские исследования, а затем еще два – разрабатывали уникальную формулу, чтобы Вы были довольны результатом.</p>
<p>Стоит рассказать, почему средство получило название «Мангустин» – мангуст, также как и манго совершенно ничего общего не имеют с ним. Все дело в том, что главным ингредиентом стал мангустин – это фрукт из Таиланда. Он широко известен очень низкой калорийностью, а также витаминами и полезными микроэлементами. Но настоящий мангустин купить в обычном магазине и похудеть с его помощью не выйдет. Так как перевезти плод в страны СНГ — значит потерять основную часть его полезности. В связи с этим мы экстрагируем все полезные ингредиенты из фрукта, а затем все это превращается в концентрированный сироп, помогающий отделаться от излишних килограммов. Ко всему прочему, в препарате используются еще приблизительно 30 растительных веществ натурального происхождения из тропических стран, поскольку мы ищем для Вас самые действенные компоненты.</p>
<p>Как Вы могли заметить, все новейшие технологии, которые вобрал в себя Мангустин – порошок уже остались позади, также, как и таблетки. Мы беспокоимся о комфорте при приеме нашего препарата. Поэтому был разработан сироп, который быстро растворяется в воде и выпивается.</p>
<p>Эффективность нашего средства давно подтверждена. Если вы заинтересуетесь откликами на Мангустин, отзыв за отзывом от удовлетворенных заказчиков убедят Вас сделать заказ. В итоге, и мужчинам, и женщинам, с совершенно разным списком индивидуальных особенностей и характеристик отлично подходит Мангустин – реальные отзывы от людей, которые попробовали эффект нашей продукции на деле, Вы сможете найти на всевозможных сайтах про похудение.</p>
Где на сегодняшний день можно купить это чудо?
<p>Обращаем Ваше внимание на то обстоятельство, что повстречать Мангустин в аптеке или в любом интернет-магазине нет возможности. Приобрести качественную надежную продукцию имеется возможность только у нас на сайте, несмотря на все хитрости бесчисленных мошенников.</p>
<p>При условии, что Вы желаете похудеть вкусно и результативно, покупайте Мангустин – цена на подобное сокровище приятно удивит, а город и страна проживания не будет проблемой. Поскольку мы осуществляем доставку по Российской Федерации, странам СНГ и даже по всей Европе.</p>
Приобрести можно на веб-сайте http://mang.bestseller-super.ru