На этом шаге проведем некоторый сравнительный анализ особенностей языков Go, C (C++) и Java.
Go – один из самых удивительных языков, появившихся в последние 20 лет, и первый, нацеленный на программистов и компьютеры XXI века. Go проектировался с прицелом на эффективное масштабирование, благодаря чему его можно использовать для создания очень больших приложений и компиляции даже очень больших программ за секунды на единственном компьютере. Молниеносная скорость компиляции обеспечивается отчасти простотой синтаксического анализа программ на этом языке, но главным образом благодаря особенностям управления зависимостями. Благодаря высокой скорости компиляции программ на языке Go появляется возможность использовать этот язык в областях, где обычно применяются языки сценариев. Кроме того, язык Go можно использовать для создания веб-приложений с применением Google App Engine.
Go – практичный язык, где во главу угла поставлены эффективность программ и удобство программиста.
Проведем сравнительный анализ языков Go, С (C++) и Java (таб. 1):
простой и понятный синтаксис | |||
строгая статическая, поддержка синтаксиса объявления переменных одновременно с их инициализацией, наличие мощного и удобного механизма динамической типизации | |||
механизм сборки мусора; сложности, связанные с учетом ресурсов, берут на себя компилятор и среда выполнения | "интеллектуальные" указатели (поддержка многопоточной модели выполнения включена в стандартную библиотеку) | библиотека поддержки многопоточной модели выполнения, механизм сборки мусора | |
необходимость в обеспечении своевременного приобретения и освобождения ресурсов | |||
механизм взаимодействующих последовательных процессов, благодаря которому во многих многопоточных программах вообще нет необходимости блокировать доступ к ресурсам | |||
легковесные процессы, выполнение которых автоматически будет распределяться по доступным процессорам и ядрам | |||
исключительно процедурный язык, также обладает поддержкой объектно-ориентированного стиля программирования | процедурное программирование | объектно-ориентированный стиль программирования | |
Первоначально Go задумывался как язык системного программирования с высокой скоростью компиляции для разработки высокомасштабируемых программ, которые могли бы использовать преимущества распределенных систем и многоядерных компьютеров. В настоящее время область применения языка Go стала значительно шире первоначальной концепции, и сейчас он используется как высокопроизводительный язык программирования общего назначения.
На следующем шаге рассмотрим особенности проекта Go.