суббота, 7 января 2012 г.

10 языков программирования, которые встряхнут ИТ


Мир меняется, появляются новые тренды в ИТ: облачные вычисления, мобильные технологии, мультипроцессорная разработка. Несмотря на то, что и так существует достаточно большое количество языков программирования, всевозможных типов от функциональных до объектно-ориентироать, выучить все которые не может уже ни один разработчик, нове тренды требуют поддержки со стороны языка и часто проще разработать новый язык с 0, а не модифицировать существующие. Ниже перечислены 10 новых языков программирования, которые находятся на достаточно раннем этапе своего развития, но может быть какие-то из них станут популярными в будущем.

1. Dart
Убийца JavaScript. 
Зарабатывается Google. Что хорошо. Предназначен для замены JavaScript и нацелен на то что бы сделать разработку интерактивных Web приложений удобнее и быстрее. Похож по синтаксису на C. Но самое интересное что пока он при компиляции просто конвертится в JavaScript + работает не во всех браузерах.

2. Ceylon
Убийца Java.
Разрабатывается RedHat. Ставит целью улучшить синтаксис Java, адаптировать его к текущим потребностям разработчиков. Комбинируется в Java, выполняется в JVM

3. Go
Разрабатывается Google.
Довольно низкоуровненый язык программирования, по типу C и C++. Предназначен не только для разработки приложений но и для системного программирования. Не имеет виртуальной среды исполнения (как Java или C#), но иммет garbage collector (непонятно только как). По синтаксису похож на С, но типа удобнее.

4. F#
Microsoft
 Функциональный язык программирования. Хотя и функциональный - исполняется в среде исполнения .NET, можем использовать все наработки на C# или VisualBasic. Так же поддерживается Mono что дает возможность использовать его на Маках и Linux. 
Поддерживает асинронность, параллелизм и прочее.
Комилируется в CLI код!

5. Opa (за название 5)
OpenSource
Убийца всего на чем сейчас пишутся Web приложения. Предназначен для разработки и клиента, и серверной логики и слоя доступа в БД. Клиент компилируется в JavaScript, для серверной части есть виртуальная машина.

6. Fantom
OpenSource
Предназначен для кросс-платформенности в ее втором порядке :) Это значит что код может выполняться и в JMV и в .NET. Планируют так же добавить поддержку iOS.
Поход на C, призван улучшить его синтаксис, включает поддержку функционального программирования и конкурентного доступа (многопоточности).

7. Zimbu
В нем собрано от всех языков понемногу. Опять таки цель - сделать самый удобный синтаксис, быстро читаемых и т.д. и т.п. При этом еще и предназначенный как для разработки приложений так и для системного программирования. Поддерживает управляемую память, потоки и т.п.
Компилируется в C код!
С код модет компилироваться уже в binary для любой платформы.

8. X10
IBM
Заточен под параллельные вычисления (придется выучить :) ). Для поддержки конкуретного доступа использует программную модель партиционированного глобального адресного пространства. Код и данные разделяются по отдельным юнитам и распространяются в виде изолированных "place" (я так понимаю это что то типа sandboxов). Соответственно это позволяет достаточно быстро сделать вашу программу распределенный, рутем просто размножения places, а т.к. поддержка конкуретного доступа и изоляция данных идет на уровне рантайма - вам не надо заморачиваться с поддержкой этого непосредственно в коде.

Компилируется опять таки либо в Java  либо с C++, а выполняется в своей виртуальной среде либо в JVM (своя среда там реализована как отдельный класс)

Хотя пока еще язык развивается - он уже достаточно зрелый, доступны и сборки для разных платформ и средства разработки и отладки (на Eclipse)

9. HaXe
Motion Twin
Мультиплатформенный язык, компилируется в объектный код, JavaScript, PHP, Flash, NekoVM. в работе Java и C#. Синтаксис похож на C. Пока в стадии разработки.

10. Chapel
Пришел к нам с Великого Crey. Со всеми вытекающими - параллельные вычисления, высокая нагрузка. Синтаксис собран из нескольких источников - начиная C  и заканчивая Fortran.

Выводы: судя по данной статье заметна четкая тенденция - овые языки не являются чем то новым в принципе - а лишь надстройкой над существующими платформами, которые делают их более заточенными для тех или иных задач. Лично мне идея компиляции из одного синтаксиса в другой не кажется слишком хорошей, уж лучше сразу писать на той же Java. Из всего перечисленного с моей точки зрения интерес представляет только X10, но может быть это в силу того что он мне ближе по роду деятельности, чем всякие Web ориентированные языки.

Попробуйте!

Комментариев нет: