Хотя я обычно стараюсь придерживаться только «хлебных масел» языков (например, php, python, java & C #), мой последний проект был связан с веб-приложением Google appengine , написанным на собственном флагманском языке Google Go .
Будучи полиглотом, который всегда заинтригован новыми языками, я не мог не задаться вопросом о том, как он кодирует с помощью Go, поэтому я взялся за проект. Мой опыт написания кода на Go был настолько приятным, что я не мог не поделиться этим с вами.
Go обладает уникальным сочетанием элегантности и силы: для кодирования и поддержки приложений на любом языке удобочитаемость является очень важной функцией. По мере того, как размер вашего проекта становится все больше и больше, это становится все более и более важным. Фактически, вы даже готовы пожертвовать некоторым приростом производительности, достигнутым языками низкого уровня, такими как C, чтобы добиться производительности разработчика с помощью более «читаемых» языков, таких как java и python. Этот фактор отчасти объясняет, почему все меньше и меньше программ кодируется на C / C ++ сейчас, а больше на java. Это также объясняет недавнюю популярность Python, интерпретируемого и относительно «невысокого» языка, по сравнению с его родными, Java и C ++.
То, что Go приносит на стол, является изящным сочетанием как удобочитаемости, так и производительности. Да, невероятно, но это правда! У него есть компилятор и самая мощная система типов, подобная C / C ++, в сочетании с синтаксисом, который чувствует себя как дома с динамическими языками, такими как python. Он даже имеет простоту, сравнимую с питоном.
Синтаксически Go основан на C ++, но с множеством модификаций, которые упрощают его использование, таких как:
- Нет точек с запятой (;) для завершения операторов;
- Не требуется объявление типа, как C (int i = 2;). В Go типы автоматически «угадываются» из значения (i: = 2).
- Не содержит фигурных скобок обязательных операторов, таких как for и if.
Здесь было бы полезно понять пример того, как Go отличается и лучше. Рассмотрим простую функцию вычисления квадратного корня в C ++:
1
2
3
4
5
6
7
|
float Sqrt( float x) { int z = 1.0 ; for ( int i= 0 ; i < 1000 ; i++) { z -= (z*z - x) / ( 2 * z); } return z; } |
Теперь здесь та же функция, написанная на Go:
1
2
3
4
5
6
7
8
9
|
package newmath func Sqrt(x float64) float64 { z := 1.0 for i := 0 ; i < 1000 ; i++ { z -= (z*z - x) / ( 2 * z) } return z } |
Вы заметили несколько вещей о Go? Например:
- Меньше грубостей: не нужно хешей, скобок вокруг ifs / fors и нет необходимости использовать точки с запятой для завершения операторов (некоторые из вас могут поспорить о точках с запятой, говоря, что это позволяет быстро комбинировать несколько операторов в одной строке, но понимаете ли вы, как меньше читаемый код, который вы создаете, делая это?)
- Динамизм:: = — это оператор «короткого присваивания» в Go, означающий, что вам не нужно указывать его тип. «Z: = 1.0», безусловно, более элегантно по сравнению с «float z = 10;».
- Эффективная компиляция: несмотря на динамическую природу этого языка, которая, кажется, предполагает интерпретируемую природу, Go компилирует и работает так же эффективно, как и язык низкого уровня, такой как C / C ++.
Другая причина вложения ваших навыков в Go заключается в том, что Go пользуется поддержкой Google . Действительно, сам язык является изобретением Google, и Google начал внедрять его в большинстве своих проектов, таких как облачный хостинг Google Appengine .
Спор, который может косвенно проложить путь к успеху Go, заключается в надвигающемся громком иске Oracle против Google об обвинениях Oracle в том, что Google неправильно использовал свои защищенные авторским правом Java API для реализации своей операционной системы Android. Весьма маловероятно, что Oracle сможет сойти со своих требований, но если неопределенность в отношении этого сохранится еще какое-то время, весьма вероятно, что Google постепенно начнет создавать свои API-интерфейсы Android на языке Go, постепенно отказываясь от API-интерфейсов Java.
Теперь я не гадалка, но, глядя на то, как все в настоящее время позиционируется, Go не похож на язык, который скоро исчезнет.
Вы можете взглянуть на официальные документы Go, учебные пособия и список библиотек и утилит, представленных в ссылках ниже. Приятного изучения Go Language!
Примечание. Если вы используете Linux-систему на основе Debian, например Ubuntu, вы можете установить golang с помощью CLI:
1
|
sudo apt-get install gccgo |
Рекомендации:
- http://golang.org/help/
- http://golang.org
- https://code.google.com/p/go-wiki/wiki/Projects
- http://golang.org/doc/faq
- https://developers.google.com/appengine/docs/go/
- https://en.wikipedia.org/wiki/Go_%28programming_language%29
- https://en.wikipedia.org/wiki/Oracle_v._Google
Ссылка: | Введение в Go — элегантность с мощью и простотой от нашего партнера JCG Прахлада Йери в блоге |