Поиск






Пятница, 22.11.2024, 21:15

| RSS

ОТДЕЛ
ИНФОРМАЦИОННЫХ
ТЕХНОЛОГИЙ
 
Главная » 2009 » Ноябрь » 12 » Представлен новый открытый проект Google - язык программирования Go
Представлен новый открытый проект Google - язык программирования Go
19:57

В официальном блоге компании Google был представлен новый язык программирования , ориентированный на высокую производительность, которая почти сопоставима с Си, но имеет более простой синтаксис, обеспечивающий скорость разработки сопоставимую с такими динамическими языками, как Python.

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

Разработчики Google считают, что язык Go и в текущей реализации является относительно зрелым, но не совсем готов для использования в реальных производственных средах. Сопутствующий инструментарий для нового языка программирования еще находится в стадии разработки. Отсутствует интеграция с какой-либо IDE, стандартные библиотеки не до конца наполнены, и на настоящий момент еще мало реальных примеров работающего кода. Открытие Go для большого сообщества программистов могло бы значительно ускорить процесс развития языка во всех этих важнейших областях.

Компиляторы Go, называемые 6G и 8G (для 64-битных и x86 платформ), ориентированы на высокие скорости компиляции (единицы секунд даже для огромных проектов). Существует также альтернативный компилятор под названием Gccgo, основанной на GNU Compiler Collection (GCC). GCC-компилятор менее быстрый и предназначен для генерирования более эффективного кода. Надо отметить, что разработчики отказались от использования LLVM-компилятора, так как его производительность по времени компиляции была признана недостаточной.

Скомпилированные исполняемые файлы являются полностью бинарными файлами, что отличает Go от языков управляемого кода, где компилятор генерирует байт-код для виртуальных машин. Go, тем не менее, имеет некоторые компоненты времени выполнения (runtime), которые могут быть встроены в исполняемые файлы. Фактическая производительность исполнения считается сопоставимой с Cи-кодом.

Примеры кода языка Go показывают, что синтаксис является Cи-подобным. Но существуют и отличительные черты. Например, существует сокращенный синтаксис определения переменных, который поддерживает обнаружение простых типов. Имеется также синтаксис анонимных функций, который позволяет вам использовать реальные замыкания (real closures). Есть некоторые Python-подобные особенности, в том числе slicing массивов и map-типы с синтаксисом конструктора, который выглядит наподобие словаря Python.

Одной из отличительных особенностей Go является его необычная система типов. Язык воздерживается от некоторых типичных для объектно-ориентированного программирования концепций, например наследования. Вы можете определить структурные типы, а затем создать методы для работы с ними. Вы можете также определить интерфейсы подобно Java. В Go, однако, не вручную указывается какой интерфейс реализует класс. Разработчики объяснили, что данный механизм интерфейсов предоставляет разработчикам некоторую гибкость неявной типизации (duck-typing), более того он предоставляет преимущества проверки во время компиляции.

Параллелизм — отличительная особенность дизайна Go. Язык вводит понятие "goroutines" — методы, которые выполняются одновременно. Любая функция может быть выполнена как "goroutine" с помощью указания в префиксе вызова функции ключевого слова "go". Язык реализует "channel" механизм, который может быть использован для безопасного обмена данными с "goroutines".
Источник
Просмотров: 1214 | Добавил: sashacd | Рейтинг: 0.0/0 |

Copyright ООО "Отдел Информационных Технологий" © 2024