Новые открытые языки программирования: Sawzall, Gosu и HTSQL
Представлено несколько новых языков программирования:- Компания Google открыла под лицензией Apache 2.0 исходные тексты компилятора и runtime-компонентов языка программирования Sawzall, предназначенного для параллельной обработки очень больших наборов данных, разбросанных по разным машинам и дискам. В Google язык используется для анализа сетевых логов с разных машин кластера, обработки записей о телефонных звонках в сервисе Google Voice и разбора web-репозиториев.
Суть работы Sawzall сводится к двум фазам: 1. Фильтрация больших плоских наборов данных, имеющих при этом общую структуру; 2. Агрегирование отфильтрованных данных и расчет требуемой статистики. Фазы фильтрации и агрегирования могут выполняться распределённо на сотнях и тысячах машин. Так как программа на языке Sawzall занимается обработкой только одной входящей записи в каждый момент времени, не сохраняя промежуточное состояние других записей, то работа такой программы может быть отождествлена с фазой "map" парадигмы "map-reduce". Фаза "reduce" при этом отождествляется с библиотечными вызовами агрегатных и статистических функций. Для обмена данными между запущенными на разных машинах процессами используется RPC-протокол "Protocol Buffers".
- Публично обнародован универсальный язык программирования Gosu, работающий на базе виртуальной машины Java (JVM). Язык является объектно-ориентированным и на 100% совместимым с Java (распространение / использование Java-типов, реализация Java-интерфейсов, компиляция в байт-код). Для распространения исходных текстов Gosu выбрана лицензия Apache 2.0. Язык уже является достаточно зрелым и используется в промышленных приложениях 36 компаний, капитал которых превышает миллиард долларов.
Из отличий от Java отмечается расширяемая система типов (кроме статической типизации, поддерживается динамическое добавление новых типов), поддержка замыканий (Closures), выполнение проверки универсальных типов во время выполнения, возможность модификации существующих типов. Поддержка статической типизации помогает находить ошибки при компиляции приложения. В Gosu реализованы дополнительные усовершенствования общих классов Java, некоторые из которых связаны с реализацией новых функций, которые не доступны в Java. Имеется поддержка XSL / XSD и SOAP для взаимодействия с внешними веб-сервисами. Для упрощения разработки на языке Gosu для среды Eclipse подготовлен специальный плагин.
- Началось тестирование языка для формирования структурированных запросов HTSQL 2.0 ("Hyper Text Structured Query Language"), поддержка которого в настоящее время доступна только для СУБД PostgreSQL, но в ближайшее время будет реализована для MySQL, SQLite, Oracle и Microsoft SQL. Для свободных СУБД код распространяется свободно под лицензией BSD, для проприетарных систем (Oracle, Microsoft SQL) требуется покупка коммерческой лицензии.
HTSQL ориентирован на малознакомых с программированием людей, которым трудно изучить SQL и которые нуждаются в комплексном инструменте для доступа к данным и формированию отчетов. HTSQL реализован в виде web-сервиса, обращение к которому осуществляется по протоколу HTTP (отравлять запросы можно через обычный web-браузер). Запросы затем транслируются в SQL-представление, а результат формируется в JSON, CSV или HTML.
© OpenNet