Шаг 2.
Язык программирования Go.
Сравнение с C (C++) и Java

    На этом шаге проведем некоторый сравнительный анализ особенностей языков Go, C (C++) и Java.

    Go – один из самых удивительных языков, появившихся в последние 20 лет, и первый, нацеленный на программистов и компьютеры XXI века. Go проектировался с прицелом на эффективное масштабирование, благодаря чему его можно использовать для создания очень больших приложений и компиляции даже очень больших программ за секунды на единственном компьютере. Молниеносная скорость компиляции обеспечивается отчасти простотой синтаксического анализа программ на этом языке, но главным образом благодаря особенностям управления зависимостями. Благодаря высокой скорости компиляции программ на языке Go появляется возможность использовать этот язык в областях, где обычно применяются языки сценариев. Кроме того, язык Go можно использовать для создания веб-приложений с применением Google App Engine.

    Go – практичный язык, где во главу угла поставлены эффективность программ и удобство программиста.

    Проведем сравнительный анализ языков Go, С (C++) и Java (таб. 1):

Таблица 1. Сравнение языков Go, C (C++) и Java
Признак
Go
С (C++)
Java
Сложность конструкций языка
простой и понятный синтаксис
сложные и замысловатые конструкции
Типизация
строгая статическая, поддержка синтаксиса объявления переменных одновременно с их инициализацией, наличие мощного и удобного механизма динамической типизации
строгая статическая
Управление памятью
механизм сборки мусора; сложности, связанные с учетом ресурсов, берут на себя компилятор и среда выполнения "интеллектуальные" указатели (поддержка многопоточной модели выполнения включена в стандартную библиотеку) библиотека поддержки многопоточной модели выполнения, механизм сборки мусора
необходимость в обеспечении своевременного приобретения и освобождения ресурсов
Параллелизм
механизм взаимодействующих последовательных процессов, благодаря которому во многих многопоточных программах вообще нет необходимости блокировать доступ к ресурсам
потоки выполнения
go-подпрограммы
легковесные процессы, выполнение которых автоматически будет распределяться по доступным процессорам и ядрам
-
-
Парадигмы программирования
исключительно процедурный язык, также обладает поддержкой объектно-ориентированного стиля программирования процедурное программирование объектно-ориентированный стиль программирования
Генерики (generics)
-
шаблоны
обобщения

    Первоначально Go задумывался как язык системного программирования с высокой скоростью компиляции для разработки высокомасштабируемых программ, которые могли бы использовать преимущества распределенных систем и многоядерных компьютеров. В настоящее время область применения языка Go стала значительно шире первоначальной концепции, и сейчас он используется как высокопроизводительный язык программирования общего назначения.

    На следующем шаге рассмотрим особенности проекта Go.


Предыдущий шаг Содержание Следующий шаг